Plus radical que le nofollow : l'obfuscation de liens (mis à jour)

Dès que l’on s’intéresse de près au référencement on entend parler du Nofollow censé indiquer à Google les liens qu’on ne souhaite pas qu’il suive.

Quand utiliser le Nofollow ?

Dans un certains nombre de cas de figures il est recommandé d’utiliser cette balise :

Plus radical que le nofollow : l obfuscation de liens (mis à jour)

Néanmoins, je ne suis pas fan de la balise nofollow pour plusieurs raisons :

  • l’URL du site est toujours présente dans le code de la page et dilue votre jus SEO (non le PageRank n’est pas mort)
  • C’est un indicateur de non qualité ou de non fiabilité de la page pointée (sinon pourquoi indiquer qu’il ne faut pas le suivre ?) et donc par ricochet de votre page aussi
  • Google prend parfois quand même en compte ce liens quand il en a envie ce qui va diminuer votre crawl time disponible s’il s’agit de liens internes

Rajoutez que si vous faites des liens vers des sites que Google a rangé dans les cases « spammeur », « téléchargement illégal » ou « contenu adulte », vos pages contenant ces liens peuvent être déclassées voire même pénalisées. A l’époque où le PR etait encore public, une page PR3 d’un de mes sites est passée en moins de 48h en PR-1 suite à l’ajout d’un lien adulte.

Le risque est moindre pour les liens affiliés … pour le moment. Mais pourquoi prendre le moindre risque et dilluer inutilement votre jus SEO ?

Voulant éviter tout cela, le premier reflexe serait de remplacer vos liens classiques par des liens en javascript du style :

<a onclick="window.open('mon_url','_blank);"
href="#" rel="nofollow">mon ancre</a>

Seulement depuis déjà un moment Google sait très bien identifier et suivre ces liens, que ce soit dans les menus animés ou ailleurs…

Comment se passer du Nofollow

Option 1 : le minifieur de liens

Une option simple et radicale consiste à passer par un minifieur de liens.
Seulement :

  • je ne sais pas si ou quand Google pourra décrypter des bit.ly et consorts
  • bit.ly bloque certains liens d’affiliation

Ok NEXT !

Option 2 : le cloaking de liens

En fouillant un peu j’ai bien trouvé une solution sur Yoast qui permet de masquer totalement certains liens à Google.

L’idée consiste à :

  • Créer un répertoire de redirection, su style /redirection/
  • Bloquer l’accès à ce répertoire aux robots dans le fichier robots.txt
  • Créer un fichier redirects.txt dans lequel on stocke la liste de toutes ses redirections
  • Et mettre en place un script de redirection

Le tout (téléchargeable sur github) est efficace mais je trouve ça super lourd …

Option 3 : l’obfuscation de liens

Je me suis donc creusé la tête et j’ai fini par penser à une solution simple que j’espère satisfaisante : obfusquer mes liens.

Si Google est capable de suivre des liens en JS il n’exécute à priori pas tous les scripts à chaque passage de bot, en particulier s’il s’agit de scripts hébergés ailleurs voire même bloqués via .htaccess + robots.txt (ceinture et bretelle) .
J’ai donc entrepris :

  • d’utiliser la balise HTML 5 data-href
  • d’encoder certains liens en rot13 (une fonction basique qui permet de faire des permutations de lettres en PHP)
  • et de les décoder en Javascript à chaque clic

Pour encoder des liens en rot13 je remplace donc :

<a href="<?php echo $monlien; ?>">mon ancre</a>

par

<span onclick="linkAction(this); return false;"  
data-href="<?php echo str_rot13($monlien); ?>">mon ancre</span>

Puis je rajoute dans la page (ou idéalement via un fichier externe hébergé sur un autre domaine) la fonction de décryptage suivante en Javascript :

<script  type="text/javascript">
function str_rot13(str) {
	return (str + '').replace(/[a-z]/gi, function(s) {
		return String.fromCharCode(s.charCodeAt(0) 
		+ (s.toLowerCase() < 'n' ? 13 : -13)); 
	}); 
}
function linkAction(e) { 
	window.location = rot13(e.getAttribute("data-href")); 
}
</script>

Les liens apparaîtront donc pour Google sous la forme suivante :

<span onclick="linkAction(this); return false;" data-href="uggc://jjj.k...">ancre</span>

Si vous voulez pousser le vice encore un cran plus loin, vous pouvez même remplacer data-href par data-nimportequoi et surtout et déclencher l’action onclick via une classe.
On aurait alors un lien obfusqué de type : 

<span class="obfusque" data-obfusque="uggc://jjj.k...">ancre</span>

Script complet d’obfuscation de liens en jQuery

Maintenant que vous avez bien compris le principe, voyons le script complet en utilisant la librairie jQuery :

<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
	<style>
	.classe_obfusquee{
		text-decoration:underline;
		cursor: pointer;
	}
	</style>
	<script type="text/javascript">
	
	function str_rot13(str) {
		return (str + '').replace(/[a-z]/gi, function(s) {
			return String.fromCharCode(s.charCodeAt(0) 
			+ (s.toLowerCase() < 'n' ? 13 : -13)); 
		}); 
	}

	$(document).ready(function(){
        $("classe_obfusquee").click(function() {
			window.location = str_rot13($(this).attr("url_obfusquee")); 
			return false;
        });
	});
	</script>
</head>
<body>
	Un <span class="classe_obfusque" url_obfusquee="<?php echo str_rot13("https://pxagency.fr/monetiser-site/"); ?>">lien obfusqué</span> que Google aura du mal à suivre
</body>
</html>

Le code ci-dessus est fonctionnel, il ne vous reste plus qu’à déplacer la partie JS dans un fichier externe hébergé et protégé ailleurs.

Je doute que Google arrive à identifier ce type de liens obfusqués et encore moins à les suivre dans ces conditions, mais vos avis sont les bienvenus !
Je vous rappelle également que si le Javascript est désactivé sur la page, le lien sera totalement inactif et l’internaute ne pourra donc pas le suivre…

Plus radical que le nofollow : l'obfuscation de liens (mis à jour)

Vous avez un projet ?

Parlons-en ensemble

Nous contacter

Partager cet article

Noter cet article

Fabien Elharrar - 307 articles
Consultant en acquisition d'audience, monétisation web et growth hacking.
157 solutions pour monetiser votre blog
RECEVOIR LES MEILLEURS ARTICLES
JE M'ABONNE