J'ai un site où une grande partie de l'accent est mis sur les images elles-mêmes. Lorsque les internautes visitent directement le site Web (avec une annonce AdSense), l’image s'affiche en haute qualité.
Lorsque les robots visitent l'image, ils verront une version en filigrane. La raison en est que le photographe du site consacre son temps à prendre des photos de haute qualité et que ce serait bien s’il pouvait en tirer profit.
Ce que j'ai essayé pendant un mois consécutif, c’est d’avoir indexé les versions en filigrane de l’image avec Google afin que, lorsque l’utilisateur clique dessus, il en saura davantage sur le site Web, car celui-ci est imprimé sur l’image en filigrane. Le problème n'est pas qu'une seule image en filigrane est indexée.
Dans le passé, je permettais à tout le monde de voir l'image de la même manière (sans modification, sans filigrane et en haute qualité). Toutes les images étaient ensuite indexées. J'ai appris que c'était une erreur, car les gens pourraient simplement télécharger les images directement de Google sans voir mon site Web ni même une publicité.
Dans les deux cas, j'ai soumis des sitemaps pointant vers des URL valides et je n'ai utilisé aucun tag robot noindex ou noimageindex et je n'ai pas utilisé robots.txt pour refuser l'accès aux images.
Existe-t-il un moyen d’indexer des images en filigrane avec Google?
Voici un article à ce sujet où ils expliquent comment le mettre en œuvre. Affichez des images complètes sur votre propre site, mais affichez uniquement la version en filigrane dans la recherche d'images Google.
La technique de base consiste à choisir la version à utiliser (avec filigrane ou nettoyage) en fonction du référent HTTP et de l'agent utilisateur.
De cette façon, Googlebot peut afficher les versions non corrigées (afin de pouvoir les classer), mais les utilisateurs ne la voient qu'une fois sur leur site.
Le moyen idéal serait de gérer cela au niveau nginx.
Faites quelque chose comme ça:
Ajoutez ceci dans votre configuration nginx.
map $http_user_agent $limit_bots {
default 0;
~*(google|bing|yandex|msnbot) 1;
~*(AltaVista|Googlebot|Slurp|BlackWidow|Bot|ChinaClaw|Custo|DISCo|Download|Demon|eCatch|EirGrabber|EmailSiphon|EmailWolf|SuperHTTP|Surfbot|WebWhacker) 1;
~*(Express|WebPictures|ExtractorPro|EyeNetIE|FlashGet|GetRight|GetWeb!|Go!Zilla|Go-Ahead-Got-It|GrabNet|Grafula|HMView|Go!Zilla|Go-Ahead-Got-It) 1;
~*(rafula|HMView|HTTrack|Stripper|Sucker|Indy|InterGET|Ninja|JetCar|Spider|larbin|LeechFTP|Downloader|tool|Navroad|NearSite|NetAnts|tAkeOut|WWWOFFLE) 1;
~*(GrabNet|NetSpider|Vampire|NetZIP|Octopus|Offline|PageGrabber|Foto|pavuk|pcBrowser|RealDownload|ReGet|SiteSnagger|SmartDownload|SuperBot|WebSpider) 1;
~*(Teleport|VoidEYE|Collector|WebAuto|WebCopier|WebFetch|WebGo|WebLeacher|WebReaper|WebSauger|eXtractor|Quester|WebStripper|WebZIP|Wget|Widow|Zeus) 1;
~*(Twengabot|htmlparser|libwww|Python|Perl|urllib|scan|Curl|email|PycURL|Pyth|PyQ|WebCollector|WebCopy|webcraw) 1;
}
Vérifiez la présence du bot dans le bloc d'emplacement comme suit: (ceci est générique, vous pouvez aussi ne vérifier que watermark.jpg
)
location / {
if ($limit_bots = 1) {
rewrite ^/images/(.*).(png|jpg|gif) /images/bot/$1.$2 ;
}
}
Vous ne devriez pas faire cela, pour des raisons déjà mentionnées dans les commentaires. Vous pouvez filtrer par chaînes utilisateur-agent. Vous pouvez trouver une liste d'environ 300 agents utilisateurs communs donnés par les robots ici: http://www.robotstxt.org/db.html . Parcourez cette liste et décidez ce qu'il faut montrer. Mais faire cela pour chaque photo? Vous pouvez également consulter vos journaux pour savoir quels sont les robots qui visitent votre site et uniquement les consulter. Mais encore une fois: vous feriez mieux de marquer toutes les images et de ne fournir qu'une qualité élevée après le paiement.
L'histoire de l'agent utilisateur est une réponse à l'adresse suivante: https://stackoverflow.com/questions/422969/how-to-recognize-bots-with-php