Файл 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. Используйте проверенные инструменты вебмастеров для валидации настроек и регулярно просматривайте статистику сканирования, чтобы вовремя корректировать правила.