Как экстренно запретить индексацию страниц, если нельзя менять meta robots (на любом движке!)

Получаю много вопросов к посту про алгоритм Google Fred. Главным образом – о том, как технически реализовать закрытие недостаточно качественных страниц.

Небольшая ремарка

Вообще-то самый правильный вопрос – не “как закрыть”, а “как понять, какие страницы достойные, а какие нет”.

Я уже начинаю привыкать к тому, что из любого моего исследования пытаются сделать простую инструкцию на все случаи жизни (еще пример).

Нагрянул Фред? Ну, закроем от Гугла страницы, которые не дают трафика, как Трудов пишет и всего-то делов.

На всякий случай ответственно заявляю: я такого никому не советовал. Наоборот, всегда нужно подходить к проблеме аккуратно, чтобы ее лечением не наделать еще больших неприятностей. О правильной тактике борьбы с Fred-ом тоже как-нибудь напишу. Но сегодня у нас уже почти пятница, поэтому разберем вопрос попроще.

Чем вообще можно закрыть страницы от индексации поисковыми системами?

Традиционно используются либо robots.txt, либо мета-тег noindex. За подробной матчастью отправляю к справке поисковых систем:

https://yandex.ru/support/webmaster/recommendations/indexing.xml

https://support.google.com/webmasters/topic/4598466

Нас же интересует один часто игнорируемый нюанс. Как минимум для Google мета-тег и директива в robots.txt неравнозначны. Robots.txt – это всего лишь рекомендация, не обязательная к выполнению.

Недостатки robots.txt

Вот цитата из официального руководства:

Изменяя файл robots.txt, не забывайте о связанных с этим методом рисках. Иногда для запрета индексирования определенных URL лучше применять другие методы.
(…)
Googlebot не будет напрямую индексировать содержимое, указанное в файле robots.txt, однако сможет найти эти страницы по ссылкам с других сайтов. Таким образом, URL, а также другие общедоступные сведения, например текст ссылок на сайт, могут появиться в результатах поиска Google. Чтобы полностью исключить появление URL в результатах поиска Google, используйте другие способы: парольную защиту файлов на сервере или метатеги с директивами по индексированию.

Robots.txt плох еще и тем, что в нем нельзя указать правило, аналогичное “noindex,follow” (не добавлять в поисковую базу документ, но переходить по ссылкам), что является, например, неплохим универсальным решением для страниц пагинации.

Meta robots – тоже не идеал

Вообще-то meta name robots – отличное решение. Недостаток только один. Иногда, на проектах с кривым движком или ленивым программистом, добиться установки мета-тега на жалкой сотне документов не так-то просто. Что делать, если запрет нужно поставить вот прямо сейчас (а лучше – вчера)?

Заголовок X-Robots-Tag – альтернатива перелопачиванию кода страниц

Есть еще один способ передать поисковым системам информацию, аналогичную той, что содержится в мета-теге robots. Это заголовок сервера X-Robots-Tag. С ним вообще забавная история. Почему-то считается, что умение работать с X-Robots-Tag – страшные мистические знания, доступные только супер-сеошникам. В то же время, описание заголовка спокойно лежит все в той же справке Google.

Да и вообще, ничего сложного в X-Robots-Tag нет. Единственное затруднение – в силу малой популярности, для управления им практически нет готовых инструментов. И совершенно напрасно. Ведь X-Robots-Tag объединяет достоинства robots.txt и мета-тега. Он универсален, гибок и управлять им можно без привлечения программиста (соблюдая, конечно же, осторожность).

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

Инструмент доступен по адресу: https://bez-bubna.com/free/htaccess.php (бесплатно, без регистрации).

На вход подается список url:

После нажатия кнопочки получаем это:

Нам остается скопировать первую часть в конец  .htaccess, выбрать один из вариантов второй части (или написать свой) и вставить в тот же файл. Потом обязательно перепроверяем, все ли хорошо работает, не поломался ли сайт от конфликта директив и установился ли заголовок на нужные страницы. Массово это можно сделать с помощью Screaming Frog (раздел Directives).

Ну а проверить конкретный url можно любым детектором заголовков сервера, хоть Вебмастером Яндекса.

В чем минусы?

Если запихнуть в .htaccess очень много страниц, это (теоретически) может сказаться на скорости работы сервера. Я протестировал сайт на 3500 url в .htacess и не заметил снижения скорости.

Первый запуск:

Второй (с разбухшим .htacсess):

Разницы практически нет. Некоторые показатели во втором случае даже чуть лучше (думаю, это погрешность измерений). То есть как минимум до 3500 можно не опасаться проблем со скоростью.

Также непонятна ситуация с поддержкой X-Robots-Tag Яндексом. В справке заголовок не упомянут. Есть сравнительно свежий официальный комментарий в клубе Яндекса:

Вроде бы должно работать, но при попытке удалить url, который я 5 минут назад проверил на ответ сервера в Вебмастере, получаю:

Изучу этот вопрос дополнительно.

В любом случае, для Google способ должен работать. Кстати, есть мнение, что запрет с помощью X-Robots-Tag еще и помогает экономить краулинговый бюджет (ведь роботу не надо скачивать страницу, чтобы добраться до мета-информации). Удачного использования!

16 комментариев

  1. Как-то раз потребовалось убрать из Google целый сайт (!). Причем для эффективности сразу пошел по нескольким направлениям – настройки сервера с блокировкой ботов, удаление через webmasters tools, robots.txt (а вдруг прорвется, хотя судя по логам – ни разу).
    Так вот – удалить что-либо из гугла оказалось адским трудом! Не удаляется и все. Причем сообщает, что “чет на страницу попасть не могу, не?”, “чет у вас каталог / и все лежащие ниже запрещены к индексации. Проверьте!” но даже трафик обрезало неделями. В итоге через примерно два с половиной месяца страниц в индексе поубавилось, но осталось еще море.

  2. За полтора месяца, как я поставил meta noindex для категорий – траф из гугла и яндекса на них не убавился!
    Из личного по поисковикам вообще: считаю что нужно делать, особенно на важных проектах, так, как давно известно что это работает. Во всех остальных случаях – скорей всего вы не получите того что хотели, или получите не полностью. Сам влетал, даже после подтверждений каких-то доводов платонами. Сделал вывод, что технические решения должны быть очень простыми и давно известными, иначе роботы надурят ожидания. Этот вывод как-то соотносится с X-robots для Яндекса)

  3. Про запрет индексирования страниц в Яндекс
    https://yadi.sk/i/sUt0w9a_3PYA76
    Одна из страниц, как раз запрещена таким методом X-Robots-Tag: noindex, follow

    Идеально подходит для фидов и файлов, когда нужно что бы робот ходил по данным страницам, но не индексировал.

    По поводу экономии краулингово бюджета сомневаюсь, нужно проверить это.
    Так же как и метатег

    По крайней мере Яндекс на моём сайте такие страницы периодически обходит.

  4. Здравствуйте, благодарю за очень полезную статью, но у меня есть вопрос…
    я уже длительное время не могу понять как мне убрать из выдачи ссылки содержащие в себе знак вопроса, что я уже только в роботс не пихаю, гугл нет-нет да что-то все равно закинет в выдачу (( в роботсе у меня следующие строки имеются:
    Disallow: /*?*
    Disallow: /*?
    Disallow: /*?a=
    Вопрос: как можно с помощью X-Robots-Tag задать диапазон страниц у которых необходимо выдавать нужный мне заголовок?

    • Стас, добиться удаления через robots.txt не получится (см. статью). По X-Robots-Tag сходу не подскажу, т.к. не решал такую задачу, тут лучше спросить серверного разработчика (.htaccess стоит трогать только когда на 100% уверен). Но вообще, раз дело касается url с простым шаблоном, то гораздо проще и безопаснее делать это на уровне движка сайта. Код достаточно простой – стандартно проверили вхождение знака вопроса, если он есть – выдаем запрет через noindex,follow (можно и обычным meta robots).

  5. Закрыть штатными средствами страницы от индексации в Google невозможно.
    Любая страница которая может быть просмотрена анонимным посетителем, будет скачана и Google не смотря на все запреты в robots.txt или meta noindex.

    robots.txt и мета noindex это принципиально разные вещи.

    robotx.txt это описание предпочтений вебмастера относительно того, что не стоит краулить боту. Подчеркиваю – краулить. То есть скачивать. Не индексировать не ранжировать, а именно краулить.
    Гарантировано игнорируется при формировании внешнего ссылочного профиля. Одной внешней ссылки достаточно чтобы бот проигнорировал страницу закрытую правилом в robots и показал ее в выдаче. Что отмечено и в официальной документации.

    noindex как часть мета тега так и как заголовок http ответа – это пояснение боту от вебмастера, что эта страница не желательна в поисковой выдаче. Подчеркиваю – страница будет проиндексирована, и может оказывать влияние на весь проект в целом, но она вероятнее всего будет исключена из выдачи.

    Проверяется все это на основе очень просто
    покупаем новый домен. Создаем три страницы с синтетическим контентом:
    A ссылается на B
    B ссылается на C
    страница B закрыта всеми вариантами noindex.

    Открываем логи веб сервера и просим бота проиндексировать страницу A. Наблюдаем как посетив страницу B бот посетит и страницу C, ссылка на которой содержится к якобы закрытой странице от индекса.

    Простое правило.
    Если что-то нужно закрыть от индексации ботом, это что-то не должно быть ему доступным для скачивания.

    • Спасибо за подробный интересный комментарий. Я пишу о запрете индексирования в соответствии со справкой Google. В то же время, конечно, путаницы, которая окружает термин “индексирование” предостаточно. Единой терминологии нет. Более того, нет даже принятого всеми достаточного критерия нахождения страницы в поиске (см. тут). А еще до кучи Bing у себя в консоли использует другую терминологию 🙂

      Проверяется все это на основе очень просто
      покупаем новый домен. Создаем три страницы с синтетическим контентом:
      A ссылается на B
      B ссылается на C
      страница B закрыта всеми вариантами noindex.

      Открываем логи веб сервера и просим бота проиндексировать страницу A. Наблюдаем как посетив страницу B бот посетит и страницу C, ссылка на которой содержится к якобы закрытой странице от индекса.

      Не совсем понял, что это доказывает. Noindex же не запрещает роботу переходить по ссылкам. Для этого есть nofollow. Вот если удастся поставить чистый эксперимент, который доказывает что Google игнорирует nofollow – это будет небольшая сенсация 🙂

      По поводу же ссылок с закрытых страниц – ничего странного, Яндекс например их запросто в панели у себя показывает.

      Простое правило.
      Если что-то нужно закрыть от индексации ботом, это что-то не должно быть ему доступным для скачивания

      Абсолютно согласен.

Оставить ответ