сейка.ru
§ 04.05 · On-page и техника

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

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

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

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

Crawl-delay задаёт задержку между запросами бота к серверу. Использовать только если ваш сервер не справляется с нагрузкой от индексации; в большинстве случаев не нужно.

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.

Бесплатный AI SEO анализ

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

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

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