Файл robots.txt
Файл robots.txt необходим для правильного сканирования и индексирования сайта роботами поисковых систем. Отсутствие файла или ошибки в нём могут негативно повлиять на ранжирование как отдельных веб-страниц, так и всего сайта.
Содержание
Видео по теме
Для чего нужен файл robots.txt?
Robots.txt позволяет запретить роботам сканировать определенные страницы, директории и отдельные файлы сайта.
Спецификация файла создана исключительно для роботов поисковых систем. При посещении сайта, робот в первую очередь обращается к данном файлу, и в случае его отсутствия действует согласно общему алгоритму сканирования сайта, иначе говоря – сканирует всё подряд. Инструкции, размещаемые в файле robots.txt, позволяют:
- устанавливать запрет на сканирование страниц сайта,
- устанавливать запрет на сканирование директорий сайта,
- устанавливать запрет на сканирование ресурсов страниц (картинок, JS-файлов, CSS-файлов и т. д.),
- комбинировать запреты и разрешения на сканирование,
- устанавливать запреты и разрешения для отдельных роботов,
- указать URL главного зеркала сайта,
- указать желаемый интервал сканирования страниц роботами,
- указать URL файлов Sitemap.
Простейший пример содержания robots.txt, которое равнозначно отсутствию самого файла:
# Нет ограничений на сканирование: User-agent: * Disallow:
В то же время следующий код означает противоположный результат:
# Полный запрет на сканирование: User-agent: * Disallow: /
Управление сканированием
Robots.txt позволяет упорядочить процесс сканирования страниц и файлов сайта, что способствует:
- снижению нагрузки на сервер,
- ускорению попадания нужных страниц в поисковую выдачу,
- исключению попадания ненужных страниц в поисковую выдачу,
- индексированию главного зеркала сайта.
Управление индексированием
Запрет на сканирование в robots.txt не гарантирует исключение данных страниц из поисковой выдачи (индексной базы), т. к. правила в файле носят рекомендательный характер:
Настройки файла robots.txt являются указаниями, а не прямыми командами. Googlebot и большинство других поисковых роботов следуют инструкциям robots.txt, однако некоторые системы могут игнорировать их.
Справка Google
Кроме того, инструкции в robots.txt не могут отменить входящие с внешних ресурсов ссылки, благодаря которым поисковые роботы могут попасть на те страницы сайта, которые формально запрещены для сканирования в файле:
Нельзя использовать файл robots.txt, чтобы скрыть страницу из результатов Google Поиска. На нее могут ссылаться другие страницы, и она все равно будет проиндексирована.
Справка Google
Для того, чтобы запретить поисковым роботам индексировать страницы, следует применять мета-тег Robots. Однако это не касается изображений:
Файл robots.txt может использоваться для скрытия изображений из результатов поиска. Однако они будут доступны посетителям, и их все ещё можно будет открыть с других страниц.
Справка Google
Таким образом, robots.txt позволяет управлять сканированием сайта и индексированием изображений, но не исключает индексирование прочих файлов.
Как создать файл robots.txt?
При создании необходимо соблюдать ряд общих требований поисковых систем к данному файлу для того, чтобы поисковые роботы могли следовать его инструкциям.
Требования к файлу
У всех поисковых систем есть общие требования к robots.txt, которые необходимо учитывать при его создании:
- файл должен быть в формате
txt
, - файл должен называться robots (в нижнем регистре),
- файл должен быть доступен по URL-адресу домен/robots.txt,
- при запросе файла сервер должен возвращать код 200 OK,
- размер файла не должен превышать 500 Кб.
При несоблюдении первых трех требований поисковые роботы просто не смогут найти файл из-за несоответствия формата/названия/URL-адреса файла правилам, установленным стандартом. Последние два пункта актуальны для роботов Яндекса:
Если файл не соответствует требованиям, сайт считается открытым для индексирования.
Яндекс.Помощь
Правильный robots.txt
Соблюдение вышеперечисленных требований позволяет обеспечить доступ к файлу поисковым роботам. Чтобы создать правильный robots.txt, необходимо хорошо изучить его синтаксис. В зависимости от сложности структуры сайта и его системы управления неправильно созданный файл может затруднить его сканирование и индексирование, а также способствовать увеличению нагрузки на сервер.
Процесс cоздания файла
Чтобы правильно сделать robots.txt для вашего сайта, следуйте следующему алгоритму действий:
- создайте простой текстовый файл формата
txt
, - переименуйте его в robots,
- внимательно изучите синтаксис стандарта,
- откройте созданный файл с помощью блокнота (или другого текстового редактора),
- настройте файл (заполните с учетом особенностей сайта),
- осуществите проверку файла,
- при отсутствии ошибок, скопируйте созданный файл в корневую директорию сайта,
- проверьте его доступность по URL-адресу домен/robots.txt.
Генератор robots.txt
Сразу следует упомянуть, что не существует онлайн-генераторов robots.txt, т. к. только создатель или оптимизатор, а именно реальный человек способен составить правила исключений по сканированию сайта для роботов. Структура файлов популярных CMS, как правило, уже имеют robots.txt, содержащий инструкции для роботов относительно базовой структуры сайта на данной CMS, запрещая различные системные директории. Однако при использовании отдельных компонентов появляется необходимость в кастомизации (редактировании) исходного файла вручную. Поэтому автоматически создать robots.txt онлайн не получится.
Синтаксис и директивы стандарта
Стандарт robots.txt отличается оригинальным синтаксисом. Существуют общие для всех роботов директивы (правила), а также директивы, понятные только роботам определенных поисковых систем.
Комментарии
Любая последовательность символов после символа # и заканчивающаяся переводом строки, является комментарием и не учитывается сканирующими программами. Чтобы не удалять определенные директивы, при необходимости их можно отключать, применяя комментирование с помощью символа #. Например:
# Комментарий: # User-agent: Yandex User-agent: *
Стандартные директивы
Директивами для robots.txt называются правила, состоящие из названия и значения (параметра), идущего после знака двоеточия. Например:
# Директива User-agent со значением Yandex: User-agent: Yandex
Регистр символов в названиях директив не учитывается.
Для большинства директив стандарта в качестве значения применяется URL-префикс (часть URL-адреса). Например:
User-agent: Yandex # URL-префикс в качестве значения: Disallow: /admin/
Регистр символов учитывается роботами при обработке URL-префиксов.
Директива User-agent
Правило User-agent
указывает, для каких роботов составлены следующие под ним инструкции.
Значения User-agent
В качестве значения директивы User-agent
указывается конкретный тип робота или символ *
. Например:
# Последовательность инструкций для робота YandexBot: User-agent: YandexBot Disallow: /
Основные типы роботов, указываемые в User-agent
:
- Yandex
- Подразумевает всех роботов Яндекса.
- YandexBot
- Основной индексирующий робот Яндекса
- YandexImages
- Робот Яндекса, индексирующий изображения.
- YandexMedia
- Робот Яндекса, индексирующий видео и другие мультимедийные данные.
- Подразумевает всех роботов Google.
- Googlebot
- Основной индексирующий робот Google.
- Googlebot-Image
- Робот Google, индексирующий изображения.
Регистр символов в значениях директивы User-agent не учитывается.
Обработка User-agent
Чтобы указать, что нижеперечисленные инструкции составлены для всех типов роботов, в качестве значения директивы User-agent
применяется символ *
(звездочка). Например:
# Последовательность инструкций для всех роботов: User-agent: * Disallow: /
Перед каждым последующим набором правил для определённых роботов, которые начинаются с директивы User-agent
, следует вставлять пустую строку.
User-agent: * Disallow: / User-agent: Yandex Allow: /
При этом нельзя допускать наличия пустых строк между инструкциями для конкретных роботов, идущими после User-agent
:
# Нужно: User-agent: * Disallow: /administrator/ Disallow: /files/ # Нельзя: User-agent: * Disallow: /administrator/ Disallow: /files/
Обязательно следует помнить, что при указании инструкций для конкретного робота, остальные инструкции будут им игнорироваться:
# Инструкции для робота YandexImages: User-agent: YandexImages Disallow: / Allow: /images/ # Инструкции для всех роботов Яндекса, кроме YandexImages User-agent: Yandex Disallow: /images/ # Инструкции для всех роботов, кроме роботов Яндекса User-agent: * Disallow:
Директива Disallow
Правило Disallow
применяется для составления исключающих инструкций (запретов) для роботов. В качестве значения директивы указывается URL-префикс. Первый символ /
(косая черта) задает начало относительного URL-адреса. Например:
# Запрет сканирования всего сайта: User-agent: * Disallow: / # Запрет сканирования конкретной директории: User-agent: * Disallow: /images/ # Запрет сканирования всех URL-адресов, начинающихся с /images: User-agent: * Disallow: /images
Применение директивы Disallow
без значения равносильно отсутствию правила:
# Разрешение сканирования всего сайта: User-agent: * Disallow:
Директива Allow
Правило Allow
разрешает доступ и применяется для добавления исключений по отношению к правилам Disallow
. Например:
# Запрет сканирования директории, кроме одной её поддиректории: User-agent: * Disallow: /images/ # запрет сканирования директории Allow: /images/icons/ # добавление исключения из правила Disallow для поддиректории
При равных значениях приоритет имеет директива Allow:
User-agent: * Disallow: /images/ # запрет доступа Allow: /images/ # отмена запрета
Директива Sitemap
Добавить ссылку на файл Sitemap в можно с помощью одноименной директивы.
В качестве значения директивы Sitemap
в указывается прямой (с указанием протокола) URL-адрес карты сайта:
User-agent: * Disallow: # Директив Sitemap может быть несколько: Sitemap: https://seoportal.net/sitemap-1.xml Sitemap: https://seoportal.net/sitemap-2.xml
Директива Sitemap
является межсекционной и может размещаться в любом месте robots.txt. Удобнее всего размещать её в конце файла, отделяя пустой строкой.
Следует учитывать, что robots.txt является общедоступным, и благодаря директиве Sitemap
злоумышленники могут получить доступ к новым страницам раньше поисковых роботов, что может повлечь за собой воровство контента.
Использование директивы Sitemap в robots.txt может повлечь воровство контента сайта.
Регулярные выражения
В robots.txt могут применяться специальные регулярные выражения в URL-префиксах с помощью символов *
и $
.
Символ /
Символ /
(косая черта) является разделителем URL-префиксов, отражая степень вложенности страниц. Важно понимать, что URL-префикс с символом /
на конце и аналогичный префикс, но без косой черты, поисковые роботы могут воспринимать как разные страницы:
# разные запреты: Disallow: /catalog/ # запрет для вложенных URL (/catalog/1), но не для /catalog Disallow: /catalog # запрет для /catalog и всех URL, начинающихся с /catalog, в том числе: # /catalog1 # /catalog1 # /catalog1/2
Символ *
Символ *
(звездочка) предполагает любую последовательность символов. Он неявно приписывается к концу каждого URL-префикса директив Disallow
и Allow
:
User-agent: Googlebot Disallow: /catalog/ # запрет всех URL-адресов, начинающихся с "/catalog/" Disallow: /catalog/* # то же самое
Символ *
может применяться в любом месте URL-префикса:
User-agent: Googlebot Disallow: /*catalog/ # запрещает все URL-адреса, содержащие "/catalog/": # /1catalog/ # /necatalog/1 # images/catalog/1 # /catalog/page.htm # и др. # но не /catalog
Символ $
Символ $
(знак доллара) применяется для отмены неявного символа *
в окончаниях URL-префиксов:
User-agent: Google Disallow: /*catalog/$ # запрещает все URL-адреса, заканчивающиеся символами "catalog/": # /1/catalog/ # но не: # /necatalog/1 # /necatalog # /catalog
Символ $
(доллар) не отменяет явный символ *
в окончаниях URL-префиксов:
User-agent: Googlebot Disallow: /catalog/* # запрет всех URL-адресов, начинающихся с "/catalog/" Disallow: /catalog/*$ # то же самое # Но: Disallow: /catalog/ # запрет всех URL-адресов, начинающихся с "/catalog/" Disallow: /catalog/$ # запрет только URL-адреса "/catalog/"
Директивы Яндекса
Роботы Яндекса способны понимать три специальных директивы:
- Host (устарела),
- Crawl-delay,
- Clean-param.
Директива Host
Директива Host является устаревшей и в настоящее время не учитывается. Вместо неё необходимо настраивать редирект на страницы главного зеркала.
Директива Crawl-delay
Если сервер сильно нагружен и не успевает отрабатывать запросы на загрузку, воспользуйтесь директивой Crawl-delay. Она позволяет задать поисковому роботу минимальный период времени (в секундах) между окончанием загрузки одной страницы и началом загрузки следующей.
Яндекс.Помощь
Правило Crawl-delay
следует размещать в группу правил, которая начинается с директивы User-Agent
, но после стандартных для всех роботов директив Disallow
и Allow
:
User-agent: * Disallow: Crawl-delay: 1 # задержка между посещениями страниц 1 секунда
В качестве значений Crawl-delay
могут использоваться дробные числа:
User-agent: * Disallow: Crawl-delay: 2.5 # задержка между посещениями страниц 2.5 секунд
Директива Clean-param
Директива Clean-param
помогает роботу Яндекса верно определить страницу для индексации, URL-адрес которой может содержать различные параметры, не влияющие на смысловое содержание страницы.
Если адреса страниц сайта содержат динамические параметры, которые не влияют на их содержимое (например: идентификаторы сессий, пользователей, рефереров и т. п.), вы можете описать их с помощью директивы Clean-param.
Яндекс.Помощь
В качестве значения правила Clean-param
указывается параметр и URL-префикс адресов, для которых не следует учитывать данный параметр. Параметр и URL-префикс должны быть разделены пробелом:
User-agent: * Disallow: # Указывает на отсутствие значимости параметра id в URL-адресе с index.htm # (например, в адресе seoportal.net/index.htm?id=1 параметр id не станет учитываться, # а в индекс, вероятно, попадёт страница с URL-адресом seoportal.net/index.htm): Clean-param: id index.htm
Для указания 2-х и более незначительных параметров в одном правиле Clean-param
применяется символ &
:
User-agent: * Disallow: # Указывает на отсутствие значимости параметров id и num в URL-адресе с index.htm Clean-param: id&num index.htm
Директива Clean-param
может быть указана в любом месте robots.txt. Все указанные правила Clean-param
будут учтены роботом Яндекса:
User-agent: * Allow: / # Для разных страниц с одинаковыми параметрами в URL-адресах: Clean-param: id index Clean-param: id admin
Настройка файла robots.txt
Правильная настройка файла позволит избежать ошибок при индексировании сайта, а также поможет поисковым роботам правильно его сканировать.
Как правильно настроить robots.txt?
Большинство сайтов, в зависимости от используемой CMS, имеет ряд страниц с одинаковым контентом, содержащих различные параметры в URL-адресах. Кроме того, содержание страниц по одинаковым URL-адресам иногда может меняться в зависимости от определённых условий. Такие страницы необходимо оградить от индексирования и сканирования. Чтобы облегчить работу поисковым роботам в отношении вашего сайта, нужно грамотно ограничить доступ к следующим страницам:
- Системные директории и файлы
- Каждая система управления имеет системные директории с файлами, которые обрабатываются на сервере. Поисковым роботам не следует их сканировать.
- Страница виртуальной корзины
- Данная страница имеет место быть практически в каждом интернет-магазине. Содержание виртуальной корзины постоянно меняется, поэтому следует запретить к ней доступ.
- Страница профиля
- Если поддерживает возможность авторизации пользователей, следует запретить доступ роботов к странице профиля.
- Страницы пагинации
- В большинстве случаев, страницы пагинации имеют один URL-адрес с различными параметрами. В зависимости от обстоятельств, страницы с параметрами запрещаются в robots.txt во избежание индексирования дублей.
- Страницы для печати
- Не имеет смысла индексировать страницы для печати, если существует их веб-альтернатива, т. к. они будут дублями в отношении контента.
- Страницы результатов поиска по сайту
- Однозначно следует запрещать индексирование страницы результатов поиска по сайту.
- Страницы с параметрами фильтрации
- Необходимо исключить индексирование одного URL с разными параметрами.
- Дубли страниц
- Многие CMS генерируют страницы с одинаковым контентом, доступные по разным URL-адресам. Их также следует оградить от индексирования.
Как запретить индексацию в robots.txt?
На примерах разберем настройку запретов индексации.
Как закрыть сайт от индексации?
Чтобы запретить индексацию всего сайта применяется следующая настройка:
# полный запрет индексации всего сайта: User-agent: * Disallow: /
Как запретить индексацию страницы?
Чтобы запретить индексацию конкретной страницы нужно настроить файл следующим образом:
# запрет индексирования определённых страниц: User-agent: * Disallow: /page/$ Disallow: /category/page$ Disallow: /category/page.htm$ Disallow: /page$
Как запретить индексацию папки?
Чтобы запретить индексацию папки с вложенными директориями и файлами применяются следующие настройки:
# запрет индексирования директорий: User-agent: * Disallow: /page/ Disallow: /category/page/ # При этом индексирование страниц без "/" на конце (/page) не воспрещается
Запрет индексации каталога вместе с исходной страницей:
User-agent: * Disallow: /page/ Disallow: /page$
Как запретить индексацию страниц с параметрами?
Чтобы запретить индексацию всех страниц, содержащих параметры (например: seoportal.net?tp=1), достаточно следующего исключающего правила:
# запрет индексирования всех страниц с параметрами: User-agent: * Disallow: /*?
Запрет индексации страниц с определёнными расширениями
Чтобы запретить индексацию всех страниц с конкретными расширениями, правила применяются в следующем виде:
# запрет индексирования всех страниц с определёнными расширениями: User-agent: * Disallow: /*.html # запрет для HTML-страниц Disallow: /*.php # запрет для PHP-страниц
Как разрешить индексацию в robots.txt?
Следующие условия означают, что сайт открыт для индексации и сканирования:
- если файл отсутствует или он пустой,
- если применяются указанные ниже настройки.
User-agent: * Disallow:или
User-agent: * Allow: /
Разрешать индексирование отдельных файлов и папок приходится в исключительных случаях, когда родительская папка настроена на запрет:
User-agent: * Disallow: /files/ # запрет индексирования папки Allow: /files/images/ # разрешение индексирования подпапки
Как прописать HTTPS в robots.txt?
Если на сайте используется SSL-сертификат и главное зеркало сайта доступно по протоколу HTTPS, то указать на это можно с помощью директивы Host
следующим образом:
User-agent: * Disallow: # Лучше добавлять директиву Host
в конец файла, после всех групп правил: Host: https://seoportal.net
Если протокол https не применяется для главного зеркала, то протокол в директиве Host
указывать не требуется:
User-agent: * Disallow: Host: seoportal.net
Как указать Sitemap в robots.txt?
Чтобы добавить Sitemap (сообщить поисковым роботам о существовании файла карты сайта) применяется директива Sitemap
:
User-agent: * Disallow: # Как и Host, директиву Sitemap лучше указывать после всех наборов правил: Sitemap: https://seoportal.net/sitemap.xml
Важное примечание
В качестве завершения напомним, что настройка запретов индексации в robots.txt не гарантируют непопадание данных страниц и каталогов в индекс, т. к. роботы могут попадать на закрытые в файле страницы по ссылкам с других ресурсов. Для того, чтобы полностью исключить возможность индексирования страниц и каталогов, следует использовать дополнительные настройки (например, мета-тег Robots).
Как проверить файл robots.txt?
Для проверки на правильность можно воспользоваться специальными инструментами-анализаторами, которые нам любезно предоставляют ведущие поисковые системы рунета.
Анализ robots.txt онлайн в Яндекс
Проверить правильность файла можно с помощью инструмента сервиса Яндекс.Вебмастер. Авторизация не обязательна.
Преимущества анализатора Яндекса
- Проверка по коду
Можно скопировать текст файла, не указывая ссылку на него. Это удобно, когда файл еще не размещен в интернете.
- Проверка по URL-адресу сайта
Если файл уже размещен в интернете, для проверки достаточно указать URL сайта.
- Проверка доступности URL-адресов
Позволяет проверять доступность URL-адресов для роботов, в т. ч. относительных, если проверяемый сайт не указан.
Единственным значимым недостатком анализатора от Яндекса является необходимость авторизации.
Как проверить файл в Яндексе?
Проверять robots.txt в инструменте от Яндекса можно с указанием URL-адреса сайта, или просто введя код файла в текстовую область для проверки.
Проверка не размещённого в интернете файла
Рассмотрим процесс проверки robots.txt с помощью инструмента от ПС Яндекс без указания URL-адреса сайта:
- Перейдите на страницу инструмента Анализ robots.txt:
- Скопируйте код файла, вставьте в текстовую область и нажмите Проверить:
- Произойдет анализ кода, после чего внизу будут отображены результаты:
- Если код будет содержать ошибки или предупреждения, то в результатах анализа будут соответствующие уведомления:
Проверка файла для определённого сайта
Чтобы проверить размещённый в интернете для конкретного сайта robots.txt с помощью анализатора Яндекса, перейдём к вышеописанному пункту 2 и, вместо ввода кода в текстовую область, указываем доменное имя проверяемого сайта в соответствующее текстовое поле и жмем стрелочку напротив него:
После этого в тестовой области «Текст robots.txt» отобразится код файла для указанного сайта. Далее следует действовать, как описано выше.
Проверка доступности URL-адресов для роботов
С помощью анализатора можно проверить, какие URL-адреса попадают под запрет.
Анализ robots.txt онлайн в Google
Инструмент проверки правильности файлов robots.txt от Google менее удобен, т. к. требуется авторизация в сервисе Search Console и сайт, подтверждённый в данном сервисе.
Преимущества анализатора от Google
- Автоматическая проверка
После добавления сайта файл проверяется автоматически. Отчет появляется на странице анализатора.
- Позволяет скачивать файл после редактирования
Нельзя вносить изменения в robots.txt, размещённый на сервере, но можно вносить правки в редакторе, скачивать файл и заменять его на сервере.
- Позволяет отправлять запрос в Google на обновление robots.txt
После обновления файла можно сообщить Google об этом.
- Проверка доступности URL-адресов
Позволяет проверять доступность URL-адресов для роботов с возможностью выбора типа робота.
Недостатки анализатора от Google
- Требуется регистрация
Необходима регистрация в сервисе Google Search Console.
- Проверка только размещенных в интернете файлов robots.txt
Нельзя проверить код, просто скопировав его, или загрузив файл с локального компьютера.
- Проверка файла только для подтверждённого сайта
Нельзя проверить файл для сайта, не подтверждённого в Search Console.
Как проверить robots.txt в Google?
Рассмотрим процесс проверки файла в Search Console.
Проверка файла для определённого сайта
- Перейдите на главную страницу сервиса Google Search Console.
Требуется авторизация в поисковой системе Google. Если у Вас нет аккаунта, то необходимо его создать.
- Выберите требуемый сайт.
Выберите сайт, для которого Вы желаете проверить robots.txt. Если сайта нет – необходимо пройти процедуру добавления сайта.
- В левой колонке кликните Сканирование.
Развернутся дополнительные элементы навигации.
- Перейдите по ссылке Инструмент проверки файла robots.txt.
Вы попадете на страницу соответствующего инструмента. Если для текущего сайта существует robots.txt, размещённый в корне сайта, то на странице будут отображаться:
- дата последней проверки файла,
- статус ответа сервера при запросе файла,
- размер файла,
- содержимое файла,
- ошибки и предупреждения.
Проверка доступности URL-адресов
- в нижней части страницы инструмента введите относительный URL страницы для проверки,
- выберите тип робота Google, от лица которого будет проводиться проверка,
- кликните Проверить,
- статус отобразиться на месте кнопки Проверить.
Дополнительные возможности
Анализатор robots.txt от Google предоставляет дополнительные возможности, доступные по кнопке Отправить. После клика по кнопке откроется модальное окно с 3-мя дополнительными возможностями оносительно файла для текущего сайта:
- Скачайте обновленный код.
Клик по соответствующей кнопке осуществит скачивание файла с кодом, который отображался в редакторе. Эта возможность позволяет осуществить правильную настройку robots.txt непосредственно в анализаторе Google, после чего скачать готовый файл и заменить его на сервере.
- Проверьте добавленную версию.
Клик по соответствующей кнопке осуществит переход к robots.txt текущего сайта. Позволяет проверить наличие файла на сайте.
- Отправьте в Google запрос на обновление.
Клик по соответствующей кнопке позволяет сообщить Google о том, что файл обновлен, и роботам следует обратить внимание на новые правила.