belun.app Блог
EN

Как написать robots.txt, который делает именно то, что вы задумали

Четыре директивы, которые работают, маски в путях и одна строка, из-за которой сайт тихо выпадает из индекса. Плюс бесплатный генератор robots.txt.

Серверная с сетевыми кабелями и коммутаторами, откуда роботы забирают robots.txt из корня сайта

Четыре директивы и обычный текстовый файл. Вот и весь стандарт. И при этом одна лишняя косая черта здесь выбила из выдачи больше сайтов, чем любая другая строка кода: обычно это Disallow: / с тестового сервера, уехавший в продакшн вечером в пятницу.

Генератор robots.txt собирает файл за вас и подсвечивает опасные места прямо во время ввода. Но понимать, что вы на самом деле говорите роботу, всё равно стоит.

Disallow — это не «спрячь страницу»

Именно это заблуждение обходится дороже всего. Disallow означает «не скачивай этот адрес». Оно не означает «не показывай его в поиске».

Если на закрытую страницу /pricing ссылаются десять сайтов, Google всё равно может проиндексировать сам URL — просто без содержимого. В выдаче получится голая строчка: заголовок угадан по тексту ссылки, описания нет, иногда вместо него надпись «Информация об этой странице недоступна».

Чтобы страница точно не попала в индекс, нужно сделать наоборот: разрешить роботу её скачать и отдать мета-тег noindex или заголовок X-Robots-Tag. Робот не увидит noindex на странице, которую ему запретили открывать. Заодно: поддержку noindex внутри самого robots.txt Google отключил 1 сентября 2019 года, так что все старые инструкции об этом можно смело выбрасывать.

Четыре директивы, которые стоит знать

  • User-agent открывает группу. Несколько строк подряд делят между собой правила ниже.
  • Disallow закрывает путь и всё, что начинается с него. Пустое значение не закрывает ничего.
  • Allow делает исключение внутри закрытого пути.
  • Sitemap принимает полный адрес и читается отдельно от всех групп.

В сгенерированных файлах часто встречается Crawl-delay. Bing и Яндекс её учитывают, Google игнорирует. Если Googlebot создаёт нагрузку, помогает настройка скорости обхода в Search Console или ответ с кодом 429.

Побеждает самое длинное правило

Робот не читает файл сверху вниз до первого совпадения. Google, Bing и Яндекс выбирают самое конкретное правило — то, у которого длиннее путь. Поэтому и работает классическая пара для WordPress:

Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

Админка закрыта, а единственный файл, к которому обращаются темы и плагины, остаётся доступным. При равной длине Google отдаёт предпочтение Allow.

Маски поддерживают все три крупных поисковика: звёздочка заменяет любую последовательность символов, доллар закрепляет конец адреса. Disallow: /*?sort= уберёт все варианты страницы с сортировкой, а Disallow: /*.pdf$ закроет PDF-файлы, не тронув раздел /pdf-guide/.

Мелочи, на которых легко обжечься

Файл живёт в корне. Только https://example.ru/robots.txt, и больше нигде. Во вложенной папке роботы его не найдут, а каждому поддомену нужна своя копия: blog.example.ru ничего не наследует от основного домена.

Файл открыт всем. Его читают не только роботы. Строка Disallow: /vnutrenniy-budget-2026/ публикует ровно тот путь, который вы пытались спрятать, — в готовом виде.

Google разбирает первые 500 кибибайт и обрезает остальное. До этого предела доходят единицы, но автогенерируемые файлы с правилом на каждый URL иногда добираются.

Что делать с ИИ-краулерами

С 2023 года список таких агентов перевалил за два десятка: GPTBot, ClaudeBot, CCBot, PerplexityBot, Bytespider и другие. В генераторе они закрываются одним флажком.

А вот нужно ли их закрывать — вопрос без красивого ответа. Google-Extended убирает сайт из обучения Gemini, но вместе с тем и из блоков AI Overviews. OAI-SearchBot решает, сможет ли ChatGPT вообще на вас сослаться: заблокируете — вас там просто не будет, а не «будет без обучения». Издания, которым важен переходящий трафик, обычно закрывают обучающих роботов и оставляют поисковых.

Соберите файл в генераторе robots.txt, прочитайте предупреждения и загрузите результат в корень сайта — а потом откройте адрес в браузере и убедитесь, что он отдаётся.

Попробуйте инструмент

Генератор robots.txt →