Я заметил, что Google Webmaster Tools сообщает о большом количестве заблокированных ресурсов на моем веб-сайте. Прямо сейчас все "заблокированные ресурсы" - это .css, .js и изображения (.jpg, .png), которые я обслуживаю из Cloudfront CDN.
Я потратил много времени на тестирование и пытался выяснить, почему Google не сканирует эти файлы и сообщает о состоянии «блокирования ресурса».
В настоящее время я обслуживаю эти файлы с нескольких имен хостов, таких как: cdn1.example.com, cdn2.example.com,…
cdn1, cdn2 и другие - это CNAME для имени дистрибутива облачного фронта.
Тест: я пытался использовать дистрибутив Cloudfront (без CNAME), но проблема сохраняется.
В настоящее время мой robots.txt выглядит так:
# 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: /
И примеры файлов, заблокированных на одной странице примера:
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
Я даже пытался разрешить все в robots.txt, но у меня всегда один и тот же результат.
Я также внимательно изучал настройки CloudFront в Amazon и не вижу ничего, что могло бы быть связано (я не использую и никогда не использовал опцию: «Ограничить доступ для просмотра (используйте подписанные URL-адреса или подписанные файлы cookie)».
Прямо сейчас я потратил много времени на изучение этого вопроса и у меня больше нет идей.
Может кто-нибудь придумать причину, по которой роботу Googlebot будет запрещено сканировать файлы, размещенные в Amazon CloudFront?
*
в конце URL-адреса никогда не нужно указывать «префикс»./test*
так же, как/test
.Ответы:
Таким образом, решение, по-видимому, заключается в том, что Amazon Cloudfront также оценивает мой
robots.txt
и каким-то образом использует правила синтаксиса от Google.Рабочая версия моей
robots.txt
следующая:Очень важно отметить, что это не выполняет те же функции, что и раньше. На самом деле я убрал все пустые строки, подстановочные знаки и директивы "allow". Это означает, что конечный результат не совпадает ... но я думаю, что это достаточно близко для меня. Например, он не исключает страницы тегов при передаче в строке запроса ...
Три важных замечания:
Если вы тестируете с этим, не забудьте аннулировать
robots.txt
в распределении облачного фронта для каждой итерации. Просто проверить, что вам обслуживают последнюю версию, недостаточно.Я нигде не смог найти определение
robot.txt
синтаксиса, понятного Amazon Cloudfront. Итак, это было методом проб и ошибок.Чтобы проверить результаты, воспользуйтесь инструментом «Получить и отобразить» веб-мастера Google и их дружественного для мобильных устройств тестера ( https://www.google.com/webmasters/tools/mobile-friendly/ ).
Я не понимаю, почему Cloudfront проверяет и оценивает мои
robots.txt
. Этот файл "сделка" со мной и сканерами, которые приходят на мой сайт. У Amazon нет бизнеса в середине. Возиться с моимrobots.txt
просто глупо.Мне никогда не приходило в голову, что облачный фронт может быть вторым, угадывая мой
robots.txt
синтаксис.источник
Создайте robots.txt в ведре.
Создайте еще один источник для вашего облачного фронта.
Установите приоритет вашего ведра выше, чем ваш сайт.
Сделайте недействительной robots.txt вашего сайта в Cloudfront.
После выполнения вышеупомянутого, Google будет читать сайты robots.txt при сканировании вашего сайта и будет видеть другой файл robots.txt при переходе по ссылкам с вашего cdn.
источник
Google не блокирует индексацию внешних ресурсов с помощью файла robots.txt в корне основного сайта. Используя поддомен, cdn или другой классифицируется как внешний домен, поэтому единственный способ заблокировать контент - использовать ответ заголовка для файла, обслуживаемого самой CDN, или использовать robots.txt в cdn или поддомене. ,
С помощью:
Следует блокировать только локальные образы, вам нужно будет сделать то же самое в CDN.
Скорее всего, это проблема ответа заголовка, и вы должны сделать 'CURL' для одного из файлов в CDN. Это должно выглядеть примерно так:
На что нужно обратить внимание:
источник
check the robots.txt on your CloudFront distribution
я тоже это сказал! Единственный способ заблокировать изображения, индексируемые в CDN, - это x-robots-tag и robots.txt в самой CDN, что уже упоминалось.Обнаружена проблема: CloudFront читает файл robots.txt и предотвращает обслуживание контента, но, по-моему, он анализирует, насколько он отличается от того, что должны делать роботы.
Например, следующий контент на robots.txt:
Disallow: */wp-contents/ Allow: */wp-contents/themes/
Когда робот Google получает его сам, он индексирует его; Когда CloudFront читает его, он не учитывает директиву «Разрешить» и запрещает обслуживать что-либо внутри
*/wp-contents/themes/
.Краткий ответ: проверьте robots.txt в вашем дистрибутиве CloudFront, это может быть проблемой. Сделайте недействительной и обновите ее исправленной версией, и она должна работать!
источник