Как проверить canonical, robots.txt и sitemap.xml на сайте
Содержание 9 разделов
robots.txt, rel="canonical" и sitemap.xml часто проверяют как один набор «SEO-файлов», хотя они решают разные задачи. Первый управляет обходом URL, canonical помогает выбрать основную версию среди дублей, а sitemap сообщает о предпочтительных страницах. Ошибка появляется, когда один инструмент пытаются использовать вместо другого.
Что именно проверяет каждый сигнал
- robots.txt — разрешено ли конкретному роботу запрашивать URL.
- robots meta или X-Robots-Tag — можно ли включать загруженный документ в поиск.
- rel="canonical" — какой URL предпочтителен среди одинаковых или очень похожих страниц.
- sitemap.xml — какие канонические URL владелец сайта хочет сообщить поисковику.
Эти сигналы должны быть согласованы. Страница из sitemap, закрытая Disallow и одновременно указывающая canonical на другой URL, создаёт противоречие, а не «усиленную настройку».
Проверка robots.txt
Расположение и ответ сервера
Файл размещается в корне конкретного протокола и хоста: https://example.ru/robots.txt. Для поддомена нужен собственный файл. Проверьте конечный HTTP-код, отсутствие редиректов на HTML-страницу, тип содержимого и доступность без авторизации.
robots.txt — публичная инструкция для корректных роботов, а не средство защиты. Правила не мешают пользователю или недобросовестному клиенту открыть адрес. Закрытые данные защищают авторизацией и серверными правами доступа. Google отдельно предупреждает, что файл не обеспечивает конфиденциальность и не является надёжным способом скрыть страницу из результатов поиска [1].
Группы User-agent
Правила действуют внутри группы, начинающейся с User-agent. Google выбирает наиболее специфичную подходящую группу и игнорирует остальные [2]. Поэтому отдельная группа для Googlebot или Yandex не наследует автоматически правила из User-agent: *: нужные ограничения должны быть присутствовать в выбранной группе.
Минимальный нейтральный пример:
User-agent: *
Disallow: /search/
Disallow: /cart/
Sitemap: https://example.ru/sitemap.xml
Пути здесь условные. Запрещать /search/ или /cart/ стоит только после проверки фактических URL сайта.
Как работают Allow и Disallow
Распространённая ошибка — считать, что побеждает последняя строка в файле. Для Google применяется самое специфичное совпавшее правило по длине пути; при равной специфичности выбирается менее ограничивающее [2]. Яндекс также сортирует подходящие директивы по длине префикса и указывает, что порядок строк в исходном файле не определяет результат [3].
User-agent: *
Disallow: /private/
Allow: /private/public-guide.pdf
Здесь конкретный файл разрешён, потому что правило Allow длиннее общего запрета. Для каждого важного URL результат проверяют в инструментах обоих поисковиков, а не выводят только по внешнему виду файла.
Символы * и $
Звёздочка соответствует последовательности символов, а $ фиксирует конец адреса у роботов, которые поддерживают это расширение. Неэкранированный или слишком общий шаблон способен закрыть больше страниц, чем ожидалось. Яндекс предупреждает и об особом риске символа #: всё после него считается комментарием, поэтому строка Disallow: /# фактически превращается в Disallow: / [3].
Чего не должно быть в robots.txt
- секретных путей, которые рассчитывают «спрятать» от пользователей;
- запрета CSS и JavaScript, необходимых для понимания страницы;
- массового запрета параметров без проверки полезных фильтров;
- правил, противоречащих задаче прочитать
noindexна странице; - устаревших адресов sitemap после миграции.
Проверка rel="canonical"
Где искать canonical
Для HTML canonical обычно находится в <head>:
<link rel="canonical" href="https://example.ru/catalog/item/">
Для не-HTML документов canonical может передаваться в HTTP-заголовке Link. Проверяйте исходный ответ сервера, а не только DOM в инструментах разработчика: JavaScript может добавить или заменить элемент после загрузки.
Критерии корректного canonical
- на странице присутствует один однозначный canonical;
- используется абсолютный URL с правильным протоколом и доменом;
- целевой адрес отвечает 200, доступен роботу и не перенаправляет;
- целевая страница не закрыта
noindex; - содержимое исходной и канонической страниц одинаково или очень близко;
- нет цепочки A → B → C;
- внутренние ссылки и sitemap используют тот же основной URL.
Google рассматривает редирект и rel="canonical" как сильные сигналы, а присутствие в sitemap — как более слабый. Сигналы можно усиливать согласованностью, но поисковик всё равно может выбрать другой canonical [4]. Яндекс также описывает canonical как рекомендацию и перечисляет случаи, когда она не учитывается: заметно отличающееся содержимое, недоступная цель, несколько указаний или цепочка [5].
Canonical не заменяет редирект и noindex
Если старый URL больше не нужен человеку, постоянный редирект на точный новый эквивалент обычно яснее. Если самостоятельную страницу нужно исключить из Google, используют noindex, оставляя её доступной для обхода [6]. Canonical нужен для объединения одинаковых или очень похожих версий, а не для скрытия произвольной страницы.
Проверка sitemap.xml
Формат и состав
В sitemap включают полные абсолютные URL, которые должны участвовать в поиске как канонические. Один файл ограничен 50 МБ без сжатия или 50 000 URL; более крупный набор делят и объединяют индексом sitemap [7]. XML должен быть корректным и сохранён в UTF-8.
Для каждого URL проверьте:
- код 200 без цепочки редиректов;
- разрешение обхода;
- отсутствие
noindex; - canonical на этот же URL;
- наличие содержательной страницы, а не пустого результата;
- единый протокол, домен, регистр и формат слеша.
Как использовать lastmod
lastmod должен отражать последнюю существенную правку основного содержимого, структурированных данных или значимых ссылок. Google сообщает, что использует этот сигнал, если дата последовательно точна и проверяема; изменение года в подвале не считается существенным обновлением [7]. Генератор, который ежедневно ставит текущую дату всем URL, обесценивает поле.
Что не даёт sitemap
Отправка карты — только подсказка и не гарантирует, что Google скачает файл, обойдёт каждый URL или включит его в индекс [7]. Sitemap не исправляет 404, дубли, слабое содержимое и отсутствие внутренних ссылок. Для Яндекса карту также нужно добавить в Вебмастер и проверять ошибки обработки [8].
Проверка согласованности трёх сигналов
Удобно построить таблицу:
| Сценарий | robots.txt | canonical | sitemap |
|---|---|---|---|
| Основная индексируемая страница | доступна | на себя | включена |
| Дубль, который остаётся доступным | доступен | на основную | не включён |
| Старый URL после переезда | доступен для получения редиректа | не требуется | не включён |
| Служебное бесконечное пространство URL | обход ограничен после проверки | не основной инструмент | не включено |
Это базовые сценарии, а не правило для любого сайта. Например, чтобы Google увидел noindex, URL нельзя одновременно закрывать от обхода [6].
Практический порядок аудита
- Скачать текущие
robots.txtи все sitemap по каждому хосту. - Выбрать набор URL: главная, категория, карточка, услуга, фильтр, пагинация, служебная и удалённая страница.
- Проверить HTTP-коды и редиректы для обычного клиента, Googlebot и Yandex.
- Для каждого URL рассчитать итоговое правило
Allow/Disallow. - Извлечь canonical из исходного HTML и заголовков.
- Проверить целевой canonical как отдельную страницу.
- Сверить URL с sitemap и точностью
lastmod. - Сравнить объявленный canonical с выбранным поисковиками.
- Исправить генератор или шаблон, а не только отдельные файлы, если ошибка массовая.
- После публикации повторить автоматическую проверку и отправить обновлённые sitemap в панели вебмастеров.
Частые ошибки
Disallow: /остаётся после переноса тестовой версии на боевой домен.- Отдельная группа робота перекрывает ожидания от
User-agent: *. - Порядок строк ошибочно считают важнее длины совпавшего пути.
- Canonical ведёт на редирект, 404, закрытую или существенно другую страницу.
- В sitemap одновременно находятся HTTP и HTTPS, www и без www.
- Карта содержит URL с параметрами и canonical на чистую версию.
lastmodобновляется каждый день без изменения страницы.robots.txtиспользуют как способ защитить личные или служебные данные.
Когда проверка завершена
Результат можно считать корректным, когда для каждой важной группы URL понятна цель, правила дают одинаковый ожидаемый ответ в тестерах Google и Яндекса, canonical ведёт на доступный эквивалент, а sitemap содержит только выбранные канонические страницы. После этого отслеживают не только ошибки файлов, но и реальные статусы URL в панелях поисковых систем.
Источники
[1] Google Search Central — Introduction to robots.txt — https://developers.google.com/search/docs/crawling-indexing/robots/intro
[2] Google Crawling Infrastructure — How Google interprets the robots.txt specification — https://developers.google.com/crawling/docs/robots-txt/robots-txt-spec
[3] Яндекс Вебмастер — Директивы Disallow и Allow — https://yandex.ru/support/webmaster/ru/robot-workings/allow-disallow
[4] Google Search Central — How to specify a canonical URL — https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
[5] Яндекс Вебмастер — Канонический адрес страницы — https://yandex.ru/support/webmaster/ru/robot-workings/canonical
[6] Google Search Central — Block Search indexing with noindex — https://developers.google.com/search/docs/crawling-indexing/block-indexing
[7] Google Search Central — Build and submit a sitemap — https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap
[8] Яндекс Вебмастер — Использование файла Sitemap — https://yandex.ru/support/webmaster/ru/controlling-robot/sitemap