Me di cuenta de que Google Webmaster Tools informa muchos recursos bloqueados en mi sitio web. En este momento, todos los "recursos bloqueados" son .css, .js e imágenes (.jpg, .png) que sirvo desde Cloudfront CDN.
He pasado mucho tiempo probando e intentando descubrir por qué Google no rastrea estos archivos e informa un estado de "bloqueo de recursos".
Actualmente sirvo estos archivos de varios nombres de host como: cdn1.example.com, cdn2.example.com, ...
cdn1, cdn2 y los demás son CNAME para el nombre de distribución de cloudfront.
Prueba: he intentado usar directamente la distribución en la nube (sin CNAME) pero el problema persiste.
Actualmente mi robots.txt se ve así:
# 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: /
Y ejemplos de archivos bloqueados en una página de ejemplo:
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
Incluso he intentado permitir todo en robots.txt, pero siempre tengo el mismo resultado.
También he estado mirando cuidadosamente la configuración de CloudFront en Amazon y no veo nada que pueda estar relacionado (no uso y nunca usé la opción: "Restringir el acceso al visor (usar URL firmadas o cookies firmadas)".
En este momento he pasado mucho tiempo investigando esto y no tengo más ideas.
¿Alguien puede pensar en una razón por la cual Googlebot no podría rastrear archivos alojados en Amazon CloudFront?
*
al final del "prefijo" de la URL./test*
es el mismo que/test
.Respuestas:
Entonces, la solución parece ser que Amazon Cloudfront también evalúa mi
robots.txt
y de alguna manera usa diferentes reglas de sintaxis de Google.La versión de trabajo de my
robots.txt
es la siguiente:Una nota muy importante para decir que esto no está realizando exactamente las mismas funciones que antes. De hecho, eliminé todas las líneas en blanco, comodines y directivas de "permitir". Lo que significa que el resultado final no es el mismo ... pero creo que está lo suficientemente cerca para mí. Por ejemplo, no excluye las páginas de etiquetas cuando se pasan en la cadena de consulta ...
Tres notas importantes:
Si está probando con esto, no olvide invalidar
robots.txt
en la distribución en la nube para cada iteración. Simplemente comprobar que te están sirviendo la última versión no es suficiente.No pude encontrar en ninguna parte una definición de la
robot.txt
sintaxis entendida por Amazon Cloudfront. Entonces, fue prueba y error.Para probar los resultados, use la herramienta "buscar y procesar" de Google Webmaster y su probador amigable para dispositivos móviles ( https://www.google.com/webmasters/tools/mobile-friendly/ )
No entiendo por qué Cloudfront está validando y evaluando mi
robots.txt
. Este archivo es un "trato" conmigo y con los rastreadores que vienen a mi sitio. Amazon no tiene negocios en el medio. Jugar con mirobots.txt
es simplemente estúpido.Nunca se me ocurrió que Cloudfront podría ser una segunda adivinanza de mi
robots.txt
sintaxis.fuente
Crea un archivo robots.txt en un cubo.
Cree otro origen para su distribución en la nube.
Establezca la prioridad de su cubo más alta que su sitio web.
Invalide el archivo robots.txt de su sitio en Cloudfront.
Después de hacer lo anterior, Google leerá los sitios robots.txt cuando rastree su sitio y podrá ver los diferentes robots.txt cuando siga los enlaces de su cdn.
fuente
Google no bloquea la indexación de recursos externos mediante el uso de un archivo robots.txt en la raíz del sitio principal. Al usar un subdominio, un cdn u otro se clasifica como un dominio externo, por lo tanto, la única forma de bloquear el contenido es usando una respuesta de encabezado en el archivo servido por la propia CDN, o usando un robots.txt en el cdn o subdominio .
Utilizando:
Solo debe bloquear las imágenes que son locales, deberá hacer lo mismo en el CDN.
Lo más probable es que sea un problema de respuesta de encabezado y debe hacer un 'CURL' en uno de los archivos en el CDN. Debería verse algo así como:
Las cosas a tener en cuenta son:
fuente
check the robots.txt on your CloudFront distribution
que dije esto también! La única forma de bloquear las imágenes que se indexan en la CDN es x-robots-tag y un robots.txt en la propia CDN, nuevamente mencionado.Descubrí el problema: CloudFront lee el archivo robots.txt y evita servir el contenido, pero supongo que analiza de alguna manera lo diferente de lo que deberían hacer los robots, supongo.
Por ejemplo, el siguiente contenido en robots.txt:
Disallow: */wp-contents/ Allow: */wp-contents/themes/
Cuando Googlebot lo consigue, lo indexa; Cuando CloudFront lo lee, no considera la directiva 'Permitir' y prohíbe servir cualquier cosa dentro
*/wp-contents/themes/
.Respuesta corta: verifique el archivo robots.txt en su distribución de CloudFront, podría ser el problema. Invalidar y actualizar con una versión corregida y debería funcionar!
fuente