Эти три инструмента — основа технического 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.