Obfuscation de liens
Objectifs
- Rendre les liens inaccessibles aux moteurs de recherches via JS mais les laisser fonctionnels pour les utilisateurs
- Encoder l'url pour qu'elle n'apparaisse nul part dans le code HTML.
Obfuscation classique
l'obfuscation "classique" va nous amener à remplacer un lien html classique
<a href="http://monsite.com/monurl">Mon ancre</a>
Par un lien non-interprété par les moteurs de recherche
admin<span class="offhref" data-src="http://monsite.com/monurl">Mon ancre</span>
Un code javascript est déposé dans un fichier .js (ou dans le header ou le footer) va servir à le rendre cliquable
Ce code est le suivant :
<script>var offlink = document.querySelectorAll('.offhref');
offlink.forEach(function(link) {
link.addEventListener('click', function(e){
window.open(link.getAttribute('data-src'))
})
})</script>
Vous remarquerez cependant que le lien, même si il est théoriquement non prit en compte par Google, laisse son url apparaitre dans le code HTML.
Afin de répondre aux besoins des SEO les plus vigilants, nous pouvons vous affiner notre méthode.
Obfuscation complète
Nous allons utiliser le même procédé, mais avec le lien encodé.
<span data-src="http://monsite.com/monurl">Mon ancre</span>
En ajoutant un encodage en Base JS 64 de notre URL. Celle-ci va devenir :

<span data-src="aHR0cDovL21vbnNpdGUuY29tL21vbnVybA==">Mon ancre</span>
Il faut maintenant ajouter à notre code javascript la possibilité de décoder l'url avant de créer le lien sur le contenu de notre balise <span>
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", function(event) {
var classname = document.getElementsByClassName("nomdelaclasse");
for (var i = 0; i < classname.length; i++) {
classname[i].addEventListener('click', myFunction, false);
}
});
var myFunction = function() {
var attribute = this.getAttribute("data-variables");
document.location.href= decodeURIComponent(window.atob(attribute)) ;
};
</script>
Enfin, vous pouvez mettre ce code dans un fichier Javascript que vous bloquez dans le robots.txt
Ainsi :
- Votre lien n'apparait pas sur la page où il est obfusqué
- Google n'a pas accès à votre code permettant de traduire le lien