
Один неверный символ в robots.txt – и поисковик перестаёт видеть половину вашего сайта. Именно такую ситуацию я разбирал на проекте, где владелец случайно заблокировал директорию с каталогом товаров. Трафик просел на треть за две недели, а причину нашли только через месяц.
Robots.txt и sitemap.xml – два файла, от которых во многом зависит, увидят ли Google и Яндекс ваши страницы. Настроить их несложно, но ошибки обходятся дорого. Ниже – пошаговое руководство: от синтаксиса до проверки, с реальными примерами и шаблонами, которые вы смодете адаптировать под свой проект.
Привет! Я Пётр Гришечкин, эксперт в области SEO. Последние 15 лет я проектирую системы кратного роста трафика для крупнейших сайтов. И последнее время пишу всякие околоSEO статьи – https://t.me/seo_and_sem
Robots.txt: что это и зачем нужен

Robots.txt – это простой текстовый файл, который лежит в корне сайта. Его задача – давать инструкции поисковым роботам (Googlebot, YandexBot и другим): какие разделы сканировать, а какие обходить стороной.
Зачем он нужен:
Экономия краулингового бюджета. Робот не тратит ресурсы на служебные страницы типа админки, корзины и т.д.
Блокировка дублей. Если у вас есть версии страниц с параметрами фильтров, их лучше закрыть от сканирования.
Защита от перегрузки сервера. Особенно актуально для слабых серверов и проектов с большим потоком трафика, когда робот начинает обходить тысячи URL за раз.
Важный момент: robots.txt не скрывает контент от индексации полностью. Если на заблокированную страницу ведут внешние ссылки, поисковик может добавить её в индекс – просто с пометкой "пользователь предпочел скрыть информацию со страницы". Для полной блокировки используйте мета-тег noindex или парольную защиту.
Синтаксис robots.txt
Файл строится на нескольких ключевых директивах. Разберём каждую.
User-agent
Указывает, для какого робота предназначены правила.
User-agent: *– правила для всех роботов.User-agent: Googlebot– только для Google.User-agent: YandexBot– только для Яндекса.
Disallow
Запрещает сканирование указанного пути.
Disallow: /admin/– блокирует всю директорию admin и всё внутри неё.Disallow: /search– блокирует любой URL, начинающийся с /search.Disallow:(пустое значение) – ничего не запрещает.
Обратите внимание: слэш / в конце пути означает директорию целиком. Без слэша блокируется любой URL, начинающийся с указанной строки.
Allow
Разрешает сканирование внутри заблокированной директории. Полезно для исключений.
User-agent: * Disallow: /catalog/ Allow: /catalog/main-page/
Sitemap
Указывает роботу путь к карте сайта. Размещается отдельной строкой вне блоков User-agent.
Пример базового robots.txt
User-agent: * Disallow: /admin/ Disallow: /cart/ Disallow: /search? Disallow: /*?sort= Disallow: /*?filter= Allow: / Sitemap: https://site.ru/sitemap.xml
Этот файл закрывает админку, корзину, страницы поиска и параметры сортировки/фильтрации. Всё остальное – открыто.
Надо ли указывать Host в robots.txt
Яндекс поддерживает директиву Host, которую Google игнорирует. Она указывает основное зеркало сайта:
User-agent: YandexBot Disallow: /admin/ Host: https://site.ru
По моему опыту, в 2026 году Host всё ещё обрабатывается Яндексом, хотя основное зеркало лучше дополнительно указать в Яндекс.Вебмастере.
Вот краткая сравнительная таблица поддержки директив:
Директива | Яндекс | |
|---|---|---|
User-agent | ✅ | ✅ |
Disallow | ✅ | ✅ |
Allow | ✅ | ✅ |
Sitemap | ✅ | ✅ |
Host | ❌ (игнорирует) | ✅ |
Crawl-delay | ❌ | ✅ |
Clean-param | ❌ | ✅ |
Как создать и разместить robots.txt

Шаг 1. Создайте файл
Откройте любой текстовый редактор (Notepad++, VS Code, даже стандартный Блокнот). Напишите директивы. Сохраните файл с именем robots.txt – строго в нижнем регистре, без пробелов, расширение именно .txt.
Шаг 2. Загрузите в корень сайта
Файл должен быть доступен по адресу https://ваш-сайт.ru/robots.txt. Не в подпапке, не в /assets/. Только корень.
Если вы работаете с CMS:
WordPress – файл генерируется автоматически, но его можно переопределить через плагин Yoast SEO или Rank Math, либо загрузить вручную через FTP.
Bitrix – файл лежит в корне, редактируется через файловый менеджер в админке.
Tilda, Wix – настраивается в панели управления сайтом, прямого доступа к файлу может не быть.
Шаг 3. Проверьте доступность
Откройте в браузере https://ваш-сайт.ru/robots.txt. Вы должны увидеть содержимое файла в виде текста. Если видите ошибку 404 – файл не на месте. Если 500 – проблема с сервером.
Шаг 4. Протестируйте в поисковых консолях
Google Search Console → раздел «Настройки» → «Сканирование» → можно увидеть, как Google интерпретирует файл.
Яндекс.Вебмастер → «Инструменты» → «Анализ robots.txt» → вставляете содержимое и проверяете конкретные URL.
Ошибки в синтаксисе роботы обрабатывают по-разному: одни строки просто игнорируются, другие могут привести к непредсказуемому поведению. Поэтому проверка – не формальность, а обязательный шаг.
Sitemap.xml: зачем нужна карта сайта
Если robots.txt говорит роботу, куда не ходить, то sitemap.xml (карта сайта) показывает, куда ходить в первую очередь.
Sitemap.xml – это XML-файл со списком всех важных URL сайта. Он помогает поисковикам:
Быстрее обнаруживать новые страницы.
Понимать структуру сайта.
Расставлять приоритеты сканирования.
Карта сайта особенно полезна, когда:
У вас больше нескольких сотен страниц.
Контент часто обновляется (интернет-магазин, новостной сайт, блог).
Есть страницы без внутренних ссылок (URL–сироты).
Сайт молодой и у него мало внешних ссылок.
Структура sitemap.xml
Каждый URL описывается внутри тега <url> с набором параметров:
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://site.ru/</loc> <lastmod>2026-01-15</lastmod> <changefreq>daily</changefreq> <priority>1.0</priority> </url> <url> <loc>https://site.ru/catalog/</loc> <lastmod>2026-01-14</lastmod> <changefreq>weekly</changefreq> <priority>0.8</priority> </url> </urlset>
Расшифровка тегов:
loc – полный URL страницы. Обязательный тег.
lastmod – дата последнего изменения. Google использует этот тег и рекомендует указывать реальную дату, а не текущую.
changefreq – как часто меняется страница (daily, weekly, monthly). На практике Google заявляет, что игнорирует этот тег, но Яндекс его учитывает.
priority – приоритет от 0.0 до 1.0 относительно других страниц сайта. Не влияет на позиции, но подсказывает роботу, что сканировать первым.
Ограничения
Один файл sitemap – не более 50 000 URL и не более 50 МБ в несжатом виде.
Если URL больше – используйте индексный файл sitemap (sitemap-index), который ссылается на несколько карт:
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <sitemap> <loc>https://site.ru/sitemap-pages.xml</loc> <lastmod>2026-01-15</lastmod> </sitemap> <sitemap> <loc>https://site.ru/sitemap-products.xml</loc> <lastmod>2026-01-15</lastmod> </sitemap> </sitemapindex>
Как создать sitemap.xml

Есть три подхода. Выбирайте тот, который подходит вашему стеку.
Вариант 1. Через CMS или плагин
Самый простой путь для большинства сайтов.
WordPress – плагины Yoast SEO, Rank Math или All in One SEO генерируют карту автоматически. Обычно она доступна по адресу
/sitemap_index.xml.Bitrix – встроенный модуль генерации sitemap в разделе «Маркетинг» → «Поисковая оптимизация».
OpenCart, Joomla, Drupal – аналогичные модули/расширения.
Плюс: автоматическое обновление при добавлении контента. Минус: иногда плагины включают в карту ненужные URL (страницы тегов, авторские архивы), и это нужно настраивать вручную.
Вариант 2. Онлайн-генераторы
Для небольших сайтов (до нескольких сотен страниц) подойдут сервисы вроде xml-sitemaps.com (не реклама, просто сервис правда хороший). Вводите адрес, генератор обходит сайт и создаёт файл. Скачиваете и загружаете в корень.
Минус: карта не обновляется автоматически. Придётся перегенерировать вручную при каждом значимом изменении структуры.
Вариант 3. Программная генерация
Для динамических сайтов и SPA (Single Page Applications – одностраничные приложения, где контент подгружается через JavaScript) – формируйте sitemap скриптом на стороне сервера. Это особенно важно для проектов на React, Next.js, Nuxt.js.
В Next.js, например, можно использовать пакет next-sitemap, который при каждой сборке генерирует актуальную карту на основе маршрутов приложения.
После создания – размещайте файл по адресу https://ваш-сайт.ru/sitemap.xml или в любом другом месте, но тогда явно укажите путь в robots.txt.
Интеграция robots.txt и sitemap: связываем всё вместе
Два файла работают в связке. Вот что нужно сделать, чтобы поисковики получили полную картину.
1. Укажите sitemap в robots.txt
Добавьте строку в конец файла:
Sitemap: https://site.ru/sitemap.xml
Если у вас несколько карт:
Sitemap: https://site.ru/sitemap-pages.xml Sitemap: https://site.ru/sitemap-products.xml
Это позволяет роботам находить карту сайта даже без захода в поисковые консоли.
2. Загрузите sitemap в Google Search Console
Зайдите в Google Search Console → раздел «Файлы Sitemap» → вставьте URL карты → нажмите «Отправить». Через некоторое время вы увидите статус: сколько URL обнаружено и сколько проиндексировано.
3. Загрузите sitemap в Яндекс.Вебмастер
Яндекс.Вебмастер → «Индексирование» → «Файлы Sitemap» → добавьте URL. Яндекс покажет количество обработанных URL и ошибки, если они есть.
4. Убедитесь, что URL в sitemap не заблокированы в robots.txt
Это классическая ошибка: вы добавляете страницу в карту, но одновременно закрываете её через Disallow. Робот видит противоречие. Google в таком случае может попытаться проиндексировать страницу, а может и не пытаться – поведение непредсказуемо.
Правило: каждый URL в sitemap должен быть разрешён для сканирования в robots.txt и отдавать HTTP-код 200.
Sitemap для изображений, видео и новостей

Базовая карта сайта покрывает HTML-страницы. Но если ваш контент включает медиафайлы, имеет смысл расширить sitemap.
Sitemap для изображений
Используется пространство имён image:
<url> <loc>https://site.ru/article/</loc> <image:image> <image:loc>https://site.ru/images/photo.jpg</image:loc> <image:title>Описание изображения</image:title> </image:image> </url>
Это помогает Google Images и Яндекс.Картинкам находить и индексировать ваши иллюстрации. Особенно полезно для интернет-магазинов с уникальными фотографиями товаров и портфолио.
Sitemap для видео
Пространство имён video:
<url> <loc>https://site.ru/video-page/</loc> <video:video> <video:thumbnail_loc>https://site.ru/thumb.jpg</video:thumbnail\\_loc> <video:title>Название видео</video:title> <video:description>Краткое описание</video:description> </video:video> </url>
Если у вас есть обучающие ролики или видеообзоры – такая карта увеличивает шансы попасть в карусель видео в выдаче.
Sitemap для новостей
Для новостных сайтов, одобренных в Google News:
<url> <loc>https://site.ru/news/article-123/</loc> <news:news> <news:publication> <news:name>Название издания</news:name> <news:language>ru</news:language> </news:publication> <news:publication_date>2026-01-15T10:00:00+03:00</news:publication_date> <news:title>Заголовок новости</news:title> </news:news> </url>
Новостная карта включает только статьи за последние 48 часов. Обновляйте её автоматически.
JavaScript-сайты: особенности настройки
Одностраничные приложения на React, Vue, Angular создают особую головную боль для индексации. Робот запрашивает URL, получает пустой HTML с подключением скрипта и не видит контента.
Что делать
Используйте серверный рендеринг (SSR) или статическую генерацию (SSG). Next.js, Nuxt.js, Gatsby – эти фреймворки отдают готовый HTML, который роботы могут прочитать. Подробнее описал в статье "Как настроить Server Side Rendering для индексации SPA приложений поисковиками"
Не блокируйте JS и CSS в robots.txt. Это частая ошибка. Если Googlebot не может загрузить скрипт – он не сможет отрендерить страницу.
# ТАК ДЕЛАТЬ НЕ НАДО: User-agent: * Disallow: /static/js/ Disallow: /static/css/
Проверьте рендеринг через URL Inspection в Google Search Console. Инструмент показывает, как робот «видит» вашу страницу. Если контент не отображается – проблема с рендерингом.
Генерируйте sitemap на этапе сборки. Для SPA карта сайта – единственный надёжный способ сообщить поисковику о всех маршрутах.
В моей практике переход проекта с клиентского рендеринга на SSR через Next.js привёл к тому, что количество проиндексированных страниц выросло с нескольких десятков до нескольких сотен за 2–4 недели. Карта сайта при этом обновлялась автоматически при каждом деплое.
Автоматизация обновления sitemap через API

Если контент на сайте меняется часто (десятки новых страниц в день), ручное обновление карты неэффективно.
Google: Ping-запрос
Самый простой способ – отправить GET-запрос:
https://www.google.com/ping?sitemap=https://site.ru/sitemap.xml
Это можно делать из скрипта после публикации нового контента.
Google Search Console API
Для более глубокой интеграции используйте Search Console API. Он позволяет программно отправлять sitemap, проверять статус индексации и получать отчёты об ошибках. Документация доступна на developers.google.com.
Яндекс.Вебмастер API
Яндекс также предоставляет API для управления сайтом. Через него можно добавлять и удалять sitemap, проверять статус обхода.
Автоматизация особенно полезна для интернет-магазинов, маркетплейсов и новостных площадок, где каждый день появляются десятки и сотни новых URL.
Robots.txt и скорость загрузки: неочевидная связь
Это нюанс, который редко упоминают. Robots.txt может косвенно влиять на метрики Core Web Vitals (основные показатели производительности страницы: LCP, CLS, FID/INP).
Как это работает:
Если вы не блокируете тяжёлые ресурсы от сканирования – робот тратит краулинговый бюджет на загрузку файлов, которые не несут SEO-ценности.
С другой стороны, блокировка CSS и JS ломает рендеринг для Googlebot – и он не может оценить реальное содержимое страницы.
Баланс: закрывайте от сканирования то, что не нужно для отображения контента (логи, внутренние API-эндпоинты, ресурсы сторонних сервисов). Но никогда не блокируйте стили и скрипты, от которых зависит вид страницы.
Проверка и распространённые ошибки robots.txt

Ниже – чеклист проблем, которые я встречаю чаще всего при аудитах.
Ошибки, которые ломают индексацию
Файл robots.txt отсутствует. Робот считает, что всё разрешено. Это не катастрофа, но вы теряете контроль над сканированием.
Disallow: / – блокирует весь сайт целиком. Одна строка – и вы исчезаете из поиска. Проверяйте файл дважды, если вносите правки.
Блокировка CSS и JS. Googlebot не может отрендерить страницу и видит пустой шаблон. Результат – страницы либо не индексируются, либо индексируются некорректно.
URL в sitemap заблокированы в robots.txt. Противоречивые инструкции путают робота.
Файл доступен по HTTP, но сайт на HTTPS. Роботы проверяют robots.txt именно на том протоколе, по которому обращаются к сайту.
Неправильная кодировка. Файл должен быть в UTF-8. Другие кодировки могут привести к некорректному чтению директив.
Чеклист еженедельной проверки
[ ] Откройте
https://ваш-сайт.ru/robots.txtв браузере – файл доступен?[ ] В Google Search Console: раздел «Покрытие» – нет ли роста ошибок индексации?
[ ] В Яндекс.Вебмастере: «Индексирование» → «Статистика обхода» – нет ли аномалий?
[ ] Проверьте, не добавились ли в sitemap страницы с кодом 404 или 301.
[ ] Убедитесь, что новые разделы сайта не попали случайно под Disallow.
Проверка занимает 5–10 минут. Но она спасает от ситуаций, когда просадка трафика обнаруживается только через месяц, когда всё уже успело «просесть» в выдаче.
Кейс из практики: как настройка файлов повлияла на индексацию
На одном из проектов – интернет-магазин с каталогом примерно на 30 000 товаров – в индексе Google было менее 40% страниц. Причины обнаружились при аудите:
В robots.txt были заблокированы параметры фильтрации, но директива была написана слишком широко и зацепила часть вариантов товарных страниц.
Sitemap генерировался плагином, который включал страницы тегов, авторские архивы и пагинацию – всего около 120 000 URL. При этом реально нужных страниц было 35 000.
В карте были URL с кодами 301 и 404.
Что было сделано:
Переписан robots.txt с точечными правилами блокировки параметров.
Настроен плагин для генерации «чистой» карты – только товары, категории и информационные страницы.
Удалены из sitemap все URL с редиректами и ошибками.
Карта загружена в обе консоли.
Результат: за 3–5 недель количество проиндексированных страниц выросло примерно на 30%. Органический трафик начал восстанавливаться на третьей неделе.
Главный вывод: дело не в каком-то одном «волшебном» действии, а в согласованности файлов между собой и с реальной структурой сайта.
Итоговый шаблон robots.txt

Для большинства сайтов на CMS подойдёт такая конфигурация. Адаптируйте под свои URL:
User-agent: * Disallow: /admin/ Disallow: /wp-admin/ Disallow: /cart/ Disallow: /checkout/ Disallow: /search Disallow: /*?sort= Disallow: /*?filter= Disallow: /*?utm_ Allow: /wp-admin/admin-ajax.php User-agent: YandexBot Disallow: /admin/ Disallow: /cart/ Disallow: /checkout/ Disallow: /search Host: https://site.ru Sitemap: https://site.ru/sitemap.xml
Замените домен, уберите лишнее, добавьте свои закрытые разделы. Проверьте в обеих консолях.
Настроить robots.txt и sitemap для правильной индексации – задача не на один раз. Это процесс, который требует внимания при каждом изменении структуры сайта.
Ключевые тезисы:
Robots.txt управляет тем, куда робот не ходит. Одна ошибка – и целые разделы выпадают из поиска.
Sitemap.xml показывает роботу приоритетные страницы. Включайте только живые URL с кодом 200.
Оба файла должны быть согласованы: не блокируйте в robots.txt то, что указали в sitemap.
Проверяйте результат в Google Search Console и Яндекс.Вебмастере. Регулярно – хотя бы раз в неделю.
Для JavaScript-сайтов – SSR обязателен, а блокировка JS/CSS в robots.txt недопустима.
Ваш первый шаг прямо сейчас: откройте robots.txt на вашем сайте. Если видите ошибку 404 – создайте файл по шаблону выше. Если файл есть – проверьте, не блокирует ли он что-то лишнее. Затем загрузите свежий sitemap в обе консоли и посмотрите статус через несколько дней.
FAQ
Нужен ли robots.txt, если у меня маленький сайт на 10–20 страниц?
Формально – нет, сайт будет индексироваться и без него. Но даже на маленьком сайте есть служебные разделы (админка, страницы входа), которые лучше закрыть. Плюс строка Sitemap: в robots.txt помогает роботу быстрее найти карту. Потратьте 5 минут – создайте минимальный файл.
Как быстро поисковик увидит изменения в robots.txt?
Google обычно перечитывает robots.txt раз в сутки, иногда реже. Яндекс – с похожей частотой. Если вы внесли срочное изменение, можно запросить повторную проверку URL через инструмент URL Inspection в Google Search Console. Но рассчитывайте, что полное применение новых правил занимает от нескольких дней до пары недель.
Что лучше – один большой sitemap.xml или несколько маленьких?
Для сайтов до 10 000–15 000 страниц одного файла обычно достаточно. Если страниц больше или контент разнородный (товары, статьи, видео) – разбивайте на отдельные файлы и используйте sitemap index. Это упрощает диагностику: вы сразу видите, в каком именно файле проблема.
Можно ли через robots.txt закрыть от индексации конкретную страницу?
Можно закрыть от сканирования: Disallow: /page-url/. Но это не гарантирует исключение из индекса. Если на страницу есть внешние ссылки, Google может показать её в выдаче с пометкой «описание недоступно». Для надёжного удаления из индекса используйте мета-тег <meta name="robots" content="noindex"> или инструмент удаления URL в Search Console.
Как проверить, что sitemap не содержит битых ссылок?
Загрузите карту в Google Search Console или Яндекс.Вебмастер – обе платформы покажут URL с ошибками. Дополнительно можно прогнать файл через Screaming Frog SEO Spider: он скачает все URL из sitemap и проверит HTTP-коды ответов. Делайте это после каждого крупного обновления структуры сайта.
