Google не сканує файли CDN


11

Я помітив, що Google Webmaster Tools повідомляє про багато заблокованих ресурсів на моєму веб-сайті. Зараз усі "заблоковані ресурси" - це .css, .js та зображення (.jpg, .png), які я обслуговую із Cloudfront CDN.

Я витратив багато часу на тестування і намагався з’ясувати, чому Google не сканує ці файли і повідомляє про стан "блоку ресурсів".

В даний час я обслуговую ці файли з кількох імен хостів, таких як: cdn1.example.com, cdn2.example.com,…

cdn1, cdn2 та інші - це ім'я CNAME для розповсюдження хмарного фронту.

Тест: я намагався безпосередньо використовувати розподіл хмарних переходів (без 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?


Ви вивчали заголовки відповідей HTTP цих "заблокованих ресурсів"? Яку точну помилку повідомляє GWT? Якщо їх заблокував robots.txt, він повинен повідомити про це.
MrWhite

Незначний коментар до вашого файлу robots.txt ... URL-адреси префіксів за замовчуванням відповідають, тому ніколи не потрібно мати *в кінці URL-адреси "префікс". /test*те саме, що /test.
MrWhite

Привіт, я не можу вивчити заголовки, тому що я не знаю, що отримує googlebot. Я просто отримую повідомлення: "Googlebot не зміг отримати всі ресурси для цієї сторінки. Ось список:", а потім список усіх файлів, розміщених у CDN (js, css та зображення) із "Причиною": "Заблоковано".
тонлот

Оскільки я прошу "взяти та відобразити", я також бачу, що у візуалізації відсутні стилі та зображення ....
tonelot

Також дякую за примітку до синтаксису robots.txt.
тонлот

Відповіді:


7

Отже, рішення виглядає в тому, що Amazon cloudfront також оцінює моє robots.txtі якось використовує різні правила синтаксису від google.

Робоча моя версія robots.txtнаступна:

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

Дуже важлива примітка, щоб сказати, що ця функція виконує не такі самі функції, як раніше. Насправді я вийняв усі порожні рядки, макіяжі та директиви "дозволити". Це означає, що кінцевий результат не той самий ... але я думаю, що для мене досить близький. Наприклад, він не виключає сторінки тегів при передачі в рядку запиту ...

Три важливі нотатки:

  1. Якщо ви тестуєте це, не забудьте визнати недійсним robots.txtу розповсюдженні хмарного фронту для кожної ітерації. Не достатньо лише перевірити, що вам подають останню версію.

  2. Я не міг ніде знайти визначення robot.txtсинтаксису, зрозумілого Amazon cloudfront. Отже, це був проб і помилки.

  3. Для тестування результатів використовуйте інструмент "Вибрати та візуалізувати" веб-майстра google та їх тестування для мобільних пристроїв ( https://www.google.com/webmasters/tools/mobile-friendly/ )

Я не розумію, чому Cloudfront перевіряє та оцінює моє robots.txt. Цей файл - це "угода" зі мною та сканерами, які заходять на мій сайт. Амазонка не має бізнесу в середині. Возитися з моїм robots.txtпросто глупо.

Мені ніколи не спадало на думку, що хмара може бути другим відгадуванням мого robots.txtсинтаксису.


2

Створіть robots.txt у відрі.

Створіть інше джерело для розповсюдження хмарних переходів

Встановіть пріоритет свого відра вище свого веб-сайту.

Недійсність robots.txt вашого сайту на Cloudfront.

Виконавши вищесказане, Google сканує сайти robots.txt під час сканування вашого сайту та зможе побачити різні robots.txt при переході посилань із вашого cdn.


1

Google не блокує індексацію зовнішніх ресурсів за допомогою використання robots.txt у корені головного сайту. Використання піддомену, cdn або іншого класується як зовнішній домен, для цього єдиним способом блокувати вміст є використання відповіді заголовка у файлі, що обслуговується самим CDN, або за допомогою robots.txt на cdn або sub домені .

Використання:

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

Якщо потрібно блокувати лише локальні зображення, вам потрібно буде зробити те ж саме на CDN.

Швидше за все, це проблема відповіді заголовка, і ви повинні зробити "CURL" на одному з файлів CDN. Це має виглядати приблизно так:

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

На що слід звернути увагу:

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

Привіт, дякую за вашу відповідь. Але моя проблема не в тому, як запобігти індексуванню зображень. Щоб уникнути плутанини, я вийняв це з robots.txt і результати однакові. Googlebot постійно скаржиться, що він заблокований у файлах, у яких розміщується хмара, і не знаю, чому. Ще ідеї? Дякую за увагу
yoru

Ви сумуєте за розумінням, я знаю, що ви не хочете, щоб його заблокували ... отже, чому я сказав внизу, щоб переконатися, що відповідь вашого заголовка НЕ ​​робить тег X-роботів, також ви говорите, що check the robots.txt on your CloudFront distributionя сказав це теж! Єдиний спосіб блокувати зображення, що індексуються на CDN, - це x-robots-tag та robots.txt на самому CDN, знову згаданому.
Саймон Хейтер

1

Виявив проблему: CloudFront зчитує robots.txt і перешкоджає подачі вмісту, але він аналізує, наскільки він відрізняється від роботи, напевно.

Наприклад, такий вміст на robots.txt:

Disallow: */wp-contents/ Allow: */wp-contents/themes/

Коли Googlebot отримує його сам, він індексує його; Коли CloudFront читає його, він не враховує директиву "Дозволити" і забороняє обслуговувати все, що знаходиться всередині */wp-contents/themes/.

Коротка відповідь: перевірте robots.txt на своєму розповсюдженні CloudFront, це може бути проблемою. Недійсний і оновити його з виправленою версією, і він повинен працювати!


Cloudfront ні "не читає" robots.txt, ні "враховує" його вміст, ані будь-яке "запобігання" чому-небудь. Пам’ятайте, що те, що ви отримуєте з Cloudfront, коли ви отримуєте об'єкт, нічого не говорить про те, що отримав би хтось із іншого місцеположення, якщо їхній край кеширувався раніше чи пізніше, ніж те, що зробили ваші. Також, мабуть, провідні макіяжі - це рецепт несподіваної поведінки, оскільки "стандарт" виключення роботів недостатньо стандартизований.
Майкл - sqlbot

"CloudFront читає robots.txt" - Це файл robots.txt, розміщений на самому CloudFront? "Провідна маска" також видається непотрібною, якщо URL-адреси є чимось подібним до вказаних у запитанні.
MrWhite

Привіт. Безумовно, облачна область читає мій robots.txt. А також точно не сприймає той самий синтаксис, що і Google. Я вже перевіряв, виймаючи robots.txt, і не бачив результатів, тому що я не вимагав і недійсний у cloudfront. Припускали, що це не потрібно, тому що мені подавали останню версію. Тестування займає тривалий час, оскільки кожна зміна вимагає недійсного запиту, який потрібно вічно завершити. я повернусь через кілька годин з робочою версією. Я не знаю, навіщо потрібна така «розумність». Але вона є, і я думаю, що не повинна. miguel
тонлот

Той самий robots.txt, який присутній у моєму апачі, - це один облачний фронт. Я визначив це емпірично.
snagnever
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.