Уведомления
Очистить все

Robots.txt: вечный спор. Три подхода — и один файл, который не стыдно показать коллегам

1 Записи
1 Пользователи
0 Reactions
218 Просмотры
SEO_Guide
(@admin)
Записи: 37
Администратор Admin Registered
Создатель темы
 
[#13]

Robots.txt — крошечный текстовый файл, вокруг которого сломано больше копий, чем вокруг любого другого SEO-инструмента. Одни говорят: «Две строчки, и хватит». Другие разворачивают портянку на 200 строк с отдельными правилами под каждого бота. Третьи превращают файл в список врагов человечества, перечисляя десятки запрещённых краулеров.

Кто прав? Давайте посмотрим на три реальных подхода, разберём плюсы и минусы каждого, а в конце я предложу вариант, который сам использую на проектах.

Подход 1. «Две строчки — и свободен»

Примерно так выглядит robots.txt на тысячах сайтов, которые делали на скорую руку:

User-agent: *
Disallow: /admin/
Sitemap: https://site.ru/sitemap.xml

Или еще короче:

User-agent: *
Allow: /
Sitemap: https://site.ru/sitemap.xml

Что здесь происходит

Всё максимально просто: всем роботам разрешено всё, кроме админки (в первом варианте — вообще всё разрешено). В конце — ссылка на карту сайта.

Плюсы: быстро, ничего не сломаешь, поисковики видят sitemap.

Минусы — и они серьёзные:

Нет директивы Host для Яндекса. Если сайт доступен по адресам с www и без www, робот может выбрать не то зеркало, которое вы считаете основным. Результат — склейка не в вашу пользу и потеря позиций. Яндекс уже не требует Host так жёстко, как раньше (он научился определять главное зеркало другими способами — через канонические, редиректы, карту сайта), но явное указание до сих пор не помешает.
Не закрыты технические страницы: результаты поиска по сайту, фильтры с GET-параметрами, личный кабинет, корзина. Робот будет тратить краулинговый бюджет на мусор вместо важных страниц.
Нет отдельных правил для разных поисковиков. Google не понимает Host и Crawl-delay, Яндекс понимает — но в этом файле мы не используем преимущества ни того, ни другого.
Вердикт: такой robots.txt лучше, чем ничего (или чем файл, который случайно закрывает весь сайт). Но для коммерческого проекта он слабоват. Это «роботс начинающего».

Подход 2. «Каждому боту — своя простыня»

Встречается на сайтах, где владелец однажды прочитал документацию и решил сделать «всё по уму». Выглядит примерно так:

User-agent: *
Disallow: /admin/
Disallow: /cabinet/
Disallow: /search/
Disallow: /?*
Disallow: /*?
Disallow: /cart/
Disallow: /checkout/
Disallow: /wp-json/
Disallow: /xmlrpc.php
Allow: /public/
Sitemap: https://site.ru/sitemap.xml

User-agent: Yandex
Disallow: /admin/
Disallow: /cabinet/
Disallow: /search/
Disallow: /?*
Disallow: /*?
Disallow: /cart/
Disallow: /checkout/
Disallow: /test/
Clean-param: utm_source&utm_medium&utm_campaign
Crawl-delay: 3
Host: site.ru
Sitemap: https://site.ru/sitemap.xml

User-agent: Googlebot
Disallow: /admin/
Disallow: /cabinet/
Disallow: /search/
Disallow: /?*
Disallow: /*?
Disallow: /cart/
Disallow: /checkout/
Allow: /public/
Sitemap: https://site.ru/sitemap.xml

User-agent: Bingbot
Disallow: /admin/
Disallow: /cabinet/
Disallow: /search/
Crawl-delay: 10
Sitemap: https://site.ru/sitemap.xml

Что здесь происходит

Автор старается угодить каждому поисковику отдельно. Для Яндекса добавлены Clean-param (чтобы не индексировались UTM-метки), Crawl-delay (чтобы не перегружать сервер) и Host (главное зеркало). Для Bing тоже Crawl-delay. Для Google — ничего лишнего, потому что Google официально игнорирует и Host, и Crawl-delay, и Clean-param-4.

Плюсы: краулинговый бюджет расходуется эффективнее, Яндекс получает инструкции на своём языке, мусорные страницы закрыты.

Минусы: файл раздувается. Каждое изменение нужно дублировать в нескольких секциях. Рано или поздно забудете обновить одну из них — и правила разъедутся. Поддерживать такое вручную — боль.

Вердикт: подход имеет право на жизнь на крупных проектах, где важны нюансы для разных поисковиков. Но для большинства сайтов такая детализация избыточна.

Подход 3. «Стоп-лист для хлама»

Третий вариант — robots.txt, в который добавляют блокировку десятков ненужных ботов: парсеров, SEO-краулеров, AI-ботов. Выглядит это как бесконечный список:

 

User-agent: AhrefsBot
Disallow: /

User-agent: SemrushBot
Disallow: /

User-agent: MJ12bot
Disallow: /

User-agent: DotBot
Disallow: /

User-agent: BLEXBot
Disallow: /

User-agent: GPTBot
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: anthropic-ai
Disallow: /

User-agent: PerplexityBot
Disallow: /

User-agent: *
Disallow: /admin/
Disallow: /cabinet/
Sitemap: https://site.ru/sitemap.xml
Host: site.ru

Что здесь происходит

Вебмастер пытается закрыть сайт от всех, кто не приносит пользы. Ahrefs, Semrush, Majestic — чтобы не сканировали и не воровали данные. GPTBot и CCBot — чтобы контент не попадал в обучающие выборки нейросетей-.

Плюсы: сервер меньше нагружается, контент не утекает к конкурентам и AI-компаниям.

Минусы: во-первых, большинство вредных ботов игнорируют robots.txt. Настоящие паразиты (спам-краулеры, скрейперы) вообще не смотрят в этот файл. Во-вторых, блокировка SEO-краулеров вроде Ahrefs и Semrush может навредить: эти сервисы используются для анализа конкурентов, и если ваш сайт не виден в них, вы теряете возможность понять, кто и как вас обходит. В-третьих, файл превращается в свалку, которую сложно поддерживать в актуальном состоянии.

Вердикт: блокировать AI-ботов (GPTBot, CCBot) имеет смысл, если вы не хотите, чтобы ваш контент бесплатно обучал чужие нейросети. А закрываться от Ahrefs и Semrush — спорное решение. Лучше защищать сервер от реальных паразитов другими методами (файервол, fail2ban, анализ логов).

Мой подход: сбалансированный robots.txt

На основе всего вышесказанного — вот файл, который я использую на большинстве проектов. Он не перегружен, но закрывает все базовые потребности:

User-agent: *
Disallow: /admin/
Disallow: /cabinet/
Disallow: /search/
Disallow: /?*
Disallow: /cart/
Disallow: /checkout/
Disallow: /wp-json/
Disallow: /xmlrpc.php
Allow: /public/
Sitemap: https://site.ru/sitemap.xml

User-agent: Yandex
Disallow: /admin/
Disallow: /cabinet/
Disallow: /search/
Disallow: /?*
Disallow: /cart/
Disallow: /checkout/
Disallow: /test/
Clean-param: utm_source&utm_medium&utm_campaign
Crawl-delay: 3
Host: site.ru
Sitemap: https://site.ru/sitemap.xml

User-agent: GPTBot
Disallow: /

User-agent: CCBot
Disallow: /

Почему именно так:

Общая секция для всех (User-agent: *) — закрываем технический мусор, чтобы не тратить краулинговый бюджет. Сюда попадают админка, личный кабинет, результаты внутреннего поиска, корзина, страницы с GET-параметрами. Путь /public/ специально открыт на случай, если вы храните там что-то нужное для индексации.

Отдельная секция для Яндекса — дублируем основные запреты и добавляем то, что понимает только Яндекс: Clean-param (игнорировать UTM-метки при индексации), Crawl-delay (щадящий интервал между запросами), Host (указание главного зеркала).

Важно: директивы Host и Clean-param должны быть продублированы в robots.txt всех зеркал сайта, иначе Яндекс их проигнорирует.

Отдельная секция для Google не нужна. Google поддерживает только четыре директивы: user-agent, allow, disallow и sitemap. Всё остальное он молча игнорирует. Поэтому общих правил вполне достаточно.

AI-боты закрыты. GPTBot и CCBot блокируются, чтобы контент не использовался для обучения моделей OpenAI и Common Crawl.

Sitemap прописан в каждой секции, где это нужно. Это гарантия, что робот найдёт карту сайта, даже если по какой-то причине не обработает общую секцию.

Никакого отдельного Bingbot. Для большинства рунет-проектов трафик из Bing составляет доли процента. Не стоит усложнять файл ради него.

Что насчёт Host?

Директива Host когда-то была обязательной для Яндекса. Сегодня она носит рекомендательный характер: Яндекс умеет определять главное зеркало по каноническим ссылкам, редиректам и sitemap. Но я всё равно прописываю Host в секции Яндекса — это дополнительный сигнал, который ничего не ломает, а в некоторых случаях (особенно при сложной структуре зеркал) может помочь. Однако если ваш сайт доступен только по одному адресу и настроен 301-редирект с www на без www, Host не критичен.

Вопросы к сообществу

  • Какой из трёх подходов ближе вашему текущему robots.txt? Планируете что-то менять после прочтения?
  • Используете ли вы Crawl-delay для Яндекса? Замечали реальную разницу в скорости индексации?
  • Закрываете ли AI-ботов (GPTBot, CCBot)? Или считаете, что это бесполезно?
  • Были ли у вас случаи, когда ошибка в robots.txt приводила к выпадению из индекса? Расскажите — такие истории всегда поучительны.

Жду ваши файлы, вопросы и боевые истории. Лучшие конфигурации разберём в комментариях.

 

 


Эксперт, автор beloeseo.ru. Комплексный аудит и консультации по сложным случаям.

 
Размещено : 21.05.2026 00:13
Метки темы
Поделиться:
Позвонить Написать Форум Форум