Wordpress : encoder du texte dans vos articles

Publié le 11 janvier 2010 par Woods

En écrivant mon dernier article, j’ai eu besoin d’encoder certaines informations pour les rendre illisibles aux robots. Je voulais donc expliquer comment faire ça sous WordPress, comment ça marche et surtout pourquoi.

Comment ça marche ?

Une page web, c’est du code HTML. Le code se présente sous forme de texte avec une syntaxe assez simple. On y ajoute une ou plusieurs CSS pour définir le style. Et le boulot principal de votre navigateur, c’est de mettre en forme le HTML et de l’afficher. Ensuite, la page web peut embarquer des animations exécutées par un programme extérieur (Flash ou Java par exemple) et du Javascript, un langage de script exécuté par le moteur Javascript de votre navigateur.

Sur un site web, il y a deux types de visiteurs : les humains et les robots. Les humains « voient » le site mis en forme par le navigateur tandis que les robots ne font que lire le contenu de la page HTML. Il y a aussi les informaticiens qui savent faire les deux !

Les moteurs de recherche ont une horde de robots qui parcourent le net en permanence pour indexer le contenu du plus grand nombre de sites possibles pour vous les proposez lors de vos recherches. Et puisqu’ils ne lisent que le HTML, le contenu en Javascript ou en Flash n’est pas indexé.

Conclusion : pour éviter que quelque chose ne soit lu par les robots, il faut l’écrire avec autre chose que du HTML, et de préférence, il faut encoder le tout.

Pourquoi ?

Certaines infos que vous écrivez sur Internet peuvent être sensibles. Si ces infos sont à destination des lecteurs de votre blog, elles doivent bien évidemment être lisibles pour les visiteurs mais il est préférable que ces données ne puissent pas être récupérées automatiquement par des robots.

Exemple 1 : votre adresse mail, elle doit être disponible sur votre site mais il faut éviter que des spameurs ne la récupèrent.

Exemple 2 : du texte pouvant être sujet à la censure. Car la censure du web en Chine, fonctionne à peu près comme Google, sauf qu’au lieu de référencer ce qu’ils trouvent, les robots se contentent de surveiller une liste de mots clés tabous…

PHPEnkode plugin

Mon blog est propulsé par WordPress. J’ai donc cherché un plugin capable de faire ça. Il y a peut-être un meilleur plugin, mais PHPEnkoder fait exactement ce que je cherche. Par défaut le plugin encodera les adresses mail présentes sur votre blog, mais vous pouvez changer ça dans les options.

Pour l’utiliser dans un article, il suffit d’entourer le texte à encoder des balises [_enkode_] et [_/enkode_] (sans les _ bien sûr), et le tour est joué ! Vous ne pouvez pas encoder tout un article, il doit y avoir une limite de 1000 caractères ou quelque chose comme ça. Si vous voulez plus d’infos, allez sur le site du plugin.

Pour le visiteur, il n’y a strictement aucune différence. Mais un robot verra ça à la place du texte encodé :

<script type="text/javascript">
/* <!-- */
function hivelogic_enkoder_1_2083649660() {
var kode="kode=\"110 114 103 104 64 37 52 52 51
35 52 52 55 35 52 51 54 35 52 51 55 35 57 55 35
[etc (il y a des centaines de chiffres comme ça formant le code)]
52 35 55 59 35 56 53 35 52 52 60 35 52 51 \";
kode=kode.split(\' \');x=\'\';for(i=0;i<kode.length;i++){
x+=String.fromCharCode(parseInt(kode[i])-3)}
kode=x;";var i,c,x;while(eval(kode));
}
hivelogic_enkoder_1_2083649660();
var span = document.getElementById('enkoder_1_2083649660');
span.parentNode.removeChild(span);
/* --> */
</script>

Bref, un robot n’exécutera pas le Javascript. Et l’information doit être décodée, ce qui ne prendra que quelques dixièmes de secondes à votre navigateur.

Si vous avez à parler de sujets sensibles, pensez-y !

– Woods