Сайт два года стоял в выдаче и приносил заявки, а за неделю пропал целиком. Ни фильтра, ни писем из Вебмастера. Программист выкатил обновление с тестового сервера и притащил вместе с ним одну строчку, которая запрещает роботам обходить весь сайт.
Robots.txt и sitemap.xml весят по паре килобайт и лежат в корне сайта. Первый говорит поисковым роботам, куда не ходить. Второй перечисляет страницы, которые вы хотите видеть в поиске. Оба правятся в блокноте за пять минут, и оба за те же пять минут способны обнулить трафик.
Разбираем по делу: как устроен каждый файл, что закрывать типовому сайту и чего нельзя закрывать ни при каких условиях, как убрать страницу из поиска правильно и чем проверить, что вы ничего не сломали.
Что такое robots.txt простыми словами
Коротко. Robots.txt управляет обходом сайта. На показ в выдаче он влияет слабо: это просьба к роботам, а не замок, и закрытая в нём страница всё равно может оказаться в поиске.
Файл лежит по адресу site.ru/robots.txt и открыт любому, кто наберёт этот адрес. Робот читает его перед обходом и учитывает список запретов. Защиты тут никакой: выполнять правила — добрая воля робота. Технически файл ничего не блокирует.
Google формулирует прямо: robots.txt не служит механизмом, который держит страницу вне поиска. Если на закрытый адрес ведут ссылки с других сайтов, он может появиться в результатах — только без описания, читать содержимое роботу запрещено.
Яндекс говорит то же своими словами: ограниченные в robots.txt страницы могут участвовать в поиске, а для настоящего исключения нужен noindex в коде страницы или в HTTP-заголовках.
Два разных инструмента: один управляет обходом, второй управляет показом
Требования Яндекса простые: имя ровно robots.txt, корневой каталог, размер до 500 КБ, код ответа 200. Кириллица внутри запрещена, домены пишутся в Punycode. Если файл требованиям не соответствует, сайт считается открытым для индексирования — сломанный robots.txt равен его отсутствию. Google разбирает первые 500 кибибайт, остальное игнорирует.
Осторожно. Robots.txt публичен. Всё, что вы там закрыли, вы фактически показали пальцем. Прятать в нём адреса админки и тестовых поддоменов бессмысленно: файл читают не только поисковики.
Зачем нужен sitemap.xml, если робот и так ходит по ссылкам
Коротко. Карта сайта не заставляет индексировать, она помогает найти. Чем крупнее сайт и слабее перелинковка, тем заметнее польза.
Робот действительно находит страницы по ссылкам. Проблема в том, что обход не бесконечен. Раздел в четырёх кликах от главной с единственной ссылкой из подвала ждёт своей очереди долго, а на большом каталоге может не дождаться.
Нет времени разбираться самому? Разберём ваш сайт по 20+ SEO-параметрам и покажем точки роста — бесплатно и без обязательств.
Получить аудитSitemap.xml отдаёт роботу готовый список адресов и дату последнего изменения каждого. Это экономит обход и ускоряет попадание новых страниц в базу.
Обязательной карту делают четыре ситуации: новый сайт без внешних ссылок, каталог на тысячи позиций, сложная вложенность разделов и частое добавление страниц. Лендингу на семь секций она почти ничего не даст.
Гарантий карта не даёт. Адрес в sitemap — заявка на обход, решение об индексации поисковик принимает сам, по содержанию страницы. Пустой материал карта не спасёт. Как поисковики вообще принимают такие решения, мы писали в разборе что такое SEO простыми словами.
Синтаксис robots.txt: пять директив на все случаи
Коротко. User-agent, Disallow, Allow, Sitemap и Clean-param закрывают задачи почти любого сайта. Остальное из старых инструкций давно не работает.
Файл читается блоками. Каждый блок начинается с User-agent, дальше идут правила, которые относятся к этому роботу. Звёздочка означает всех роботов сразу.
| Директива | Что делает | Пример |
|---|---|---|
| User-agent | Указывает, к какому роботу относятся правила ниже. Обязательная | User-agent: * |
| Disallow | Запрещает обход раздела или отдельной страницы | Disallow: /wp-admin/ |
| Allow | Открывает исключение внутри закрытого раздела | Allow: /wp-admin/admin-ajax.php |
| Sitemap | Сообщает полный адрес карты сайта вместе с протоколом | Sitemap: https://site.ru/sitemap.xml |
| Clean-param | Только для Яндекса: склеивает адреса с мусорными параметрами | Clean-param: sort&ref |
Рабочий минимум для сайта на WordPress выглядит примерно так:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /cart/
Disallow: /my-account/
Clean-param: sort&order&ref
Sitemap: https://site.ru/wp-sitemap.xml
Конфликты решаются по длине пути: Google берёт самое специфичное правило, при равной длине — наименее ограничивающее. Поэтому Allow с более длинным путём перебивает общий Disallow, и связка выше работает: папка админки закрыта, нужный скрипт внутри неё открыт.
Директива Sitemap живёт отдельно от блоков User-agent и относится ко всему файлу. Её ставят в конец, карт можно указать несколько подряд. Адрес обязательно полный, с протоколом и доменом.
Clean-param и новая настройка GET-параметров
Коротко. Clean-param склеивает адреса с мусорными параметрами с основным URL и передаёт ему накопленные показатели. Disallow просто выбрасывает такие страницы.
Один товар в каталоге доступен по десятку адресов: с сортировкой, с меткой рекламной кампании, с идентификатором перехода из соцсети. Для поисковика это разные страницы с одинаковым содержимым, и обход тратится впустую.
Disallow закрывает такие адреса от обхода целиком. Clean-param говорит роботу Яндекса иначе: параметр на содержимое не влияет, считай эти адреса одной страницей.
Disallow с параметрами
грубое закрытие
- Страницы просто выпадают из обхода
- Накопленные показатели теряются
- Легко зацепить нужные адреса маской
- Работает для обоих поисковиков
Clean-param
склейка с основным адресом
- Показатели переходят на основной URL
- Робот перестаёт обходить дубли
- Правило до 500 символов, регистр учитывается
- Понимает только Яндекс
Синтаксис такой: Clean-param, параметры через амперсанд, затем необязательный путь. Строка Clean-param: ref /catalog/ уберёт параметр ref только внутри каталога, без пути правило действует по всему сайту. Приоритет у Disallow выше: если адрес уже закрыт, Clean-param не применится.
Метки веб-аналитики вроде utm_source, utm_campaign и ysclid Яндекс отбрасывает сам. Прописывать их в Clean-param смысла нет, хотя половина шаблонных robots.txt из интернета это делает.
12 декабря 2025 года в Яндекс Вебмастере появился отдельный инструмент: Индексирование, затем Настройка GET-параметров. Робот сам показывает найденные на сайте параметры, а вы в столбце «Учитывать параметр?» ставите «Да» или «Нет». Изменения вступают в силу за неделю.
Совет. Поддержка Clean-param в robots.txt осталась. Если настройки в кабинете и правила в файле противоречат, робот выполнит то, которое запрещает индексировать адрес с параметром. Держите оба источника в одном состоянии.
Отдельная боль у магазинов: фильтры по цвету, размеру и цене плодят адреса сотнями. Как разбирать такие каталоги, мы описали в материале про SEO для интернет-магазина. Не доходят руки — оставьте заявку на бесплатный экспресс-аудит: покажем, сколько дублей робот обходит вместо ваших посадочных.
Что закрывать типовому сайту и чего трогать нельзя
Коротко. Закрывайте служебное и дублирующее. Не закрывайте стили, скрипты, картинки и живые разделы — иначе поисковик увидит вместо сайта развалившийся текст.
Список того, что закрывают почти всем, короткий и скучный. Он почти не зависит от ниши и движка.
- Панель администратора и служебные скрипты движка
- Внутренний поиск по сайту: страницы вида /?s= и /search/
- Корзина, оформление заказа, личный кабинет, сравнение товаров
- Страницы авторизации, регистрации и восстановления пароля
- Технические каталоги: кеш, логи, резервные копии, временные файлы
- Печатные версии страниц и дубли с параметрами сортировки
А теперь то, что закрывают по недоразумению и потом долго ищут причину провала.
- CSS-файлы: без них робот не соберёт вёрстку и не поймёт, что видит посетитель
- JS-скрипты: если поисковик не загрузит их, часть контента для него просто исчезнет
- Папку с картинками: закрыли — потеряли весь трафик из поиска по изображениям
- Каталоги движка целиком: /wp-content/ и /bitrix/ хранят и мусор, и вёрстку разом
- Страницы пагинации: часть товаров окажется недостижимой для робота
- Разделы с UTM-метками маской вида /*? — под неё попадает и живая фильтрация
История с CSS и JS повторяется годами. Поисковик рендерит страницу как браузер: подгружает стили, выполняет скрипты, смотрит на результат. Заблокировали загрузку — робот получает набор текста без структуры, без кнопок и часто без половины блоков. Оценивает он честно то, что смог собрать. Мобильная версия рушится первой: она сильнее завязана на скрипты.
Остальные технические пункты можно пройти самому: у нас есть интерактивный чек-лист проверки сайта на полсотни пунктов, robots.txt и карта там тоже есть.
Как правильно убрать страницу из поиска
Коротко. Disallow для этого не годится. Нужен noindex на самой странице или удаление через кабинет вебмастера, а иногда и то и другое по очереди.
Самая частая ошибка выглядит логично: страница попала в поиск, значит закрываем её в robots.txt. Робот перестаёт на неё заходить, а адрес из выдачи никуда не девается и висит без описания месяцами.
Ловушка глубже. Google описывает её дословно: если страница закрыта в robots.txt, робот никогда не увидит правило noindex, и страница может остаться в результатах поиска. Двойная защита из Disallow плюс noindex запрет не усиливает — она его отменяет.
- Снимите Disallow с этой страницыРобот должен зайти и прочитать запрет. Пока обход закрыт, мета-теги не сработают.
- Поставьте noindexМета-тег robots в коде страницы или заголовок X-Robots-Tag на сервере. В WordPress это переключатель в SEO-плагине.
- Отправьте страницу на переобходЧерез переобход в Яндекс Вебмастере и проверку URL в Search Console, иначе ждать неделями.
- Ускорьте удаление вручнуюВ Вебмастере есть удаление страниц из поиска: до 500 адресов сайта в сутки, по префиксу — до 20 префиксов.
- Закройте в robots.txt в последнюю очередьКогда адрес пропал из выдачи и вы экономите обход. Не раньше.
Для страниц, которых физически больше нет, всё проще: сервер отдаёт 404 или 410, и адрес выпадает сам. Закрывать их в robots.txt не нужно.
Из чего состоит sitemap.xml и что отдаёт ваша CMS
Коротко. Обязателен только адрес страницы. Дальше начинаются лимиты: 50 000 адресов и 50 МБ на файл, свыше — индексный файл со списком карт.
Внутри карты каждая запись содержит тег loc с полным адресом страницы. Остальное необязательно. Тег lastmod с датой изменения полезен, если даты честные. Теги changefreq и priority Google игнорирует открытым текстом, Яндекс их среди учитываемых тоже не упоминает.
Кодировка строго UTF-8, адреса абсолютные, длиной до 2048 символов. Карта действует только на свой хост и каталог: файл в /catalog/sitemap.xml перечисляет адреса из /catalog/ и не может из /images/. Протокол и наличие www должны совпадать с основным зеркалом.
Когда страниц больше 50 000 или файл перевалил за 50 МБ, карту разбивают на части и делают индексный файл. Устроен он так же, только внутри перечислены другие карты — до 50 000 штук. Крупные каталоги бьют по типам: товары, категории, статьи.
| Платформа | Где лежит карта | Что учесть |
|---|---|---|
| WordPress без плагинов | /wp-sitemap.xml | Ядро отдаёт карту с версии 5.5, настроек нет |
| WordPress с Yoast или Rank Math | /sitemap_index.xml | Можно исключать метки, архивы, лишние типы записей |
| 1С-Битрикс | путь задаётся в настройках | Генерируется модулем поиска, раздел поисковой оптимизации |
| Самописный сайт | как договоритесь | Собирается скриптом по расписанию, проверяйте свежесть |
Два источника карты одновременно не нужны. Yoast обычно сам отключает встроенную карту ядра, но встречаются сборки, где живут обе, и робот обходит один список дважды. Разницу платформ мы разбирали в материале WordPress или Битрикс.
Сообщить о карте лучше сразу тремя способами: строка Sitemap в robots.txt, страница «Файлы Sitemap» в Яндекс Вебмастере и одноимённый отчёт в Google Search Console. Как подключить сайт к обоим кабинетам, расписано в инструкции как добавить сайт в Яндекс Вебмастер.
Чем проверить, что вы ничего не сломали
Коротко. Анализатор robots.txt в Яндекс Вебмастере и отчёты по карте сайта в обоих кабинетах. Проверка занимает минут пять. Делать её нужно до выкатки на боевой сайт.
Основной инструмент живёт в Яндекс Вебмастере: раздел Инструменты, пункт Анализ robots.txt. Он подтягивает файл с сайта или принимает текст руками, находит синтаксические ошибки и главное — позволяет вбить список адресов и посмотреть, какие из них разрешены роботу, а какие запрещены.
Там же лежит история версий за последние полгода, до ста сохранённых состояний файла. Когда трафик просел непонятно почему, она за десять секунд отвечает, кто и когда правил robots.txt.
Учтите перестановку: 28 января 2026 года Яндекс перекроил меню Вебмастера. Инструменты качества и репутации собраны в «Оптимизации сайта», технические проверки вынесены в «Инструменты», настройки обхода живут в «Индексировании».
На стороне Google работают отчёт robots.txt и проверка URL в Search Console. Последняя отвечает сразу на два вопроса: доступна ли страница для обхода и как робот её отрендерил. Именно там видно, что стили не загрузились. Подробнее — в разборе продвижения сайта в Google.
Совет. Заведите привычку: после любого обновления сайта открывать site.ru/robots.txt в браузере и смотреть глазами. Тридцать секунд, а ловит почти все катастрофы из следующего раздела.
Три аварии, которые случаются чаще остальных
Коротко. Почти все катастрофы с этими файлами сводятся к трём сценариям: приехавший с тестового сервера запрет, закрытые скрипты и карта со старыми адресами.
Первая и самая дорогая. На тестовом сервере robots.txt содержит строку Disallow: / — черновик не должен попадать в поиск. При переносе на боевой домен файл едет вместе с остальными. Через несколько дней сайт начинает исчезать из выдачи, через две-три недели пропадает почти целиком. Восстановление идёт дольше падения.
Вторая. Разработчик закрывает каталоги движка целиком, чтобы «не индексировался мусор». Вместе с мусором закрываются темы оформления и скрипты. Позиции сползают месяцами, и связать это с robots.txt уже никто не может. Другие типовые причины сползания мы собрали в материале почему упали позиции сайта.
Третья. Сайт переехал на https, а карта продолжает отдавать адреса через http. Робот получает список чужих для текущего зеркала адресов, отчёт наполняется ошибками, новые страницы находятся медленно. То же случается при смене домена и переезде с www.
Осторожно. Не копируйте robots.txt с чужого сайта, даже похожего. Файл завязан на конкретный движок и структуру адресов. Чужой шаблон закроет у вас что-то живое и оставит открытым лишнее.
Оба файла годами лежат нетронутыми: заявок они не приносят, вспоминают о них только после аварии. Стоит один раз ошибиться в строке — и полгода продвижения уходят в песок.
Хотите понять, что закрыто у вас и не мешает ли это индексации — оставьте заявку на бесплатный экспресс-аудит. Проверим robots.txt, карту сайта и то, как поисковик реально видит страницы. Мы ведём SEO-продвижение, Яндекс.Директ и разработку сайтов одной командой, поэтому правку не придётся согласовывать между тремя подрядчиками. Связаться можно на странице контактов.