Le Duplicate Content est une vraie plaie, pour tout le monde. Autant pour les blogueurs consciencieux qui essaient de produire du contenu de qualité, que pour les personnes disposant de sites de communiqués de presse, ou celles disposant d’un (réseau de) MFA.
Copier-coller du contenu pénalise autant le copieur que le copié, et il n’y a aucun avantage à faire cela : les pages (du copieur et parfois du copié) passent dans l’index complémentaire, les backlinks perdent en qualité et en puissance, bref rien de bon.
C’est pour cela que les sites de communiqués de presse et les annuaires insistent autant sur l’importance du contenu unique lorsque vous soumettez chez eux, ce n’est pas par pur sadisme.
Oui, mais comment s’en protéger ?
Cela fait quelques mois que j’ai utilisé des solutions qui ne me convenaient jamais assez. La première solution pour « limiter les dégâts » des agrégateurs, c’est le plugin RSS Footer : il vous permet de mettre un BL vers votre site au pied de chacun de vos items RSS. C’est mieux que rien, mais souvent les agrégateurs suppriment tous les liens. Donc solution bancale.
Il y a également l’excellent et indispensable linkbuilding pro qui se charge de « truffer » votre texte de liens, en utilisant javascript. Ainsi lorsqu’un boulay copie votre texte, le plugin ajoute dans le presse-papier de la personne des BL vers vous, au sein du texte et sur des mots-clés sympa. Là, ça devient franchement pas mal car les liens changent de place et d’ancres.
Mais ça n’est pas la solution « ultime » car les scrapeurs automatiques, eux, n’ont pas javascript. Donc ils se fichent de tout ça.
Des solutions extrêmes ?
J’ai pensé à tout : afficher le texte sous forme d’image pour ne pas qu’il soit « copiable », mais ce n’était juste pas envisageable : ça diminue trop l’expérience utilisateur et ça pose la question du crawl par google : car n’oublions pas que c’est lui le principal concerné dans toute cette affaire, si on veut du contenu unique c’est juste pour lui et c’est parce que cet incapable est infichu de détecter l’original de la copie.
J’ai aussi pensé à spinner chacun de mes articles et afficher une version différente pour chaque IP qui veut afficher l’article. Du coup l’article original aurait été une sorte de « matrice d’information » dont chaque visiteur affiche une facette différente, sans véritablement savoir quel est « l’original ». Mais honnêtement, spinner chaque article ç’aurait été un boulot de malade et ça posait des problèmes de « source » : comment inclure une citation crédible si l’article change tout le temps ?
Quand vint l’illumination
Homographe, voici le mot magique. Ceux qui me suivent sur twitter ont peut-être vu cet été/à la rentrée quand j’ai fait une petite frayeur à certains de mes potos, en leur faisant croire que leur site avait été blacklisté sur Google, en me servant des homographes, suite à une découverte via un article de zorgloob.
En gros pour faire simple et rapide : certains caractères dans l’alphabet russe sont exactement identiques aux caractères français.
Je pense au а et au і .
Ces lettres, en rouge, sont des lettres en russe, pourtant vous avez parfaitement pu les lire.
Sauf que pour Google, qui est un (stupide) robot, rappelons-le, elles sont bel et bien en russe.
Allez, histoire de vous marrer un peu, testez ces différentes requêtes :
Pourtant, pour un lecteur « humain », tout est absolument identique, même via un reader ou via un contenu dupliqué ailleurs.
La suite en images
Pour que vous compreniez bien le cheminement de l’idée et l’intérêt du plugin, voici un petit diaporama à la « simpleslide »:
Il semble donc que le plugin ne soit pas le plus approprié pour les MFA, mais imaginez un peu…
Les boutiques en ligne, les blogs, les pages d’affiliation, etc…
Faîtes un test : cherchez n’importe quelle phrase de cet article sur Google, et vous verrez bien
Attention les amis, n’utilisez PAS duplicate content poison avec un plugin de cache, sauf si vous pouvez interdire la mise en cache lorsque Googlebot demande la page !
Ohhhh, je veux ce plugin !
Alors inscris-toi à ma newsletter et tu recevras ce plugin dans ta boîte email instantanément (ou presque). Regarde l’effet produit.





{ 65 comments }
Des grosses barres, sérieux ! XD
La technique est tout simplement ENORME !
Un grand bravo, vraiment.
Petite question, pourquoi ne pas cloacker pour le robot adsense aussi ? pour qu’il voit le contenu FR et non russe ?
Je suis encore sur le cul de la trouvaille !
Je crois que le robot d’adsense crawle en javascript, donc côté utilisateur :/ Enfin, à vérifier.
J’aime bien l’idée, mais en gros on a que le ‘a’ et le ‘i’ comme homographes lisibles ?
Et puis sinon, je ne vois pas pourquoi certains scrappers mailicieux ne viendraient pas avec l’en-tête d’un GGbot (à moins que l’on cloak sur une base d’IPs ?)
euh… Là, je suis perdu, je ne vois pas l’intérêt pour le site qu’on veut promouvoir, s’il possède des mots homogrаphiques puisqu’on perd des mots clés (qui pourrait contenir des lettres empéchant Google d’indexer la page pour tel ou tel mot clé).
niarf, je vais relire une seconde fois ou faire le fainéant et attendre une réponse
Juste une question, si l’on passe par un copier coller sur un bloc notes, est ce que la technique ne fonctionne plus ?
Vincent@jambonbuzz´s last [type] ..Audit SEO du site creaexpertcom
niarf … j’aurai dû ouvrir le fichier zip avant de commenter l’article…
L’article propre est affiché à Google Bot, tandis qu’un internaute lambda se prendra un texte truffé de mot homographique.
CQFD.
Bon, mon grain de sel :
- si google bot avance masqué et/ou n’a pas le mot googlebot dans son useragent, on fait quoi ?
- et pour bing & yahoo (ou plutôt bing) : OSEF ou bien ?
Oui OSEF
Attention, je n’ai pas encore réglé la question des entités html. Il va falloir que je me penche sur le problème
Yop paysan SEO !
Bon pour résumer on reprend la fonction pour réécrire les URLs et on modifie l’array et hop on réécrit l’article, les commentaire ou ce qu’ont veut.
On affiche à google la véritable version (no cache) et aux vilains visiteurs, on leur file l’article dans une langue inconnu ^^
Mais bon maintenant que t’as lâché l’astuce, ça marche plus car je peux faire pareil à l’envers trop facilement
Dans tous les cas très bien vu
J’adore ce genre d’astuce, merci
Et pour les plus paranos, hop faut dev un petit plugin firefox pour détecter les vilains utilisateurs de cette technique
Une grosse tuerie ! félicitation.
Bon j’ai beau chercher des moyens simples de contrer ce point mais ça n’existe pas (même le bloc notes qui nettoie habituellement le code).
Reste à faire un contre script de parsing !
Très beau boulot !
Tu t’es vraiment gavé, cette idée est géniale !
‘a’ et ‘i’ sont-elles les deux seules lettres identiques dans l’аlphаbet russe et frаnçаіs ? Si c’est le cas, certaines phrases pourraient passer à travers, et il pourrait donc toujours y avoir un cas de duplicate.
Mais effectivement, en testant au hasard plusieurs phrases de cet article, tout semble OK !
Je vais mettre en place ce plugin sur un premier petit site et vous donner mes feedbacks.
En tout cas, beau travail, ça risque de cartonner très très fort…
Oui il n’y a que a et i, mais vu que 80% des mots possèdent une lettre ou l’autre, au niveau duplicate c’est insignifiant. Et surtout ça empoisonne le site du copieur
Bien fait
Ha ha ;D et voilà la 1ère victime :
http://www.courrierblog.com/2010/12/23/duplicate-content-poison-%E2%80%93-tuez-definitivement-tous-les-copieurs/
Génial mais il y a sans doute d’autres lettres qui peuvent faire l’affaire… c’est sur que le russe c’est du cyrillique … et c’est un alphabet plus riche que le notre il me semble… faut chercher…mais la en même temps c’est vrai maintenant qu’on sait… une opération inverse fera reprendre les bonnes lettres
Emile de locationcorsica´s last [type] ..Location en Corse – sur Afa
Oui, voilà pourquoi j’ai dit que celui qui veut VRAIMENT vous nuire vous nuira de toute façon, c’est net
C’est super malin comme technique
Pour info ceci dit : i est une lettre ukrainienne et n’existe pas dans l’aphabet russe (ce qui empeche encore moins de fonctionner hein). Sinon, e, p, o, y, et x marchent tout autant.
Alors ça c’est vraiment de la super bonne idée, je te félicite… Ca peut régler le problème pour une bonne partie d’entre nous, après reste le problème du cloaking, ça ça se discute, au moins sur le principe.
Bruno@Krav Maga´s last [type] ..Le krav maga à Saint-Victurnien
@je sais plus qui : cette méthode est indétectable pour celui qui n’est pas au courant de cette technique.
Le « i » va avoir la même gueule que la lettre ukrainienne ou russe, pareil pour le « a ».
A moins de faire une recherche d’un mot dans le texte, ce qui donnera la puce à l’oreille, il n’y a aucune chance d’être détecté.
J’y vois 2 avantages dans cette techniques :
- on n’a plus de duplicate content puisque le texte copié n’est pas l’original
- la page adverse ne pourra pas se référencer, même sur les mots clés… Une page pourrie donc.
lolo
ps : qui se dévoue pour en faire un plugin joomla ? faut juste rajouter l’entête du fichier et la fonction de hook… trop fainéant aujourd’hui
C’est du grand art ! C’est quel type de cloaking?
Protoss@référencement naturel´s last [type] ..Les meilleurs plugins SEO pour wordpress
Ben regarde dans l’archive !
Excellent, je vais le tester rapidement !
j’ai pas mal de problèmes de vol de contenu sur un de mes sites, et je cherchais une idée révolutionnaire
le teasing énorme était justifié
félicitations, une fois de plus
Niko @tuning raté´s last [type] ..Etienne le Bolideur
Chapeau dude
par contre ptite question ( j’ai pas encore recup le plugin pour check les src) , un simple utf8_decode ou htmlentities peut permettre de faire sauter la protection ?
en tout cas, oui tu épures pas mal les scrapeurs et c’est une excellente idée
Je n’aurais qu’une remarque : mais comment fais-tu pour avoir autant la classe ?!
EsraDT´s last [type] ..EsraDT- jeudiconfession les personnes qui mettent des majuscules intempestives dans leurs écrits me rendent malade sauvegardedelalanguefrançaise
@Karim la protection est « sautable » en récupérant le texte dans le cache de google ou en faisant les remplacements inverses. Mais honnêtement, les scrapeurs/pompeurs ne le font pas.
Bien joué vieux filou, super idée !
… ou en arrivant avec l’user-agent de Google Bot
Non car après le test sur l’U-A il y a un test de reverse IP…
Mais LOL ça devient de pire en pire les vidéos ici !
Sinon l’astuce est vraiment bien trouvée
Comme moi, il faut les idées et non que de la technique. Et quelle idée quand même !
Par contre, est-ce que sur tous les navigateurs affichent de la même manière ces a et i? Sous Firefox, Chrome et IE8 c’est identique, faudra penser à vérifier sur Safari.
Petite amélioration: inclure d’autres moteurs
Merci.
Rhalala petite faute, c’est « comme quoi ». Sorry pour le flood.
Je suis « sur le cul »! Chapeau pour la trouvaille! Simple et sûrement efficace.
Bon il y a toujours moyen de contourner cela, mais c’est déjà une bonne protection.
Il peut utiliser un logiciel de content spinning comme the best spinner…
Simple mais efficace: Ça me plait !
Well done pour cette idée:)
Tout simplement génial ! Cette technique n’est peut-être pas infaillible mais il fallait la trouver celle la !
Vraiment pas bête. J’adore tes 2 exemples pour faire peur à ses amis et faire croire à un blacklistage
Tu ne cesseras jamais de nous surprendre.
J’adore !!!
J’ai adoré le slide et les images utilisées. Merci pour cette technique !
Tout simplement génial cette technique et je crois que même Google peut y gagner avec cette méthode.
Si j’étais un spammeur malin et voyant que cette technique devient populaire, je me mettrais à scraper en me faisant passer pour un autre user-agent
Jeremy@Agence Web´s last [type] ..Le iPad- bourreau de l’imprimé
Merci à toi pour ce plugin et cette astuce tordue, franchement il faillait y penser. Les copieurs n’ont qu’a bien se tenir maintenant !
Excellente idée, d’autant que j’ai perdu quelque 4 heures, hier, à me battre contre un apprenti sorcier qui a dupliqué mon contenu en prétendant me faire de la publicité et que je devais lui en être reconnaissant. Voici quelques idées qui ont l’air carrément bonnes, et pourraient très bien être exploitées dans les flux RSS, notamment.
Je crains cependant que comme un certain moteur de recherche est passablement stupide, mais qu’il exécute du JavaScript, notamment, il risque de considérer cela comme étant du « cloaking ».
L’idée pourrait être de ne pas cibler googlebot et autres robots d’indexation des moteurs de recherche légitimes, d’une part, puis tous les autres, d’autre part, mais être plus subtil, en remplaçant le texte original par des homographes lorsque le visiteur est suspect.
Je retiens par ailleurs les diverses solutions visant à truffer les flux RSS de liens annexes et autres solutions du genre.
Enorme. On sent bien la recherche derrière, tourner en rond jusqu’à trouver la petite bête. J’adore. Simple et utile. Perfect.
Pour ceux qui utilisent Feedburner, vous pouvez activer l’interdiction de reprise par le très efficace mixeur de flux Yahoo Pipes.
LaurentB´s last [type] ..L’opérateur AROUNDn dans Google
Bon, un petit fichier confusables.php emprunté à phpBB permet de contourner le système.
Ce sera plus vicieux si tu devais exploiter les homographes de l’alphabet latin. Je pense notamment aux O, 0, l, I, 1, par exemple. Car là, il faudrait passer par un dictionnaire pour corriger les mots écrits en 1337.
Mais il y a plus vicieux. Le CSS. Tout d’abord, tu peux utiliser les pseudo-éléments :before et :after. Cela te permet d’insérer du HTML avant ou après une balise HTML (par exemple span) dotée d’un attribut style. Déjà, en soi, sans interpréter le CSS, c’est impossible à parer. Mais interpréter le CSS là dessus reste assez aisé en PHP. Dans ton cas, celui d’un blog lu par des professionnels du web, cela ne pose aucun souci. À priori, même dans les flux RSS qui conservent les balises CSS, cela n’en posera pas non plus. Mais si les balises HTML sont virées (cas typique du blog scrapping), ou que le navigateur n’est pas compatible (IE 6), ça risque de devenir illisible.
Tu peux aussi jouer sur les marges, notamment les marges négatives, pour déplacer deux lettres, par exemple. Visuellement, la différence sera négligeable. C’est plus compatible, mais moins propre. Surtout sur des lecteurs de flux qui n’utilisent pas la police ou la taille que tu as définies sur ton habillage.
Allons dans le carrément vicieux : le CSS couplé aux images intégrées dans le HTML. Car c’est possible. En faisant des HTML inline images (voilà pour le mot-clé à exploiter). Là, à moins d’un logiciel OCR couplé au soft de blog scrapping, cela devient chaud. Mais possible.
Note que du coup, tu bloqueras aussi le contenu qui te rapporte des liens. Car tous ceux qui se servent dans ton flux RSS (et plus généralement dans les flux RSS des blogs) ne l’exploitent pas de manière à parasiter le contenu original. Et ils risquent de supprimer les blogs qui posent trop de problèmes, et les liens qui vont avec. Ce serait dommage, non ? Il vaudrait donc mieux réserver cette pratique au contenu dépassant, par exemple, le titre et l’introduction, voire le premier paragraphe de contenu…
Technique très intéressante, reste à voir si elle permet de réellement réduire le duplicate content venant des vilains spammeurs.
Bonne continuation,
Pierre
Pierre@La Roche sur Foron´s last [type] ..Louisette
@Pierre : Pour réduire la duplication de contenu, c’est un moyen. Mais l’on peut aller plus loin dans cette voie : produire du contenu unique dans les URL, notamment en faisant du content-spinning sur la base de l’IP.
Oui mais Martin, comme dit dans l’article, le content spinning servi en fonction de l’IP, ça pose plein d’autres problèmes et ce n’est pas humainement réalisable
Sinon par rapport à ton message précédent, oui pourquoi pas, je vais faire la prochaine version du plugin en proposant aux gens de mettre leurs propres remplacements en plus des remplacements de base, donc ce sera une mort aux rats personnalisée.
@512banque : Je devine que tu évoques les soucis liés au cloaking, Google n’appréciant pas de recevoir du contenu différent des autres utilisateurs. L’utilisation de content-spinning dans les flux RSS impliquerait donc de distinguer non pas chaque visiteur en particulier, mais de cibler les adresses IP que tu suspectes de parasitisme, et rien que celles-là. On pourrait alors imaginer de filer du contenu « cassé » à la manière des homographes aux parasites, du contenu « content-spinné » pour les relais de flux RSS publics qui citent leurs sources et/ou autorisent des liens, et enfin laisser le contenu principal pour tous les autres.
En ce moment, je bosse sur mon annuaire à la con à moi. Mais plutôt que de faire comme tout le monde, je veux me distinguer, car je ne veux pas me noyer dans la masse. Pour autant, il faut du contenu. Et l’idée est de le puiser dans des flux RSS, notamment, mais non pas dans le but de scrapper bêtement ce contenu au détriment de leurs auteurs, mais de promouvoir ce contenu dans leur intérêt avant tout (c’est leur contenu, ils peuvent me bloquer très facilement et je n’ai pas envie de leur voler ce qui leur appartient), puis dans le mien (et c’est ça qui me motive, soyons honnêtes).
Ainsi, ça donne cet article minimaliste (mais dans l’esprit « annuaire », donc court) sur le classement SEO de wikio où divers flux RSS issus du classement de Wikio dans le domaine du référencement sont promus de manière automatisée et optimisée.
L’automatisation vise à réduire les coûts de maintenance (non, je ne vais pas mettre à jour des milliers de pages manuellement). L’optimisation vise à promouvoir ce contenu dans l’intérêt des webmasters mis en avant. Ma valeur ajoutée ? Rassembler ces flux (comme Wikio, donc peu d’intérêt ici), mais surtout les présenter (à ma manière, donc une valeur ajoutée moyenne, somme-toute, surtout avec une si courte présentation dans ce cas précis) et enfin d’ajouter des définitions aidant à la compréhension de ce contenu (définitions courtes pour le moment, renvoyant vers des définitions plus complètes, encore à venir).
Je disais donc : les liens vers les blogs promus, dont Delicious Cadaver, sont optimisés. Puisque les liens apparaissant dans les titres (balises h1, h2, etc.) sont moins efficaces que les flux issus des mots-clés intégrés au contenu rédactionnel, l’optimisation vise à afficher le titre, puis l’introduction de l’article puisée dans le flux RSS original, et y placer un lien sur un mot correspondant aux catégories puisées dans le flux. Si le mot-clé n’apparaît pas, alors le système ajoute une phrase invitant à lire l’article original en plaçant un lien sur l’un des mots-clés attendus.
Il est de mon intérêt de faire en sorte que les liens ainsi posés soient bien pris en compte par les moteurs de recherche : je veux me servir de cet annuaire (et du réseau d’annuaires équivalents à venir) pour promouvoir mes propres contenus et les sites de mes clients, en plus de sites tiers qui me fournissent du contenu gratuit (dont le tien, en me limitant à l’introduction et en optimisant le lien vers la source).
Le site, par ailleurs, exploite autant que possible du content spinning à base de hasard déterministe lié à l’URL des pages (une même URL génère le même contenu au final). Les « related posts » habituellement trouvés sur les blogs, notamment, mais plus généralement toutes les parties rédactionnelles du site, permettent donc de fournir du contenu spécifique à chaque page (pour peu que le content-spinning préparé soit de qualité suffisante).
Suite au présent article, j’ai « corrigé » les flux pour remplacer les homographes par leurs équivalents originaux. Aussi, je peux garder ton flux sans voir mon site saccagé. En revanche, si tu devais aller plus loin, ou si d’autres blogs devaient aller plus loin, je les ignorerai, éviterai de les republier.
Pour en revenir à ta solution, donc, je réitère ma recommandation de limiter l’utilisation des solutions « anti-content-spinning » à la lutte contre le parasitisme, et profiter de la force des flux RSS pour gagner des liens, sans pénaliser ceux qui assurent cette promotion.
Car je ne pense pas qu’un site qui copier-colle directement le titre et l’introduction de ton article, en plaçant un lien vers la source, qui plus est un lien optimisé, pourra se positionner avant l’original. Au contraire, non seulement il apparaîtra plus loin (si jamais il apparaît dans les résultats de recherche sur la même requête), et participera certainement à ton positionnement (au pire, il ne le pénalisera pas pour autant). Il serait donc bon de permettre ces sites tiers à continuer à fonctionner dans de bonnes conditions.
En revanche, ton idée et ton plugin restent excellents pour se prémunir des parasites, à savoir de sites qui exploitent ta propriété intellectuelle à leur unique avantage, supprimant les liens vers la source, supprimant tous les liens, et reproduisant tout ou partie de l’article volé. D’où l’intérêt d’un filtre sur IP.
Qu’en dis-tu ?
Oui, il faudrait une option : « personnaliser les remplacements » et « remplacer seulement le flux » et également « remplacement pour tous les visiteurs ou seulement certains »
Thanks pour les idées
Méfie-toi des idées : elles sont mauvaises, voire subversives, et, surtout, rajoutent plein de boulot en plus !
Car mine de rien, le souci de se baser sur les adresses IP est que cela peut poser un problème au niveau des systèmes de cache. J’utilise W3 Total Cache et celui-ci permet de faire du cache spécifique à certains user agents, mais, je le crains, pas aux adresses IP, ou alors je ne connais pas la manière de le configurer ainsi.
En revanche, il est toujours possible d’ajouter des paramètres aux URL, ce qui peut être une idée. Ainsi, le flux principal peut être promu normalement et satisfaire la plupart des visiteurs, alors que des flux secondaires, dont les URL ne sont pas publiques, ou du moins moins exposées, peuvent être communiquées à des tiers de confiance. Pas dément, comme solution, mais faisable.
ce plugin est sympa et la démarche vraiment bonne bravo !!!! mais quand est-il pour le positionnement des sites ? qq1 a t’il constaté après l’installation du plugin une modification ?
Si vous avez trouvé ce blog via une liste de blogs dofollow, ne perdez pas votre temps, je refuse systématiquement tous les commentaires sauf ceux en valent réellement la peine ;)
Comments on this entry are closed.