skip to Main Content
Plus Radical Que Le Nofollow : L'obfuscation De Liens (mis à Jour)

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

Temps de lecture 7 minutes

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_obfusquee" 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…

obfuscation de liens

cloaking obfusc woocommerce

https://pxagency fr/nofollow-obfuscation/

obfuscation des urls

semrush crack language:FR

0 0 vote
Noter cet article

Fabien Elharrar

Consultant en acquisition d'audience, monétisation web et growth hacking.

S’abonner
Notifier de
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

10 Commentaires
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Crack-net
Crack-net
12/04/2014 12:59

Hello Fabien

tu fais ça manuellement pour chaque lien ou tu automatises le truc?

Sinon, un petit soucis d’affichage du code dans l’article(sous chrome en tout cas)… Les lignes débordent un peu à droite et on ne voit plus la fin du code.

Fabien Elharrar
Fabien Elharrar
13/04/2014 09:02
Reply to  Crack-net

C’est automatisé heureusement !
Tu n’as pas une barre de scroll dans les zones de code ? Peut-être un souci de de cache navigateur ?

Alecsy
Alecsy
13/04/2014 10:05

Salut,

Merci pour cette astuce.

N’as-tu pas peur de prendre un malus car les robots vont trouver des liens morts ?

Fabien Elharrar
Fabien Elharrar
13/04/2014 11:10
Reply to  Alecsy

Il ne trouveront que des liens « internes » aux pages avec le # donc aucun souci à ce niveau

Aurele
Aurele
14/04/2014 14:19

Dis moi, tu n’aurais pas trouvé cela sur le site suivant…

http://www.alittlemarket.com

Car en fait, il utilise une méthode similaire depuis plusieurs années, il me semble…

Mais bien joué quand même ! 🙂

Merci

Fabien Elharrar
Fabien Elharrar
14/04/2014 15:48
Reply to  Aurele

J’ai trouvé ça en fouillant sur Stack Overflow en fait 😉

Serge Esteves
Serge Esteves
14/04/2014 15:22

Salut Fabien, Google est devenu assez bon pour suivre les liens javascripts depuis 2011 a peu près. C’est à partir de la que j’ai commencé à voir des liens en javascripts suivis par googlebot J’ai du mettre à jour mes méthodes d’obfuscation pour que l’URL ne soit pas facilement lisible dans le code, un peu comme tu l’as fait mais avec un cryptage en base 64. En revanche, les liens obfusqués se trouvent dans un span , afin d’éviter une perte de jus. Car même si avec ta méthode, google n’arrivera pas à suivre le lien, vu qu’il se trouve… Lire la suite »

Fabien Elharrar
Fabien Elharrar
14/04/2014 15:51
Reply to  Serge Esteves

Tu as raison je vais adapter ça c’était un premier jet 😉

Pat
Pat
20/05/2020 14:50

merci pour ton script, j’ai vu 2 petites erreurs dans ton script :
– un e manquant sur la classe css du span
– un . sur $(« classe_obfusquee »)

10
0
Would love your thoughts, please comment.x
()
x
Back To Top
×Close search
Rechercher