Общие правила в robots.txt не распознаются Googlebot

Уважаемая команда Discourse,

прежде всего: мы хотим выразить вам признательность за ваш дух и упорство в создании и поддержке Discourse. Для нас и наших участников сообщества всегда приятно пользоваться этой платформой.

Мы собрали несколько небольших замечаний, сделанных сегодня, и надеемся, что они окажутся полезными. С другой стороны, мы также будем рады услышать ваше мнение о любых возможных недопониманиях с нашей стороны.

С наилучшими пожеланиями,
Андреас.


Введение

При исследовании поведения нашего размещённого экземпляра Discourse по адресу https://community.crate.io/ в отношении его файла определения robots.txt [1], мы обнаружили, что Googlebot может не соблюдать заданные настройки так, как предполагалось.

Оценка

Давайте проверим это на примере robots.txt на Meta [2], используя URL моего профиля https://meta.discourse.org/u/amotl/.

Разницу можно быстро заметить, сравнив результаты, полученные с помощью бесплатного валидатора robots.txt:


Проверить с помощью Googlebot


Проверить с помощью MSNBot

Исследование

По этой теме мы считаем, что уже нашли ответ:

Размышления

Таким образом, мы склонны полагать, что Googlebot в настоящее время полностью игнорирует правила, определённые в разделе User-agent: * [3], и только соблюдает правила в разделе User-agent: Googlebot [4].


  1. https://community.crate.io/robots.txt ↩︎

  2. https://meta.discourse.org/robots.txt ↩︎

  3. robots.txt, раздел User-agent: *

    User-agent: *
    Disallow: /admin/
    Disallow: /auth/
    Disallow: /assets/browser-update*.js
    Disallow: /email/
    Disallow: /session
    Disallow: /user-api-key
    Disallow: /*?api_key*
    Disallow: /*?*api_key*
    Disallow: /badges
    Disallow: /u
    Disallow: /my
    Disallow: /search
    Disallow: /tag
    Disallow: /g
    Disallow: /t/*/*.rss
    Disallow: /c/*.rss
    
    ↩︎
  4. robots.txt, раздел User-agent: Googlebot

    User-agent: Googlebot
    Disallow: /auth/
    Disallow: /assets/browser-update*.js
    Disallow: /email/
    Disallow: /session
    Disallow: /*?api_key*
    Disallow: /*?*api_key*
    
    ↩︎

Если я правильно понял, ответ не такой простой. Если один пользователь отправил ссылку через Gmail, Googlebot не соблюдает robots.txt. То же самое происходит, если ссылка где-то размещена (обратные ссылки) и для Googlebot она выглядит как обычная повседневная ссылка.

Ещё раз: robots.txt — это всего лишь запрос.

Кроме того, многие боты идентифицируют себя как Googlebot, и истинную картину можно установить только по IP-адресу.

Это верно, и сделано так намеренно.

Следовательно, для страниц, которые действительно не должны индексироваться, Googlebot получает дополнительный HTTP-заголовок X-Robots-Tag: noindex. См.:


Для ваших собственных доменов вы можете использовать Google Search Console → Проверить URL

Затем попробуйте добавить URL профиля пользователя для индексации, например https://www.example.com/u/jacob

Уважаемый Айке,

Подтверждаю.

$ http https://meta.discourse.org/u/amotl --print hH | grep -i robot
X-Robots-Tag: noindex

Большое спасибо за ваш быстрый ответ и разъяснение, а также за ссылку на соответствующий патч.

С уважением,
Андреас.

Я перенёс это в Support, спасибо за ваш восхитительно составленный отчёт об ошибке.

Нам потребовалось много времени, чтобы тщательно настроить наши правила, чтобы угодить Google. Тег x-robots-tag с параметром noindex поддерживается неравномерно, но это отраслевой стандарт. Проблема с простым запретом индексации заключалась в том, что по каким-то причинам при определённых условиях страницы могли попасть в индекс Google, а затем их не было возможности легко удалить, так как индексация была запрещена. Немного проблема курицы и яйца.

Уважаемый Сэм,

большое спасибо за то, что поделились дополнительными деталями по этому вопросу. Как всегда, я поражен тем, с каким энтузиазмом вы вкладываетесь в каждую мелочь Discourse.

Признаюсь, я не знал об этом до сих пор. Ещё раз спасибо!

image

Отлично. Спасибо. Если это теперь стало широко принятым стандартом, есть ли надежда, что некоторые бесплатные валидаторы robots.txt тоже начнут в будущем учитывать это?

Вам известно о каких-либо инструментах, которые уже сегодня, помимо чтения файла robots.txt, выполняют дополнительные проверки заголовков, как это делает функция Inspect URL в Google Search Console? Это, вероятно, помогло бы людям избежать той же путаницы, с которой столкнулись мы.

С уважением,
Андреас.