Сейка AI
§ 04.05 · On-page и техника

Sitemap, robots.txt, canonical: трубопровод для бота

Три файла и один тег, которые управляют тем, что Яндекс видит и как. Сейка показывает рабочие конфигурации.

Эти три инструмента — основа технического SEO. Сейка разберёт, как их правильно настроить под Яндекс.

TL;DR

Sitemap, robots.txt и тег canonical — три механизма, через которые сайт общается с поисковыми ботами и которые управляют тем, что Яндекс видит на сайте и как это интерпретирует. Robots.txt говорит, что не обходить, плюс Clean-param для параметров; sitemap.xml — актуальный список всех canonical-URL, генерируемый автоматически; canonical — для дублей и самоориентации основных страниц. Яндекс уважает canonical, но не всегда, поэтому сигнал дублируют через Clean-param или noindex, а CSS и JS в robots.txt не закрывают.

Sitemap, robots.txt и тег <link rel="canonical"> — это три механизма, через которые сайт общается с поисковыми ботами. По отдельности они довольно простые, но в связке управляют тем, что Яндекс видит на вашем сайте и как именно интерпретирует. Ошибки в этих файлах часто оказываются фатальными: можно сделать идеальный SEO контент с потрясающим ранжирующим потенциалом — и не получить трафика, потому что один из этих файлов рубит индексацию ваших страниц.

robots.txt

Это текстовый файл в корне сайта, доступный по адресу https://example.ru/robots.txt. Он сообщает ботам поисковиков, какие URL им можно обходить, а какие нельзя.

Базовая структура простая.

User-agent: *
Disallow: /admin/
Disallow: /cart/
Disallow: /search?
Allow: /search?utm

Sitemap: https://example.ru/sitemap.xml

User-agent: * означает правила для всех ботов. User-agent: Yandex — правила только для Яндекса. Директива Disallow: запрещает обход, Allow: разрешает (более конкретные правила Allow переопределяют общие Disallow).

У Яндекса есть свои директивы, которых нет в стандарте Google. Из них актуальна только Clean-paramCrawl-delay и Host давно отключены.

Clean-param — уникальная директива Яндекса. Указывает параметры URL, которые нужно игнорировать при склейке дублей: Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term. Это эквивалент canonical, но работающий на уровне всего сайта одной директивой.

Crawl-delay задавала задержку между запросами бота к серверу. Устарела: Яндекс отключил её в 2018 году (как и Host) — скорость обхода теперь настраивается в Вебмастере, а Google её никогда не поддерживал. Сегодня её учитывает только Bing, так что для Рунета директива бесполезна.

Host — устаревшая директива, ранее указывавшая основной домен (с www или без). С 2018 года не нужна, Яндекс определяет основное зеркало через 301-редиректы и настройки Вебмастера.

Типичные ошибки в robots.txt, которые Сейка регулярно видит.

User-agent: *
Disallow: /

Эти три строки закрывают весь сайт от индексации полностью. Самая частая катастрофа — когда такой robots.txt случайно попадает на прод с тестового окружения. Регулярная проверка robots.txt в Вебмастере обязательна для любого сайта.

Использование звёздочек и $ — в Яндексе они работают по-другому, чем в Google, и лучше писать конкретные правила вместо паттернов с подстановками.

Осторожно

robots.txt не предотвращает индексацию URL, если на него где-то ссылаются с других сайтов. Бот не зайдёт на саму страницу, но может включить URL в индекс на основе входящих ссылок (как «известный URL, который мы не обходим, но знаем о его существовании»). Чтобы гарантированно закрыть страницу от индексации, используйте <meta name="robots" content="noindex"> на самой странице — это работает надёжнее.

Что закрывать в robots.txt. Корзина, личный кабинет, оформление заказа (/cart/, /account/, /checkout/). Внутренний поиск (/search?). Системные параметры (UTM, sort, filter), если на них нет canonical. Технические страницы (/admin/, /api/, /cgi-bin/).

Что НЕ закрывать. CSS-, JS-файлы и изображения — бот должен видеть полный рендер страницы, как видит пользователь. Закрытие CSS было частой исторической ошибкой; сейчас почти всегда вредит. Главные категории сайта, карточки товаров, основные статьи. И сам sitemap.xml — он наоборот указывается в robots.txt.

Sitemap.xml

Sitemap.xml — это XML-файл со списком всех URL сайта, которые вы хотите проиндексировать. Бот использует sitemap как «главный список» того, что вы считаете важным на сайте.

Базовая структура:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.ru/</loc>
    <lastmod>2026-05-22</lastmod>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.ru/gid/</loc>
    <lastmod>2026-05-22</lastmod>
    <priority>0.9</priority>
  </url>
</urlset>

Тег <loc> — URL страницы, обязательный. <lastmod> — дата последней модификации в формате ISO, необязательная, но рекомендуется. <priority> — относительный приоритет от 0 до 1, который и Яндекс, и Google в основном игнорируют. <changefreq> — частота обновлений, тоже игнорируется на практике.

Базовые правила sitemap. Один файл sitemap.xml вмещает до 50 000 URL и до 50 МБ размера. Если у вас больше — нужен sitemap-index с несколькими отдельными sitemap-файлами. В sitemap включайте только canonical-URL, не включайте дубли или страницы с canonical, указывающим на другие. HTTPS обязательно, если ваш сайт на HTTPS. Кодировка строго UTF-8.

Sitemap-index используется, когда сайт большой или у вас несколько типов контента.

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <sitemap>
    <loc>https://example.ru/sitemap-pages.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://example.ru/sitemap-products.xml</loc>
  </sitemap>
  <sitemap>
    <loc>https://example.ru/sitemap-blog.xml</loc>
  </sitemap>
</sitemapindex>

После создания sitemap.xml его нужно зарегистрировать. Загрузите файл на сайт по фиксированному адресу. Зайдите в Яндекс.Вебмастер в раздел «Индексирование → Файлы sitemap». Добавьте URL вашего sitemap. Дождитесь, пока Яндекс начнёт обходить — обычно первый обход в течение суток.

Для активно меняющихся сайтов sitemap должен генерироваться автоматически — раз в сутки или при изменении важных страниц. Не вручную, иначе он устаревает.

Сейка подсказывает

Старые удалённые URL не нужно сразу убирать из sitemap. Если страница удалена с сайта, оставьте её в sitemap на несколько недель — бот зайдёт по этому URL, увидит 404 или 410 (предпочтительнее), и удалит страницу из индекса. Так получается быстрее, чем «бот сам как-нибудь зайдёт» при следующем общем обходе.

rel=“canonical”

<link rel="canonical" href="..."> — это HTML-тег, размещаемый в <head> страницы. Он сообщает поисковику, какой URL считать «главным» (каноническим) для этой страницы. Все альтернативные URL с похожим содержимым будут склеены с этим главным.

Когда canonical нужен. При наличии дублей с UTM-метками: /page ← canonical ← /page?utm_source=facebook. Для параметров фильтрации и сортировки: /catalog/?sort=price → canonical на /catalog/. Для версий страницы для печати: /page/print/ → canonical на /page/. Для AMP и Турбо-страниц: /page/amp/ → canonical на /page/. Для сессионных параметров и временных идентификаторов: /page?sessionid=abc → canonical на /page/.

Самореферентный canonical — это хорошая практика для всех основных страниц. На каждой странице ставьте canonical, указывающий на саму себя:

<link rel="canonical" href="https://example.ru/gid/tehnika/sitemap-robots-canonical">

Это явный сигнал поисковику: «это главный URL данной страницы».

Когда canonical не нужен. Если страницы по сути разные — например, категория и её подкатегория с содержательно разным контентом — это не дубли, canonical между ними не нужен. Для пагинации (?page=2, ?page=3) каждая страница пагинации должна иметь canonical на саму себя, а не на первую страницу пагинации. Старая практика с rel=“next” и rel=“prev” уже не работает: Google её отменил, Яндекс никогда не использовал в полной мере.

Особенность Яндекса с canonical. Yandex уважает canonical, но не всегда. Если canonical-страница, на которую вы указываете, хуже по поведенческим и контенту, чем страница с canonical на неё, Яндекс может выбрать вариант с canonical как основной (то есть проигнорировать вашу указку и склеить в другую сторону). В Google canonical практически всегда соблюдается.

Осторожно

Самая дорогая ошибка с canonical, которую Сейка видит регулярно — массово указывать canonical с подкатегорий на главную категорию верхнего уровня. Бот склеит сотни страниц в одну, и весь длинный хвост исчезает из индекса. Восстановление потом занимает месяцы. Делайте canonical только когда действительно есть дубль; для подкатегорий и фильтров с уникальным контентом — самореферентный canonical.

Связка трёх инструментов

Они работают вместе, и понимать их связку важно.

Инструмент Что говорит боту
robots.txt Сюда не ходи / Этот параметр игнорируй
sitemap.xml Вот мои страницы, обходи эти
canonical Если есть похожие URL — главный вот этот

Логика взаимодействия. Бот заходит на сайт. Сначала читает robots.txt — узнаёт, что закрыто, какие параметры игнорировать через Clean-param. Потом читает sitemap.xml — узнаёт, что обходить в первую очередь. По мере обхода видит на каждой странице <link rel="canonical"> — узнаёт, какой URL считать основным для этой страницы. Применяет Clean-param из robots.txt для склейки URL с параметрами. Включает итоговый набор canonical-URL в индекс.

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

Что не делать

Не закрывайте страницу в robots.txt и одновременно не ставьте canonical на неё с других страниц. Бот не зайдёт на закрытую страницу и не прочитает canonical — сигнал не сработает.

Не указывайте в sitemap страницы с <meta name="robots" content="noindex">. Это противоречивые сигналы: «обходи эту страницу — но не индексируй».

Не делайте canonical с подкатегории на главную категорию. Потеря длинного хвоста гарантирована.

Не забывайте обновлять sitemap. Если бот ходит по нему, а новые страницы там не появляются, поисковик их видит дольше и иногда вообще пропускает.

Не оставляйте Disallow: / в robots.txt на production — это классическая катастрофа при выкатке из тестового окружения. Проверьте свой сайт прямо сейчас: откройте https://yourdomain.ru/robots.txt в браузере и убедитесь, что там не закрыт весь сайт.

Короче говоря

Robots.txt говорит, что не обходить, плюс Clean-param для обработки параметров. Sitemap.xml — актуальный список всех canonical-URL с lastmod, генерируемый автоматически. Canonical — для дублей и самоориентации основных страниц; не указывать на чужие категории. Яндекс уважает canonical, но не всегда — для гарантии дублируйте сигнал через Clean-param или noindex. CSS и JS не закрывать в robots.txt — бот должен видеть рендер страницы. Регистрировать sitemap в Вебмастере и обновлять автоматически.

Дальше — Core Web Vitals в Яндексе.

Источники

документация Яндекс.Вебмастера про robots.txt и sitemap, спецификация sitemaps.org, рекомендации Google Search Central про canonical.

Частые вопросы

Что такое robots.txt?

Это текстовый файл в корне сайта по адресу «https://example.ru/robots.txt», который сообщает поисковым ботам, какие URL им можно обходить, а какие нельзя. Директива «Disallow:» запрещает обход, «Allow:» разрешает.

Что такое Clean-param в robots.txt?

Clean-param — уникальная директива Яндекса, которая указывает параметры URL, игнорируемые при склейке дублей. Это эквивалент canonical, но работающий на уровне всего сайта одной директивой.

Сколько URL вмещает один файл sitemap.xml?

Один файл sitemap.xml вмещает до 50 000 URL и до 50 МБ размера. Если URL больше, нужен sitemap-index с несколькими отдельными sitemap-файлами.

Что такое rel=«canonical» и зачем он нужен?

Это HTML-тег в «head» страницы, который сообщает поисковику, какой URL считать главным для этой страницы. Он нужен при дублях с UTM-метками, параметрами фильтрации и сортировки, версиях для печати, AMP и Турбо-страницах, сессионных параметрах.

Как зарегистрировать sitemap в Яндексе?

Загрузите файл на сайт по фиксированному адресу, зайдите в Яндекс.Вебмастер в раздел «Индексирование → Файлы sitemap» и добавьте URL вашего sitemap. Первый обход обычно происходит в течение суток.

Термины из вики

AI SEO ассистент Сейка — бесплатно

Сделайте аудит сайта прямо сейчас

Спросите Сейку напрямую — конкретный ответ по вашему сайту обычно быстрее, чем читать всю серию.

Убедитесь, что вы согласны с нашимиУсловиями использования
и Политикой обработки персональных данных.