J'ai remarqué que Google Webmaster Tools signale un grand nombre de ressources bloquées sur mon site Web. À l'heure actuelle, toutes les «ressources bloquées» sont les .css, .js et les images (.jpg, .png) que je sers depuis Cloudfront CDN.
J'ai passé beaucoup de temps à tester et à essayer de comprendre pourquoi Google n'explore pas ces fichiers et signale un état de "bloc de ressources".
Actuellement, je sers ces fichiers à partir de plusieurs noms d'hôtes comme: cdn1.example.com, cdn2.example.com,…
cdn1, cdn2 et les autres sont des CNAME au nom de distribution cloudfront.
Test: j'ai essayé d'utiliser directement la distribution cloudfront (pas de CNAME) mais le problème persiste.
Actuellement, mon robots.txt ressemble à ceci:
# Google AdSense
User-agent: Mediapartners-Google
Disallow:
#Google images
User-agent: Googlebot-Image
Disallow: /
User-agent: *
Disallow: /homepage
Disallow: /index.php*
Disallow: /uncategorized*
Disallow: /tag/*
Disallow: *feed
Disallow: */page/*
Disallow: *author*
Disallow: *archive*
Disallow: */category*
Disallow: *tag=*
Disallow: /test*
Allow: /
Et des exemples de fichiers bloqués dans une page d'exemple:
cdn1.example.com/wp-content/plugins/wp-forecast/wp-forecast-default.css
cdn9.example.com/wp-content/plugins/bwp-minify/min/?f=wp-content/themes/magazine/css/font-awesome.min.css,wp-content/themes/magazine/css/responsive .css
cdn5.example.com/wp-content/themes/magazine/images/nobg.png
cdn6.example.com/wp-content/plugins/floating-social-bar/images/fsb-sprite.png
cdn5.example.com/wp-content/uploads/2013/11/Design-Hotel-3-80x80.jpg
cdn5.example.com/wp-content/uploads/2013/11/Marta-Hotel-7-270x225.jpg
J'ai même essayé de tout autoriser dans le fichier robots.txt mais j'ai toujours le même résultat.
J'ai également examiné attentivement les paramètres CloudFront d'Amazon et je ne vois rien qui puisse être lié (je n'utilise pas et n'ai jamais utilisé l'option: "Restreindre l'accès au visualiseur (utiliser des URL signées ou des cookies signés)").
En ce moment, j'ai passé beaucoup de temps à étudier cela et je n'ai plus d'idées.
Quelqu'un peut-il penser à une raison pour laquelle Googlebot ne serait pas autorisé à analyser des fichiers hébergés dans Amazon CloudFront?
*
à la fin de l'URL "préfixe"./test*
est le même que/test
.Réponses:
Ainsi, la solution semble être qu'Amazon cloudfront évalue également mon
robots.txt
et utilise en quelque sorte des règles de syntaxe différentes de Google.La version de travail de my
robots.txt
est la suivante:Une note très importante pour dire que cela ne remplit pas exactement les mêmes fonctions qu'auparavant. En fait, j'ai supprimé toutes les lignes vierges, les caractères génériques et les directives "allow". Ce qui signifie que le résultat final n'est pas le même ... mais je pense que c'est assez proche pour moi. Par exemple, il n'exclut pas les pages de balises lorsqu'il est passé dans la chaîne de requête ...
Trois notes importantes:
Si vous testez avec cela, n'oubliez pas d'invalider la
robots.txt
distribution cloudfront pour chaque itération. Il ne suffit pas de vérifier que la dernière version vous est envoyée.Je n'ai trouvé nulle part une définition de la
robot.txt
syntaxe comprise par amazon cloudfront. C'était donc un essai et une erreur.Pour tester les résultats, utilisez l'outil "récupérer et afficher" de Google Webmaster et de leur testeur mobile ( https://www.google.com/webmasters/tools/mobile-friendly/ )
Je ne comprends pas pourquoi cloudfront valide et évalue mon
robots.txt
. Ce fichier est un "accord" avec moi et les robots d'exploration qui viennent sur mon site. Amazon n'a rien à faire au milieu. Jouer avec moirobots.txt
est tout simplement stupide.Il ne m'est jamais venu à l'esprit que cloudfront pourrait être en train de deviner ma
robots.txt
syntaxe.la source
Créez un fichier robots.txt dans un compartiment.
Créez une autre origine pour votre distribution cloudfront.
Définissez la priorité de votre bucket plus haut que votre site Web.
Invalidez le fichier robots.txt de votre site sur Cloudfront.
Après avoir fait ce qui précède, Google lira les sites robots.txt lors de l'exploration de votre site et pourra voir les différents robots.txt en suivant les liens de votre cdn.
la source
Google ne bloque pas l'indexation des ressources externes via l'utilisation d'un fichier robots.txt à la racine du site principal. En utilisant un sous-domaine, un cdn ou autre est classé comme un domaine externe, la seule façon de bloquer le contenu est d'utiliser une réponse d'en-tête sur le fichier servi par le CDN lui-même, ou en utilisant un robots.txt sur le cdn ou le sous-domaine .
En utilisant:
Si vous ne devez bloquer que les images locales, vous devrez faire de même sur le CDN.
Les chances sont que c'est un problème de réponse d'en-tête et vous devriez faire un 'CURL' sur l'un des fichiers sur le CDN. Cela devrait ressembler à quelque chose comme:
Les choses à surveiller sont:
la source
check the robots.txt on your CloudFront distribution
je l'ai dit aussi! Le seul moyen de bloquer les images indexées sur le CDN est le x-robots-tag et un robots.txt sur le CDN lui-même, encore une fois mentionnés.J'ai découvert le problème: le CloudFront lit le fichier robots.txt et empêche de diffuser le contenu, mais il analyse la différence par rapport à ce que les robots devraient, je suppose.
Par exemple, le contenu suivant sur robots.txt:
Disallow: */wp-contents/ Allow: */wp-contents/themes/
Lorsque Googlebot l'obtient lui-même, il l'indexe; Lorsque CloudFront le lit, il ne prend pas en compte la directive «Allow» et interdit de servir quoi que ce soit à l'intérieur
*/wp-contents/themes/
.Réponse courte: vérifiez le fichier robots.txt sur votre distribution CloudFront, cela pourrait être le problème. Invalidez-le et mettez-le à jour avec une version corrigée et cela devrait fonctionner!
la source