web-dev-qa-db-fra.com

Google n'analyse pas les fichiers CDN

J'ai remarqué que Google Webmaster Tools signalait de nombreuses ressources bloquées sur mon site Web. Actuellement, toutes les "ressources bloquées" sont des fichiers .css, .js et des images (.jpg, .png) que je sers à partir de CDN Cloudfront.

J'ai passé beaucoup de temps à tester et à essayer de comprendre pourquoi Google n'analysait pas ces fichiers et signalait le statut de "bloc de ressources".

Actuellement, je sers ces fichiers à partir de plusieurs noms d'hôte tels que: cdn1.example.com, cdn2.example.com,…

cdn1, cdn2 et les autres sont les noms CNAME du nom de la distribution Cloudfront.

Test: j'ai essayé d'utiliser directement la distribution Cloudfront (pas de CNAME) mais le problème persiste.

Actuellement, mon fichier 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 un exemple de page:

  • 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 robots.txt mais j'ai toujours le même résultat.

J'ai également examiné attentivement les paramètres de CloudFront sur Amazon et je ne vois rien qui puisse être lié (je n'utilise ni n'ai jamais utilisé l'option: "Restreindre l'accès du visualiseur (utiliser des URL signées ou des cookies signés)".

En ce moment, j'ai passé beaucoup de temps à examiner cela et je n'ai plus d'idées.

Quelqu'un peut-il imaginer une raison pour laquelle Googlebot serait empêché d'analyser des fichiers hébergés sur Amazon CloudFront?

11
tonelot

Ainsi, la solution semble être qu'Amazon Cloudfront évalue également mon robots.txt et utilise en quelque sorte différentes règles de syntaxe de Google.

La version de travail de mon robots.txt est la suivante:

User-agent: Googlebot-Image
Disallow: /
User-agent: *
Disallow: /homepage
Disallow: /uncategorized
Disallow: /page
Disallow: /category
Disallow: /author
Disallow: /feed
Disallow: /tags
Disallow: /test

Une note très importante pour dire que cela ne remplit pas exactement les mêmes fonctions qu'auparavant. En fait, j'ai retiré toutes les lignes vides, les caractères génériques et les directives "autoriser". 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’elles sont passées dans une chaîne de requête.

Trois notes importantes:

  1. Si vous testez avec cela, n'oubliez pas d'invalider robots.txt dans la distribution Cloudfront pour chaque itération. Vérifier que la dernière version est bien servie ne suffit pas.

  2. Je n'ai trouvé nulle part une définition de la syntaxe robot.txt comprise par Amazon Cloudfront. Donc, c'était un essai et une erreur.

  3. Pour tester les résultats, utilisez l'outil "fetch and render" de Google Webmaster et de son testeur convivial pour 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 qui viennent sur mon site. Amazon n'a pas d'affaire au milieu. Jouer avec mon robots.txt est tout simplement stupide.

Je ne me suis jamais rendu compte que cloudfront pouvait être une seconde tentative de ma syntaxe robots.txt.

6
tonelot

Créez un fichier robots.txt dans un compartiment.

Créez une autre origine pour votre distribution cloudfront.

Définissez la priorité de votre compartiment plus haut que votre site Web.

Invalide le fichier robots.txt de ton site sur Cloudfront.

Une fois ce qui précède effectué, Google lira les sites robots.txt lors de l’exploration de votre site et pourra voir les différents robots.txt lors du suivi de liens à partir de votre cdn.

2

Google ne bloque pas l'indexation de ressources externes via un fichier robots.txt à la racine du site principal. En utilisant un sous-domaine, un cdn ou autre est considéré comme un domaine externe; le seul moyen de bloquer le contenu consiste à utiliser une réponse en-tête sur le fichier fourni par le CDN lui-même ou à l'aide d'un fichier robots.txt sur le cdn ou le sous-domaine. .

En utilisant:

#Google images
User-agent: Googlebot-Image
Disallow: /

Si vous ne devez bloquer que les images locales, vous devrez faire de même sur le CDN.

Il y a de fortes chances que ce soit un problème de réponse en-tête et que vous deviez faire un "CURL" sur l'un des fichiers du CDN. Cela devrait ressembler à quelque chose comme:

HTTP/1.0 200 OK
Cache-Control: max-age=86400, public
Date: Thu, 10 May 2012 07:43:51 GMT
ETag: b784a8d162cd0b45fcb6d8933e8640b457392b46
Last-Modified: Tue, 08 May 2012 16:46:33 GMT
X-Powered-By: Express
Age: 7
Content-Length: 0
X-Cache: Hit from cloudfront
X-Amz-Cf-Id: V_da8LHRj269JyqkEO143FLpm8kS7xRh4Wa5acB6xa0Qz3rW3P7-Uw==,iFg6qa2KnhUTQ_xRjuhgUIhj8ubAiBrCs6TXJ_L66YJR583xXWAy-Q==
Via: 1.0 d2625240b33e8b85b3cbea9bb40abb10.cloudfront.net (CloudFront)
Connection: close

Les choses à surveiller sont:

HTTP/1.1 200 OK
Date: Tue, 25 May 2010 21:42:43 GMT
X-Robots-Tag: googlebot: noindex
1
Simon Hayter

Découvrez le problème: CloudFront lit le fichier robots.txt et empêche de servir le contenu, mais il analyse en quoi il diffère de 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 considère pas la directive 'Allow', et interdit de servir quoi que ce soit à l'intérieur de */wp-contents/themes/.

Réponse courte: consultez le fichier robots.txt sur votre distribution CloudFront, cela pourrait être le problème. Invalider et mettre à jour avec une version corrigée et cela devrait fonctionner!

1
snagnever