Файл robots.txt — один из ключевых инструментов SEO, позволяющий управлять индексацией вашего веб‑проекта поисковыми роботами. Корректная настройка robots.txt помогает исключить из индекса лишние страницы, закрыть служебные директории и подсказать поисковикам, какие части сайта следует сканировать в первую очередь. В этой статье мы рассмотрим, как правильно настроить robots.txt при использовании различных веб-серверов (Apache, Nginx, Nginx + PHP-FPM), а также приведём примеры файлов robots.txt для популярных CMS: 1С-Битрикс, WordPress, OpenCart, Joomla. Кроме того, разберёмся, как настроить robots.txt на уровне доменов и субдоменов.

1. Общие сведения о файле robots.txt
1.1. Зачем нужен robots.txt?
- Указывает поисковым ботам, к каким разделам сайта стоит обращаться, а какие лучше пропустить.
- Позволяет закрыть служебные URL, личные данные пользователей или системные файлы.
- Помогает оптимизировать краулинг сайта (особенно для крупных проектов).
1.2. Структура robots.txt
- Файл обычно располагают в корне сайта — по адресу
example.com/robots.txt. - Команды могут содержать директивы
User-agent,Disallow,Allow,Sitemapи т.д.User-agent: *означает правила для всех поисковых роботов.Disallow: /folder/запрещает индексировать директориюfolder.Allow: /folder/file.htmlдаёт разрешение индексировать конкретный файл в запрещённой ранее папке.Sitemap: https://example.com/sitemap.xmlуказывает на карту сайта.
2. Настройка robots.txt на разных веб-серверах
2.1. Apache (через .htaccess)
На серверах с Apache традиционно управление доступом к файлам и папкам часто делают через .htaccess. Однако для корректного размещения robots.txt достаточно:
- Убедиться, что в корне вашего сайта лежит файл
robots.txt. - Проверить права доступа к файлу (обычно достаточно
644). - Убедиться, что файл доступен по прямой ссылке
http(s)://example.com/robots.txt.
Если вы используете мультисайтовую конфигурацию или у вас несколько доменов, стоит разместить отдельный файл robots.txt в корневой директории каждого из сайтов (или прописать настройки в .htaccess, позволяющие выдавать разные версии robots.txt для каждого домена/поддомена).
Пример фрагмента .htaccess, если нужно перенаправить запросы к robots.txt в определённую директорию:
RewriteEngine On
RewriteRule ^robots\.txt$ path/to/folder/robots.txt [L]
Однако чаще всего достаточно просто положить файл robots.txt в корень каждого домена.
2.2. Nginx
В Nginx нет .htaccess, поэтому любые перенаправления и разрешения прописываются в конфигурационных файлах server { ... }.
Простейшая настройка:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
location = /robots.txt {
# Задаём mime-тип, можно добавить кэширование
types { text/plain txt; }
default_type text/plain;
}
...
}
Здесь, если в папке /var/www/example.com лежит robots.txt, он будет корректно выдаваться при обращении к http://example.com/robots.txt.
Если необходимо динамически генерировать robots.txt или хранить его в другой папке, используйте что-то вроде:
location = /robots.txt {
alias /var/www/custom-configs/robots.txt;
}
Таким образом, вы явно указываете другое местоположение файла.
2.3. PHP FastCGI (Nginx + PHP-FPM)
Если вы используете связку Nginx + PHP-FPM, структура конфигурационных файлов, как правило, похожа на обычный Nginx, однако может возникнуть ситуация, когда все запросы перенаправляются на PHP-скрипты (например, в CMS с ЧПУ).
Чтобы корректно выдавать robots.txt, добавьте исключение в конфигурации:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
# Исключение для статичного файла robots.txt
location = /robots.txt {
try_files /robots.txt =404;
# или используйте alias:
# alias /var/www/example.com/robots.txt;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Главное — убедиться, что robots.txt обрабатывается как статический файл, а не отправляется в PHP.
3. Настройка robots.txt на уровне доменов и субдоменов
Если у вас есть несколько доменов или поддоменов — например, example.com, blog.example.com, shop.example.com — и вы хотите настроить разные версии robots.txt для каждого из них, необходимо:
- Создать отдельные конфигурации серверных блоков (на Nginx) или VirtualHost (на Apache).
- В корне каждого сайта/поддомена разместить свой файл
robots.txt.- Для
example.com—/var/www/example.com/robots.txt - Для
blog.example.com—/var/www/blog.example.com/robots.txt - Для
shop.example.com—/var/www/shop.example.com/robots.txt
- Для
Таким образом, поисковый робот, обращаясь к blog.example.com/robots.txt, получит уникальный контент, не конфликтующий с example.com/robots.txt.
4. Примеры файлов robots.txt для популярных CMS
Ниже приведены базовые примеры robots.txt для самых распространённых CMS. Обратите внимание, что конкретные настройки могут отличаться в зависимости от структуры вашего проекта и используемых модулей.
4.1. 1С-Битрикс
1С-Битрикс хранит свои служебные файлы и папки, например, в /bitrix/, /upload/, /local/.
User-agent: *
Disallow: /bitrix/
Disallow: /local/
Disallow: /upload/
Disallow: /personal/
Disallow: /auth/
# Разрешаем индексацию публичных файлов из /upload/ если нужно (но лучше закрывать)
# Allow: /upload/catalog_images/
# Если используете ЧПУ и файлы .php не должны индексироваться напрямую
Disallow: /*.php$
# Указываем путь к карте сайта, если используете автогенерацию
Sitemap: https://example.com/sitemap.xml
Обратите внимание, что некоторые каталоги в Битрикс могут содержать публично доступные изображения или файлы (например, папка /upload/), и вы можете selectively разрешать определённые поддиректории, если это важно для индексации.
4.2. WordPress
WordPress типично имеет структуру: /wp-admin/, /wp-includes/, /wp-content/ и т.д.
User-agent: *
# Закрываем административную часть
Disallow: /wp-admin/
Disallow: /wp-includes/
# Иногда также закрывают каталог плагинов и темы
Disallow: /wp-content/plugins/
Disallow: /wp-content/themes/
# Разрешаем uploads (изображения, медиа)
Allow: /wp-content/uploads/
# Дополнительно можно закрывать страницы с параметрами
# Disallow: /*?*
Sitemap: https://example.com/sitemap.xml
Если у вас установлен плагин для SEO (например, Yoast SEO или All in One SEO Pack), он часто сам генерирует robots.txt. Убедитесь, что правила не конфликтуют с вашими ручными настройками.
4.3. OpenCart
OpenCart имеет структуру /admin/, /system/, /catalog/, /image/ и т.д.
User-agent: *
Disallow: /admin/
Disallow: /system/
Disallow: /storage/
Disallow: /catalog/controller/
Disallow: /catalog/language/
Disallow: /catalog/model/
Disallow: /catalog/view/javascript/
Disallow: /catalog/view/theme/
Disallow: /image/cache/
Disallow: /*?route=
# Если нужно, можно закрыть результат поиска
Disallow: /index.php?route=product/search
# Или любую другую динамическую страницу
Sitemap: https://example.com/sitemap.xml
4.4. Joomla
Joomla размещает файлы в /administrator/, /components/, /modules/, /templates/ и т.д.
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /layouts/
Disallow: /libraries/
Disallow: /logs/
Disallow: /modules/
Disallow: /plugins/
Disallow: /tmp/
# Разрешаем мультимедийные файлы из /images/ (папка для хранения медиа)
Allow: /images/
Sitemap: https://example.com/sitemap.xml
5. Рекомендации и часто встречающиеся ошибки
- Ошибка 404 на файле
robots.txt: Убедитесь, что файл доступен по URLhttp(s)://example.com/robots.txt. Если поисковый бот получит 404, он будет сканировать сайт без учёта ваших правил. - Неправильные пути или синтаксис:
Важно указывать завершающий слэш для директорий и правильно использовать маски.
Disallow: /folder/закрывает весь каталогfolder.Disallow: /folderбез завершающего слэша будет действовать только на URL, начинающиеся ровно на/folder, но не затронет/folder/images/.
- Слишком жёсткие запреты:
Можно случайно закрыть весь сайт (например,
Disallow: /) и потерять трафик из поисковиков. - Отсутствие директивы
Sitemap: Рекомендуется явно указывать карту сайта черезSitemap:— это упрощает жизнь поисковым роботам и ускоряет индексацию. - Дублирование правил:
Если вы используете генерируемый CMS файл и ручной (статический)
robots.txt, могут возникать противоречия. Всегда проверяйте, какие директивы реально выдаются при открытииrobots.txtв браузере.
6. Проверка правильности работы
После настройки robots.txt имеет смысл протестировать файл с помощью инструментов вебмастеров поисковых систем:
- Google Search Console: раздел «Проверка файла robots.txt».
- Яндекс.Вебмастер: есть аналогичный инструмент для проверки.
Также можно просто перейти в браузере по адресу http(s)://example.com/robots.txt и посмотреть содержимое файла — если всё корректно, вы увидите нужные директивы.
Заключение
При настройке robots.txt важно учесть особенности вашего веб-сервера и структуры сайта. Для разных доменов и субдоменов лучше создавать отдельные файлы robots.txt (и в конфигурации VirtualHost или Nginx server block прописывать пути к ним). При использовании различных CMS — 1С-Битрикс, WordPress, OpenCart, Joomla — убедитесь, что все служебные директории закрыты от индексации, а публичные файлы (изображения, CSS, JS) доступны. Не забудьте указать путь к актуальной карте сайта.
Грамотный robots.txt помогает поисковым роботам корректно сканировать сайт и не тратить ресурс на ненужные страницы, что положительно сказывается на SEO. Используйте проверенные инструменты вебмастеров для валидации настроек и регулярно просматривайте статистику сканирования, чтобы вовремя корректировать правила.