robots.txt, noindex или canonical: что выбрать
Три инструмента, три разные задачи. Выберете не тот, и Google оставит в выдаче страницу, которую вы хотели убрать, или вообще не прочитает вашу инструкцию.
robots.txt нужен, чтобы управлять сканированием, noindex убирает страницу из результатов поиска, а rel=canonical выбирает один URL из группы дублей. Они решают разные задачи и мешают друг другу: страницу, закрытую в robots.txt, всё равно могут проиндексировать, а правило noindex на странице, которую нельзя просканировать, Google просто не увидит.
Чем отличаются robots.txt, noindex и canonical?
Каждый работает на своём этапе. robots.txt решает, может ли робот загрузить URL. noindex решает, может ли загруженная страница попасть в результаты. Canonical сообщает Google, какая из нескольких почти одинаковых страниц должна представлять всю группу. Вот как их описывает документация Google, если поставить рядом.
| Disallow в robots.txt | noindex | rel=canonical | |
|---|---|---|---|
| Что контролирует | Сканирование | Индексирование | Какой дубль представляет группу |
| Где задаётся | В файле robots.txt в корне сайта | Метатег robots или HTTP-заголовок X-Robots-Tag | Элемент link в head или HTTP-заголовок Link |
| Убирает URL из Google? | Нет. Закрытый URL могут проиндексировать, если на него ссылаются другие сайты | Да, как только Googlebot просканирует страницу и прочитает правило | Нет. Дубли объединяются, а не удаляются |
| Нужно ли сканировать страницу? | Нет | Да | Да |
| Насколько это строго? | Каждый робот сам решает, соблюдать ли правила | Google полностью удаляет страницу | Подсказка, а не правило |
Когда использовать robots.txt?
Когда проблема в нагрузке от сканирования. Во введении в robots.txt Google пишет, что файл используется в основном для того, чтобы сайт не перегружался запросами. Для веб-страниц он подходит в двух случаях: сервер не справляется с роботом Google или вы не хотите, чтобы сканировались неважные или похожие страницы. Кроме того, это задокументированный способ не допустить появления изображений, видео и аудио в Google Поиске.
Чем он не является, по словам Google, так это способом убрать веб-страницу из Google. Закрытую страницу всё равно могут проиндексировать, если на неё ссылаются другие сайты. URL и анкорный текст этих ссылок могут попасть в результаты, просто без описания. К тому же правила добровольные: Googlebot их соблюдает, другие роботы могут и не соблюдать. Проверьте, что на самом деле разрешает ваш файл, в нашем тестере robots.txt.
Когда использовать noindex?
Когда страница не должна появляться в Google Поиске. Добавьте <meta name="robots" content="noindex"> в head или отправляйте X-Robots-Tag: noindex в заголовке ответа, например для PDF. В документации Google о noindex сказано: как только Googlebot сканирует страницу и извлекает правило, Google полностью удаляет её из результатов, даже если на неё ссылаются другие сайты.
Подвох как раз в первом шаге. Чтобы увидеть метатеги и HTTP-заголовки, Google должен просканировать страницу. Если страница всё ещё в выдаче после добавления noindex, документация называет две вероятные причины: Google ещё не просканировал её заново или её блокирует robots.txt. Инструмент проверки URL в Search Console позволяет запросить повторное сканирование. Google также отмечает, что некоторые другие поисковые системы могут понимать noindex иначе.
Когда лучше выбрать тег canonical?
Когда один и тот же контент доступен по нескольким URL и вы хотите, чтобы все заслуги достались одному из них. На странице Google об объединении повторяющихся URL перечислены причины: выбрать, какой URL люди увидят в результатах, собрать сигналы вроде ссылок на одном предпочтительном URL, упростить отслеживание метрик и не тратить время сканирования на дубли.
Canonical ничего не скрывает. На странице о канонизации Google называет его подсказкой, а не правилом, и пишет, что каноническая страница сканируется регулярнее всего, а дубли реже. Результат поиска обычно ведёт на каноническую страницу, если только какой-то дубль не подходит пользователю лучше. Переадресации и rel=canonical считаются сильными сигналами, а включение в файл Sitemap слабым. Для файлов, которые не являются HTML, передавайте canonical в HTTP-заголовке Link. Что происходит, когда эти сигналы противоречат друг другу, разобрано в нашем руководстве о конфликтах тега canonical.
Можно ли использовать robots.txt и noindex вместе?
Не на одном URL, если цель в том, чтобы убрать страницу. Google пишет прямо: если страница заблокирована в robots.txt, робот никогда не увидит правило noindex, и страница может по-прежнему появляться в результатах. Поэтому для упрямо проиндексированного URL решение такое: убрать Disallow, дать Google просканировать страницу и позволить noindex сработать.
На странице Google о повторяющихся URL названы ещё три ошибки:
- Не используйте robots.txt для канонизации.
- Не используйте noindex, чтобы управлять выбором канонической страницы внутри одного сайта: так страница полностью блокируется в Поиске.
- Не используйте инструмент удаления URL для канонизации: он скрывает все версии URL.
Что же выбрать?
Отталкивайтесь от нужного результата, а не от знакомого инструмента.
- Сервер перегружен или роботы тратят время на неважные страницы: robots.txt.
- Страница не должна появляться в Google: noindex, сканирование при этом открыто. Для всего закрытого используйте защиту паролем, которую Google называет вторым вариантом.
- Один и тот же контент доступен по нескольким URL: rel=canonical на каждом дубле или переадресация, если дубль вообще не нужен.
- Изображения, видео или аудио, которые не должны попадать в Google Поиск: robots.txt.
Если вас беспокоят ИИ-роботы, в нашем руководстве robots.txt для ИИ-роботов есть готовые правила для каждого бота.