Содержание статьи
Что такое robots.txt и зачем он нужен?
Robots.txt — это текстовый файл, который размещается в корневом каталоге сайта и служит для управления действиями поисковых роботов. Он содержит инструкции, которые указывают поисковым системам, какие разделы сайта можно сканировать и индексировать, а какие следует запрещать. Этот инструмент является важнейшим элементом технического SEO и позволяет оптимизировать краулинговый бюджет, защитить конфиденциальные данные и предотвратить индексацию дублирующегося контента.
Правильная настройка роботс файла помогает поисковым системам эффективнее сканировать сайт, фокусируясь на важных страницах и игнорируя технические разделы. Это особенно критично для крупных проектов с тысячами страниц, где грамотное распределение краулингового бюджета напрямую влияет на скорость индексации нового контента.
Где находится robots.txt на сайте?
Файл robots должен располагаться строго в корневом каталоге домена, доступный по адресу https://example.com/robots.txt. Поисковые роботы всегда обращаются именно к этому адресу перед началом сканирования сайта.
Важные правила размещения:
- Файл должен находиться строго в корне домена, а не в поддиректориях
- Название файла чувствительно к регистру: используйте только
robots.txt(неRobots.txtилиROBOTS.TXT) - Для поддоменов требуется отдельный файл:
https://blog.example.com/robots.txt - Файл должен быть доступен по протоколу, который использует основной сайт (HTTP или HTTPS)
Важно понимать, что robots должен быть доступен по протоколу, который использует сайт. Если ваш проект работает по HTTPS, файл должен открываться по адресу с защищенным соединением. Для проверки доступности достаточно ввести полный URL в адресную строку браузера — если файл настроен правильно, вы увидите его содержимое в текстовом формате.
При работе с мультиязычными сайтами на разных доменах необходимо создавать отдельный файл для каждого домена. Например, для site.com и site.ru потребуются два независимых файла с индивидуальными настройками, поскольку поисковые системы воспринимают их как разные ресурсы.
Как создать файл robots.txt?
Создавать robots txt можно с помощью любого текстового редактора, сохраняя документ в кодировке UTF-8 без BOM. Это гарантирует корректное отображение всех символов, особенно если в файле используются комментарии на русском языке.
Пошаговая инструкция:
Шаг 1: Создание файла
- Откройте любой текстовый редактор (Notepad++, Sublime Text, VS Code или даже стандартный Блокнот)
- Создайте новый файл и сохраните его с именем
robots.txt - Убедитесь, что файл сохранен в кодировке UTF-8
Шаг 2: Добавление директив
- Напишите необходимые правила, используя синтаксис robots.txt
- Каждая директива должна начинаться с новой строки
- Используйте пустые строки для разделения блоков правил
Шаг 3: Размещение на сервере
- Загрузите файл в корневую директорию сайта через FTP-клиент (FileZilla, Total Commander) или панель управления хостингом
- Убедитесь, что файл доступен по адресу
ваш-домен.com/robots.txt
Шаг 4: Проверка
- Откройте файл в браузере
- Используйте инструменты проверки от Google и Яндекс
Для начинающих специалистов существуют онлайн-генераторы, которые помогают создавать базовую конфигурацию на основе выбранных параметров. Однако опытные SEO-специалисты предпочитают настраивать файл вручную, учитывая специфику конкретного проекта и требования поисковых систем. При ручной настройке важно следить за синтаксисом — даже небольшая опечатка может привести к некорректной работе директив.
Минимально необходимый robots.txt:
Этот базовый файл разрешает индексацию всего сайта и указывает путь к карте сайта.
Синтаксис robots.txt
Синтаксис robots txt основан на простых текстовых правилах, где каждая директива начинается с новой строки. Файл чувствителен к регистру для путей, но не для названий директив.
Основные правила синтаксиса:
1. Структура правил
2. Чувствительность к регистру
- Директивы (User-agent, Disallow, Allow) не чувствительны к регистру
- Пути к файлам и директориям чувствительны к регистру
- Правильно:
Disallow: /Admin/ - Неправильно для другой директории:
Disallow: /admin/
3. Разделители
- Каждая директива начинается с новой строки
- Пустая строка разделяет блоки правил для разных User-agent
- Пробелы после двоеточия необязательны, но улучшают читаемость
4. Комментарии
5. Специальные символы
*(звездочка) — заменяет любую последовательность символов$(знак доллара) — указывает на конец URL#(решетка) — начало комментария
Важно: Различия в синтаксисе путей
Понимание тонкостей синтаксиса критически важно для корректной работы правил. Рассмотрим различия между похожими записями.
Disallow: /admin/, Disallow: */admin/*, Disallow: *admin*
Вариант 1: Disallow: /admin/
User-agent: *
Disallow: /admin/
# ЧТО БЛОКИРУЕТ:
# https://example.com/admin/
# https://example.com/admin/panel.php
# https://example.com/admin/users/list
# https://example.com/administrator (начинается с /admin)
# https://example.com/admin.html
# ЧТО НЕ БЛОКИРУЕТ:
# https://example.com/user/admin/ (/admin/ не в начале пути)
# https://example.com/myadmin/
# https://example.com/administrator-area/
# ИСПОЛЬЗОВАНИЕ:
# Блокирует конкретную директорию в корне сайта
# Самый распространенный и рекомендуемый вариант
Вариант 2: Disallow: */admin/*
User-agent: *
Disallow: */admin/*
# ЧТО БЛОКИРУЕТ:
# https://example.com/admin/ (* перед = пустая строка)
# https://example.com/admin/panel.php
# https://example.com/user/admin/settings (admin в середине пути)
# https://example.com/site/admin/panel
# https://example.com/myadmin/test (содержит admin)
# ЧТО НЕ БЛОКИРУЕТ:
# https://example.com/administrator (нет слэша после admin)
# https://example.com/admin-panel (нет слэша, дефис не считается)
# ИСПОЛЬЗОВАНИЕ:
# Блокирует директорию admin на любом уровне вложенности
# Полезно для мультисайтов или сложной структуры
Вариант 3: Disallow: *admin*
User-agent: *
Disallow: *admin*
# ЧТО БЛОКИРУЕТ:
# https://example.com/admin/
# https://example.com/administrator
# https://example.com/myadmin/
# https://example.com/user/admin/panel
# https://example.com/site-administration/
# https://example.com/webadmin
# https://example.com/admin-panel
# https://example.com/adminka
# https://example.com/product-administration-guide.html
# ЧТО НЕ БЛОКИРУЕТ:
# Практически ничего, что содержит последовательность "admin"
# ИСПОЛЬЗОВАНИЕ:
# ВНИМАНИЕ: Очень широкое правило!
# Блокирует ВСЕ URL, содержащие слово "admin" где угодно
# Может случайно заблокировать важные страницы
# Используйте с большой осторожностью!
Практические примеры различий:
Пример 1: Структура интернет-магазина
# Сайт имеет структуру:
# /admin/ - панель администратора
# /user/admin/ - настройки администрирования профиля
# /blog/admin-guide.html - статья о настройке
# ВАРИАНТ А: Disallow: /admin/
User-agent: *
Disallow: /admin/
# Результат:
# Заблокировано: /admin/ и всё внутри
# Доступно: /user/admin/
# Доступно: /blog/admin-guide.html
# ИТОГ: Безопасный вариант для большинства случаев
# ВАРИАНТ Б: Disallow: */admin/*
User-agent: *
Disallow: */admin/*
# Результат:
# Заблокировано: /admin/
# Заблокировано: /user/admin/ (может быть нужно для SEO!)
# Доступно: /blog/admin-guide.html
# ИТОГ: Блокирует admin на всех уровнях, может быть избыточным
# ВАРИАНТ В: Disallow: *admin*
User-agent: *
Disallow: *admin*
# Результат:
# Заблокировано: /admin/
# Заблокировано: /user/admin/
# Заблокировано: /blog/admin-guide.html (ПРОБЛЕМА!)
# Заблокировано: /administration/ (ПРОБЛЕМА!)
# ИТОГ: СЛИШКОМ широкое правило, заблокирует полезный контент!
Пример 2: Мультисайтовая структура WordPress
# Структура WordPress Multisite:
# /site1/wp-admin/
# /site2/wp-admin/
# /blog/wp-admin/
# ВАРИАНТ 1: Disallow: /wp-admin/
User-agent: *
Disallow: /wp-admin/
# Результат: Блокирует только корневой /wp-admin/
# Подсайты останутся доступными!
# НЕ подходит для Multisite
# ВАРИАНТ 2: Disallow: */wp-admin/*
User-agent: *
Disallow: */wp-admin/*
# Результат: Блокирует wp-admin на всех уровнях
# ИДЕАЛЬНО для WordPress Multisite
# Блокирует:
# - /wp-admin/
# - /site1/wp-admin/
# - /site2/wp-admin/
# - /blog/wp-admin/
Пример 3: Опасность широких правил
# ПРОБЛЕМНАЯ ситуация с *admin*
# У вас есть страницы:
# /admin/ - панель (нужно заблокировать)
# /products/administration-guide/ - полезная статья
# /blog/system-administration/ - категория блога
# /courses/admin-basics/ - образовательный контент
# ЕСЛИ используете: Disallow: *admin*
# Всё вышеперечисленное будет ЗАБЛОКИРОВАНО!
# Вы потеряете индексацию полезного контента
# ПРАВИЛЬНОЕ решение:
User-agent: *
Disallow: /admin/ # Блокирует только /admin/ в корне
# Всё остальное остается доступным Рекомендации по выбору синтаксиса:
1. Для стандартных сайтов (90% случаев):
User-agent: *
Disallow: /admin/
Disallow: /private/
Disallow: /temp/
2. Для мультисайтов или сложных структур:
User-agent: *
Disallow: */admin/*
Disallow: */wp-admin/*
Disallow: */.git/* 3. Избегайте паттернов без слэшей:
# ОПАСНО:
Disallow: *admin*
Disallow: *test*
Disallow: *temp*
# ЛУЧШЕ:
Disallow: /admin/
Disallow: /test/
Disallow: /temp/
| Синтаксис | Область действия | Безопасность | Когда использовать |
|---|---|---|---|
| /admin/ | Только корневая директория | Высокая | Обычные сайты (рекомендуется) |
| */admin/* | Любой уровень вложенности | Средняя | Мультисайты, CMS с подсайтами |
| *admin* | Везде, где встречается | Низкая | Почти никогда (слишком широко) |
Комбинированный подход:
Для максимального контроля используйте комбинацию правил с исключениями:
User-agent: *
# Блокируем admin на всех уровнях
Disallow: */admin/*
# НО разрешаем публичные разделы с admin в названии
Allow: /blog/admin-guide/
Allow: /courses/system-administration/
Allow: /products/administration-tools/
# Альтернативный подход: точечная блокировка
Disallow: /admin/
Disallow: /user/admin/
Disallow: /site1/admin/
Disallow: /site2/admin/
# Более безопасно, но требует больше строк
Комментарии добавляются символом решетки (#) и игнорируются поисковыми роботами, что позволяет документировать сложные конфигурации для будущих изменений. Базовая структура состоит из блоков, где сначала указывается User-agent, а затем набор директив, применимых к этому агенту. Пустая строка разделяет блоки для разных роботов.
Директивы robots.txt
Директивы представляют собой команды, которые управляют поведением поисковых роботов на сайте. Основные директивы поддерживаются всеми крупными поисковыми системами, но некоторые специфичные инструкции работают только в Google или Яндекс.
Disallow
Директива Disallow запрещает индексацию указанного URL или раздела сайта. Это основной инструмент для закрытия технических страниц, административных панелей и дублирующегося контента от поисковых систем.
Синтаксис:
User-agent: *
Disallow: [путь]
Примеры использования:
# Запрет всего сайта
User-agent: *
Disallow: /
# Запрет конкретной директории
User-agent: *
Disallow: /admin/
# Запрет конкретного файла
User-agent: *
Disallow: /secret-page.html
# Запрет всех файлов с определенным расширением
User-agent: *
Disallow: /*.pdf$
# Запрет URL с параметрами
User-agent: *
Disallow: /*?
# Запрет нескольких директорий
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /private/
Важно: различия в синтаксисе Disallow
Многие SEO-специалисты не понимают разницы между /admin/,
*/admin/*
и *admin*.
Это приводит к серьезным ошибкам в настройке robots.txt.
Детальное сравнение:
# Пример 1: Disallow: /admin/
# Что блокирует:
# https://site.com/admin/
# https://site.com/admin/users
# https://site.com/admin.html
# https://site.com/administrator (начинается с /admin)
# Что НЕ блокирует:
# https://site.com/blog/admin/
# https://site.com/user/admin/settings
# ВЫВОД: Блокирует только если путь НАЧИНАЕТСЯ с /admin
# Пример 2: Disallow: */admin/*
# Что блокирует:
# https://site.com/admin/
# https://site.com/blog/admin/
# https://site.com/user/admin/settings
# https://site.com/site1/admin/panel
# Что НЕ блокирует:
# https://site.com/administrator (нет слэша после admin)
# https://site.com/admin-panel (дефис не считается)
# ВЫВОД: Блокирует директорию admin на ЛЮБОМ уровне вложенности
# Пример 3: Disallow: *admin*
# Что блокирует:
# https://site.com/admin/
# https://site.com/administrator
# https://site.com/blog/admin-guide.html
# https://site.com/myadmin
# https://site.com/webadmin-tools
# https://site.com/product-administration.html
# ВЫВОД: Блокирует ВСЁ, что содержит "admin" где угодно
# ОПАСНО: может заблокировать важный контент!
Практический кейс — Реальная ошибка:
# ОШИБКА, которую совершил клиент:
User-agent: *
Disallow: *admin*
# ПОСЛЕДСТВИЯ:
# Заблокировали /admin/ (правильно)
# Заблокировали /blog/system-administration/ (категория блога!)
# Заблокировали /courses/admin-basics/ (платные курсы!)
# Заблокировали /services/it-administration/ (услуги!)
# Потеря трафика: 35% за 2 месяца
# ПРАВИЛЬНОЕ решение:
User-agent: *
Disallow: /admin/
# Всё остальное осталось доступным
| Вариант | Применение | Риски |
|---|---|---|
| Disallow: /admin/ | Обычные сайты | Минимальные |
| Disallow: */admin/* | WordPress Multisite, порталы | Средние (проверьте структуру) |
| Disallow: *admin* | Почти никогда | Высокие (заблокирует лишнее) |
Важные нюансы:
Disallow: /adminзапретит/admin,/admin/,/admin.html,/administratorDisallow: /admin/запретит только/admin/и вложенные страницы- Пустая директива
Disallow:разрешает индексацию всего - Запрет в robots.txt не гарантирует удаление страницы из индекса, если на нее есть внешние ссылки
Рекомендации:
- Используйте
/admin/для 90% случаев — это самый безопасный вариант - Используйте
*/admin/*только если у вас мультисайт или сложная структура - Избегайте
*admin*— слишком широкое правило, приведет к ошибкам - Всегда тестируйте правила в Google Search Console перед публикацией
Применение wildcards позволяет создавать гибкие правила, но требует осторожности — слишком широкие маски могут случайно закрыть важные страницы от индексации. Для закрытия параметров фильтрации в интернет-магазинах используют конструкции вроде Disallow: *?filter=, что блокирует все URL с этим параметром независимо от расположения.
Allow
Директива Allow разрешает сканирование конкретных страниц или разделов, даже если они находятся внутри закрытой области. Это исключение из правила Disallow, которое помогает открывать важные страницы, расположенные в технических папках.
Синтаксис:
User-agent: *
Disallow: [общий запрет]
Allow: [исключение из запрета]
Примеры использования:
# Запрет всей директории, кроме одного раздела
User-agent: *
Disallow: /admin/
Allow: /admin/public/
# Запрет всех PDF, кроме одного файла
User-agent: *
Disallow: /*.pdf$
Allow: /documents/whitepaper.pdf
# Запрет параметров, кроме важных для навигации
User-agent: *
Disallow: /*?
Allow: /*?page=
Allow: /*?category=
# Сложный пример: запрет директории с исключениями
User-agent: *
Disallow: /products/
Allow: /products/category/
Allow: /products/item/
Приоритет правил:
Google использует наиболее специфичное правило:
User-agent: *
Disallow: /page
Allow: /page/public
# URL /page/public — РАЗРЕШЕН (Allow более специфичен)
# URL /page/private — ЗАПРЕЩЕН (подпадает под Disallow) Типичное применение — открытие публичных файлов в закрытой директории. Например, если папка /private/ закрыта, но в ней есть публичная страница /private/blog/, можно использовать комбинацию правил. Сначала закрывается вся папка через Disallow: /private/, затем открывается нужный раздел через Allow: /private/blog/.
Sitemap
Директива Sitemap указывает расположение XML-карты сайта, что помогает поисковым системам эффективнее индексировать контент.
Синтаксис:
Примеры использования:
# Одна карта сайта
Sitemap: https://example.com/sitemap.xml
# Несколько карт для разных разделов
Sitemap: https://example.com/sitemap-products.xml
Sitemap: https://example.com/sitemap-articles.xml
Sitemap: https://example.com/sitemap-categories.xml
# Карта на другом домене (для крупных сайтов)
Sitemap: https://cdn.example.com/sitemaps/main-sitemap.xml
# Индексный файл карты сайта
Sitemap: https://example.com/sitemap-index.xml Важные правила:
- Используйте полный URL с протоколом (
http://илиhttps://) - Директива Sitemap не чувствительна к расположению в файле
- Можно указать несколько карт сайта
- Поддерживаются сжатые карты (
sitemap.xml.gz) - Яндекс и Google рекомендуют также добавлять карты через панели вебмастеров
Правильный синтаксис: Sitemap: https://example.com/sitemap.xml. Обязательно использовать полный URL с протоколом. Для сайтов с динамической генерацией контента рекомендуется указывать несколько специализированных карт — для статей, категорий, изображений.
Crawl-delay
Директива Crawl delay устанавливает задержку между запросами робота к серверу, измеряемую в секундах. Это защитный механизм для сайтов на слабых серверах или с ограниченными ресурсами.
Синтаксис:
User-agent: [имя бота]
Crawl-delay: [количество секунд]
Примеры использования:
# Ограничение для всех ботов
User-agent: *
Crawl-delay: 10
# Разные задержки для разных ботов
User-agent: Yandex
Crawl-delay: 2
User-agent: GoogleBot
Crawl-delay: 5
# Сильное ограничение для агрессивных парсеров
User-agent: AhrefsBot
Crawl-delay: 30
Важные нюансы:
- Google не поддерживает эту директиву
- Яндекс поддерживает Crawl-delay
- Значение указывается в секундах (целое число)
- Для ограничения нагрузки на сервер рекомендуется значение 5-10 секунд
- Слишком большое значение замедлит индексацию
Яндекс поддерживает эту директиву, тогда как Google её игнорирует, используя собственные алгоритмы определения оптимальной скорости краулинга. Синтаксис выглядит как Crawl-delay: 5, что означает пятисекундную паузу между обращениями.
Clean-param
Директива Clean param специфична для Яндекса и помогает указать параметры URL, которые не влияют на содержимое страницы. Это решает проблему дублирования контента, возникающего из-за технических параметров вроде меток UTM или идентификаторов сессий.
Синтаксис:
Clean-param: [параметры] [путь] Примеры использования:
# Игнорирование utm-меток на всем сайте
Clean-param: utm_source&utm_medium&utm_campaign
# Игнорирование идентификаторов сессий
Clean-param: sessionid&sid
# Параметры для конкретного раздела
Clean-param: sort&order /catalog/
# Несколько директив для разных разделов
Clean-param: color&size /products/
Clean-param: ref&source /articles/
# Комплексный пример
Clean-param: utm_source&utm_medium&utm_campaign&utm_content&utm_term
Clean-param: from&ref&partner_id
Clean-param: sessionid&sid&PHPSESSID Практическое применение:
# Без Clean-param Яндекс видит как разные страницы:
https://example.com/product.html
https://example.com/product.html?utm_source=google
https://example.com/product.html?utm_medium=cpc
# С Clean-param Яндекс понимает, что это одна страница:
Clean-param: utm_source&utm_medium&utm_campaign Важные правила:
- Директива работает только в Яндексе
- Google игнорирует Clean-param (используйте canonical)
- Параметры перечисляются через амперсанд
& - Путь указывает область применения правила
- Помогает бороться с дублями из-за меток и счетчиков
Синтаксис записывается как Clean-param: utm_source&utm_medium /catalog/, где после двоеточия перечисляются параметры через амперсанд, а после пробела указывается раздел сайта, к которому применяется правило.
User-agent
Параметр User-agent определяет, к какому поисковому роботу применяются последующие директивы. Звездочка (*) означает применение правил ко всем роботам одновременно.
Синтаксис:
User-agent: [имя бота или * для всех]
[директивы для этого бота] Основные поисковые боты:
Примеры практического использования:
Важные нюансы:
User-agent: *применяется ко всем ботам, которые не указаны отдельно- Специфичные правила переопределяют общие
- Имена ботов не чувствительны к регистру
- Можно группировать правила для нескольких ботов
Основные значения включают Yandex для всех роботов Яндекса, Googlebot для Google, YandexBot для основного робота Яндекс. Важно понимать, что если робот не находит специфичного для него блока, он применяет правила из блока с User-agent: *.
Требования Google к файлу Robots.txt
Google имеет специфические требования к структуре и содержанию robots txt файла. Основное правило — размер файла не должен превышать 500 килобайт, иначе содержимое после этого лимита будет проигнорировано.
Технические требования Google:
1. Формат и кодировка
- Кодировка: UTF-8 (Google может читать и другие, но UTF-8 рекомендуется)
- Максимальный размер: 500 КБ (все, что больше, игнорируется)
- Формат текстовый: только обычный текст, без HTML
2. Размещение
- Строго в корне домена:
https://example.com/robots.txt - Должен отдавать HTTP-статус 200
- Редирект 3XX может не обрабатываться корректно
3. Поддерживаемые директивы
4. Синтаксис подстановок
*заменяет любую последовательность символов$указывает на конец URL
Рекомендации Google для SEO:
1. Не блокируйте важные ресурсы
2. Используйте robots.txt в связке с метатегами
Для полного контроля используйте комбинацию:
- robots.txt — для запрета сканирования
- meta robots noindex — для исключения из индекса
- X-Robots-Tag — для не-HTML ресурсов
3. Указывайте Sitemap
4. Тестируйте изменения
- Используйте Отчет о файлах robots.txt в Google Search Console
- Проверяйте синтаксис перед публикацией
- Тестируйте на критичных URL
Что Google игнорирует:
- Crawl-delay — настраивайте скорость в Search Console
- Clean-param — используйте canonical
- Нестандартные директивы
- Правила после 500 КБ
Важная особенность Google — игнорирование директивы Crawl delay. Вместо этого скорость краулинга регулируется автоматически на основе производительности сервера или вручную через панель Search Console.
Требования Яндекс к файлу Robots.txt
Яндекс поддерживает стандартные директивы и несколько специфичных команд, включая Clean param и Crawl delay. Максимальный размер файла ограничен 32 килобайтами, что значительно меньше лимита Google.
Технические требования Яндекс:
1. Формат и кодировка
- Кодировка: UTF-8, Windows-1251 или KOI8-R (UTF-8 рекомендуется)
- Максимальный размер: 32 КБ (больше не обрабатывается)
- Только текстовый формат
2. Размещение и доступность
- Только в корне:
https://example.com/robots.txt - Должен возвращать HTTP 200
- Таймаут: Яндекс ждет ответ до 3 секунд
3. Поддерживаемые директивы
Особенности Яндекса:
1. Директива Crawl-delay
2. Директива Clean-param (только Яндекс)
Рекомендации Яндекса:
1. Оптимальная структура для Яндекса
2. Для интернет-магазинов
Поисковая система строго следует указаниям Crawl delay, что делает эту директиву эффективным инструментом для контроля нагрузки на сервер. Яндекс рекомендует размещать директиву Sitemap в robots txt для ускорения обнаружения новых страниц.
Ошибки в robots.txt и их последствия
Ошибки в роботс файле могут привести к катастрофическим последствиям для SEO — от случайного закрытия всего сайта от индексации до неконтролируемого роста дублированного контента в индексе.
Критические ошибки и их влияние:
1. Полная блокировка сайта
Реальный кейс: Крупный интернет-магазин потерял 95% органического трафика за 3 дня из-за случайной блокировки в robots.txt после обновления сайта.
2. Блокировка важных разделов
3. Блокировка CSS/JS (проблема для Google)
4. Синтаксические ошибки
5. Конфликтующие правила
| Ошибка | Время обнаружения | Время восстановления | Потеря трафика |
|---|---|---|---|
| Полная блокировка сайта | 1-3 дня | 2-4 недели | 90-100% |
| Блокировка каталога | 3-7 дней | 2-6 недель | 40-70% |
| Блокировка CSS/JS | 1-2 недели | 2-4 недели | 10-30% |
| Отсутствие Sitemap | Постепенно | 1-2 недели | 5-15% |
Как минимизировать риски:
- Всегда делайте резервную копию работающего robots.txt перед изменениями
- Тестируйте изменения на staging-среде
- Используйте инструменты проверки перед публикацией
- Настройте мониторинг доступности robots.txt
- Документируйте изменения с указанием даты и причины
Как найти и исправить ошибки в robots.txt
Регулярная проверка файла robots.txt должна стать частью SEO-аудита. Рассмотрим методы выявления и устранения проблем.
Способы обнаружения ошибок:
1. Инструменты поисковых систем
Google Search Console:
- Откройте:
https://search.google.com/search-console - Выберите свой сайт
- Раздел "Прежние инструменты" → "Тестер robots.txt"
- Введите URL для проверки
- Нажмите "Тестировать"
Яндекс.Вебмастер:
- Откройте:
https://webmaster.yandex.ru - Выберите сайт
- Раздел "Индексирование" → "Проверка robots.txt"
- Система покажет текущий файл и ошибки
2. Специализированные онлайн-сервисы
- Technical SEO (Screaming Frog): Полное сканирование с проверкой robots.txt
- Sitebulb: Десктоп-краулер с детальным анализом
- Ryte: Мониторинг изменений в robots.txt
3. Ручная проверка
Контрольный чек-лист для ручного аудита:
- Файл доступен по
https://домен.com/robots.txt - Возвращает HTTP 200 (не 404, 301, 302)
- Кодировка UTF-8
- Размер меньше 500 КБ (Google) / 32 КБ (Яндекс)
- Нет случайного
Disallow: / - Не заблокированы важные разделы
- CSS/JS разрешены для Googlebot
- Указан Sitemap
- Нет конфликтующих правил
- Синтаксис директив корректен
- Пути начинаются со слэша
/ - Нет пробелов в путях
Пошаговое исправление ошибок:
Шаг 1: Сохраните текущую версию
Шаг 2: Идентифицируйте проблему
Используйте тестеры от Google/Яндекс и проверьте конкретные URL.
Шаг 3: Внесите исправления
Шаг 4: Протестируйте локально
Используйте тестеры перед публикацией.
Шаг 5: Опубликуйте и мониторьте
- Загрузите исправленный файл на сервер
- Проверьте доступность
- Запросите повторное сканирование в Search Console
- Мониторьте индексацию следующие 2 недели
Типовые сценарии исправления:
Сценарий 1: Случайно заблокирован весь сайт
Действия:
- НЕМЕДЛЕННО исправить
Disallow: /наDisallow: - Запросить повторное сканирование в Search Console
- Проверить индексацию через
site:домен.com - Отслеживать восстановление трафика
Ожидаемое время восстановления: 2-4 недели
Сценарий 2: Заблокированы CSS/JS
Сценарий 3: Синтаксические ошибки
Наиболее частые ошибки в robots.txt
Изучение типичных ошибок поможет избежать их на вашем проекте.
1. Случайная блокировка всего сайта
2. Пробелы в путях
3. Отсутствие слэша в начале пути
4. Блокировка важных для SEO ресурсов
5. Неправильное использование подстановочных символов
Реальный кейс ошибки:
Интернет-магазин электроники использовал:
Результат:
- Заблокировали
/admin/test/(правильно) - Заблокировали
/products/testing-equipment/(категория товаров!) - Заблокировали
/blog/product-testing-guide/(полезная статья!) - Потеря: 42% трафика за 3 недели
Правило: используйте слэши для ограничения области действия паттерна!
Частота ошибок (по данным аудитов):
- Отсутствие Sitemap — 68% сайтов
- Блокировка CSS/JS — 23% сайтов
- Синтаксические ошибки — 19% сайтов
- Случайная блокировка важных разделов — 12% сайтов
- Полная блокировка сайта — 3% сайтов (критично!)
Руководства по robots.txt от Яндекс и Google
Официальные источники:
Google:
- Основное руководство: Introduction to robots.txt
- Спецификация: Robots.txt Specifications
- Тестер robots.txt: Google Search Console
- URL Inspection Tool
Яндекс:
- Справка по robots.txt: yandex.ru/support/webmaster
- Управление обходом
- Clean-param
- Яндекс.Вебмастер: webmaster.yandex.ru
Официальная документация Google доступна на сайте developers.google.com в разделе Search Central, где подробно описаны все поддерживаемые директивы, синтаксис и best practices. Яндекс предоставляет подробные инструкции в справке для вебмастеров, где описаны стандартные и специфичные для Яндекса директивы.
Пример robots.txt для запрета всего сайта
Полная блокировка сайта от индексации требуется в ситуациях разработки, тестирования или технического обслуживания.
Полный запрет для всех поисковых систем:
Селективная блокировка:
Блокировка с исключениями:
Рекомендации при блокировке:
1. Добавьте пояснительный комментарий
2. Используйте дополнительную защиту
3. Для production-сайтов: разблокировка
Готовые решения для самых популярных CMS
Каждая CMS имеет свою структуру файлов и директорий, которые требуют специфичной настройки robots.txt для оптимальной индексации.
Пример robots.txt для WordPress
WordPress — самая популярная CMS в мире, но стандартный robots.txt требует доработки для SEO.
Базовая версия для WordPress:
Расширенная версия (для блогов):
Для интернет-магазина на WooCommerce:
Пример robots.txt для Bitrix
1C-Битрикс — популярная CMS в странах СНГ, требует особого внимания к системным директориям.
Оптимальный robots.txt для Битрикс:
Для интернет-магазина на Битрикс:
Пример robots.txt для MODX
MODX — гибкая CMS с чистой структурой URL.
Базовый robots.txt для MODX:
Пример robots.txt для OpenCart
Opencart используется для интернет-магазинов и требует особого внимания к параметрам URL.
Оптимальный robots.txt для Opencart:
Пример robots.txt для Drupal
Drupal — мощная CMS корпоративного уровня.
Базовый robots.txt для Drupal 9/10:
Онлайн-проверка файла robots.txt
Регулярная проверка файла robots.txt является обязательной частью технического SEO-аудита.
Официальные инструменты поисковых систем:
1. Google Search Console — Тестер robots.txt
- URL:
search.google.com/search-console - Путь: Прежние инструменты → Тестер robots.txt
- Функции: Проверка синтаксиса, тестирование URL, выявление ошибок
2. Яндекс.Вебмастер — Анализ robots.txt
- URL:
webmaster.yandex.ru - Путь: Индексирование → Файлы robots.txt
- Функции: Проверка доступности, анализ директив, история изменений
Специализированные SEO-инструменты:
3. Screaming Frog SEO Spider
- Тип: Десктопное приложение
- Возможности: Полное сканирование, выявление заблокированных URL, анализ конфликтов
4. Sitebulb
- Тип: Десктопный краулер
- Особенности: Визуализация правил, детальные предупреждения, сравнение версий
Чек-лист для проверки:
- Файл доступен по
https://домен/robots.txt(HTTP 200) - Размер файла меньше 500 КБ (Google) / 32 КБ (Яндекс)
- Кодировка UTF-8
- Нет синтаксических ошибок
- Критичные страницы НЕ заблокированы
- Административные разделы заблокированы
- CSS/JS разрешены для Googlebot
- Указан Sitemap
- Нет конфликтующих правил
- Clean-param настроен (для Яндекса)
Рекомендации по частоте проверки:
- Ежедневно: Крупные сайты с частыми обновлениями
- Еженедельно: Средние проекты
- После каждого деплоя: Обязательно!
- После изменений в структуре сайта: Критично
Заключение
Файл robots.txt — это фундаментальный инструмент управления индексацией сайта, который требует внимательного подхода и регулярного аудита. Правильная настройка robots.txt помогает эффективно распределять краулинговый бюджет, предотвращать индексацию технических и дублирующихся страниц, ускорять обнаружение важного контента поисковыми роботами, защищать административные разделы от случайного попадания в индекс и контролировать нагрузку на сервер со стороны ботов.
Ключевые правила для SEO-специалистов:
- Тестируйте перед публикацией — используйте инструменты Google и Яндекс
- Документируйте изменения — добавляйте комментарии с датами и причинами
- Делайте резервные копии — сохраняйте работающую версию перед правками
- Мониторьте регулярно — настройте автоматические проверки
- Учитывайте специфику CMS — используйте готовые решения из этой статьи
- Не полагайтесь только на robots.txt — комбинируйте с canonical, noindex, редиректами
Помните: Одна ошибка в robots.txt может стоить месяцев SEO-работы и значительных потерь трафика. Уделите этому файлу должное внимание — это инвестиция в стабильность вашего проекта.
Полезные ссылки:
Часто задаваемые вопросы
Если на сайте отсутствует robots.txt (возвращается 404), поисковые роботы будут индексировать весь доступный контент без ограничений. Это не критично для небольших сайтов, но для крупных проектов может привести к индексации технических страниц, дублей и перерасходу краулингового бюджета. Рекомендация: Всегда создавайте хотя бы минимальный robots.txt с указанием Sitemap.
Нет! Robots.txt — это всего лишь рекомендация для добросовестных роботов. Он не предотвращает доступ к страницам. Пользователи могут открыть любой URL напрямую, вредоносные боты игнорируют robots.txt. Для защиты используйте HTTP-аутентификацию, проверку прав доступа на уровне приложения, настройки веб-сервера и файрвол.
Robots.txt запрещает сканирование, но не индексацию. Если на страницу ведут внешние ссылки, Google может добавить ее в индекс, показывая только URL без описания. Решение: разрешите сканирование в robots.txt, добавьте на страницу <meta name="robots" content="noindex">, после исключения из индекса можно снова заблокировать в robots.txt.
Google кеширует robots.txt на срок до 24 часов, но может перепроверять чаще. Яндекс обновляет кеш каждые несколько часов. При значительных изменениях запросите повторное сканирование через Search Console или Вебмастер.
Нет, Google игнорирует директиву Crawl-delay. Управляйте скоростью через Google Search Console в разделе "Настройки → Скорость сканирования" или косвенно через улучшение времени ответа сервера. Для Яндекса директива Crawl-delay работает.
Напрямую — нет. Но косвенно может повлиять. Негативно: блокировка CSS/JS ухудшает рендеринг и снижает позиции. Позитивно: запрет дублей улучшает краулинговый бюджет и эффективность индексации.
Лучше использовать другие методы: канонические URL (rel="canonical"), редиректы 301, правильную внутреннюю перелинковку. Robots.txt подходит для блокировки технических дублей (параметры поиска, фильтры), но не для основного контента.
User-agent: Googlebot-Image Disallow: / # Это заблокирует индексацию изображений, # но страницы будут индексироваться обычным Googlebot Или для конкретной директории:
User-agent: Googlebot-Image User-agent: YandexImages Disallow: /private-images/ Google: Размер больше 500 КБ (игнорируется все после этого лимита). Яндекс: Размер больше 32 КБ. Решение: оптимизируйте правила, удалите избыточные, группируйте похожие директивы, используйте регулярные выражения.
Нет, для каждого домена/поддомена только один файл в корне. example.com/robots.txt — для основного домена, blog.example.com/robots.txt — отдельный для поддомена, example.com/blog/robots.txt — не будет работать!
# Блокировка основных AI-ботов (2024-2025) User-agent: GPTBot User-agent: ChatGPT-User User-agent: Google-Extended User-agent: CCBot User-agent: ClaudeBot User-agent: PerplexityBot Disallow: / Важно: Это не гарантирует защиту, так как AI-компании могут использовать другие методы сбора данных.
Возможные причины: кеш Google не обновился (подождите 24 часа), сервер временно недоступен, редирект вместо прямого ответа, проблемы с HTTPS-сертификатом. Проверка: curl -I https://ваш-сайт.com/robots.txt
Нет, robots.txt — это не контент для индексации. Наоборот, в robots.txt вы указываете путь к Sitemap: Sitemap: https://example.com/sitemap.xml
Подпишись на наш телеграм-канал!