Как настроить смартфоны и ПК. Информационный портал

Что пишется в файле robot txt. Формат и расположение

Как настроить корректную индексацию сайта поисковыми роботами? Как закрыть доступ сканирующих роботов к техническим файлам сайта?

Файл robots.txt ограничивает доступ поисковых роботов к файлам на сервере - в файле написаны инструкции для сканирующих роботов. Поисковый робот проверяет возможность индексации очередной страницы сайта - есть ли подходящее исключение. Чтобы поисковые роботы имели доступ к robots.txt, он должен быть доступен в корне сайта по адресу mysite.ru/robots.txt .

Пример полного доступа на индексацию сайта без ограничений:

User-agent: *
Allow: /

Применение в SEO

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

Файл robots.txt позволяет закрыть от индексации дубли страниц, технические файлы, страницы фильтрации и поиска. Любая страница на сайте может быть закрыта от индексации, если на это есть необходимость..

Правила синтаксиса robots.txt

Логика и структура файла robots.txt должны строго соблюдаться и не содержать лишних данных:

  • Любая новая директива начинается с новой строки.
  • В начале строки не должно быть пробелов.
  • Все значения одной директивы должны быть размещены на этой же строке.
  • Не использовать кавычки для параметров директив.
  • Не использовать запятые и точки с запятыми для указания параметров.
  • Все комментарии пишутся после символа #.
  • Пустая строка обозначает конец действия текущего User-agent.
  • Каждая директива закрытия индексации или открытия содержит только один параметр.
  • Название файла должно быть написано прописными буквами, файлы Robots.txt или ROBOTS.TXT являются другими файлами и игнорируются поисковыми роботами.
  • Если директива относится к категории, то название категории оформляется слешами "/categorya/".
  • Размер файла robots.txt не должен превышать 32 кб, иначе он трактуется как разрешающий индексацию всего.
  • Пустой файл robots.txt считается разрешающим индексацию всего сайта.
  • При указании нескольких User-agent без пустой строки между ними обрабатываться будет только первая

Проверка robots.txt

Поисковые системы Яндекс и Google дают возможность проверить корректность составления robots.txt:

  • В Вебмастер.Яндекс - анализ robots.txt .
  • В Google Search Console - ссылка , необходимо сначала добавить сайт в систему.

Примеры настройки robots.txt

Первой строкой в robots.txt является директива, указывающая для какого робота написаны исключения.

Директива User-agent

# Все сканирующие роботы
User-agent: *
# Все роботы Яндекса
User-agent: Yandex
# Основной индексирующий робот Яндекса
User-agent: YandexBot
# Все роботы Google
User-agent: Googlebot

Все директивы следующие ниже за User-agent распространяют свое действие только на указанного робота. Для указания данных другому роботу следует еще раз написать директиву User-agent. Пример с несколькими User-agent:

Использование нескольких User-agent

# Будет использована основным роботом Яндекса
User-agent: YandexBot
Disallow: *request_* # Будет использована всеми роботами Google
User-agent: Googlebot
Disallow: *elem_id* # Будет использована всеми роботами Mail.ru
User-agent: Mail.Ru
Allow: *SORT_*

Сразу после указания User-agent следует написать инструкции для выбранного робота. Нельзя указывать пустые сроки между командами в robots.txt, это будет не правильно понято сканирующими роботами.

Разрешающие и запрещающие директивы

Для запрета индексации используется директива "Disallow", для разрешения индексации "Allow":

User-agent: *
Allow: /abc/
Disallow: /blog/

Указано разрешение на индексацию раздела /abc/ и запрет на индексацию /blog/. По умолчанию все страницы сайта разрешены на индексацию и не нужно указывать для всех папок директиву Allow. Директива Allow необходима при открытии на индексацию подраздела. Например открыть индексацию для подраздела с ужатыми изображениями, но не открывать доступ к другим файлам в папке:

User-agent: *
Disallow: /upload/
Allow: /upload/resize_image/

Последовательность написания директив имеет значение. Сначала закрывается все папка от индексации, а затем открывается её подраздел.

Запрещение индексации - Disallow

Директива для запрета на сканирование - Disallow, индексация запрещается в зависимости от параметров, указанных в директиве.

Полный запрет индексации

User-agent: *
Disallow: /

Сайт закрывается от сканирования всех роботов.

Существуют специальные символы "*" и "$", которые позволяют производить более тонкое управление индексацией:

Disallow: /cat*
Disallow: /cat

Символ звездочка означает любое количество любых символов, которые могут идти следом. Вторая директива имеет тот же смысл.

Disallow: *section_id*

Запрещает индексацию всех Url, где встречается значение внутри звездочек.

Disallow: /section/

Закрывает от индексации раздел и все вложенные файлы и подразделы.

Разрешение индексации - Allow

Задача директивы Allow открывать для индексации url, которые подходят под условие. Синтаксис Allow сходен с синтаксисом Disallow.

User-agent: *
Disallow: /
Allow: /fuf/

Весь сайт закрыт от индексации, кроме раздел /fuf/.

Директива Host

Данная директива нужна для роботов поисковой системы Яндекс. Она указывает главное зеркало сайта. Если сайт доступен по нескольким доменам, то это позволяет поисковой системе определить дубли и не включать их в поисковый индекс.

User-agent: *
Disallow: /bitrix/
Host: mysite.ru

В файле robots.txt директиву Host следует использовать только один раз, последующие указания игнорируются.

Если сайт работает по защищенному протоколу https, то следует указывать домен с полным адресом:

User-agent: *
Disallow: /bitrix/
Host: https://domain.ru

Директива Sitemap

Для ускорения индексации страниц сайта поисковым роботам можно передать карту сайта в формате xml. Директива Sitemap указывает адрес, по которому карта сайта доступна для скачивания.

User-agent: *
Disallow: /bitrix/
Sitemap: http://domain.ru/sitemap.xml

Исключение страниц с динамическими параметрами

Директива Clean-param позволяет бороться с динамическими дублями страниц, когда содержимое страницы не меняется, но добавление Get-параметра делает Url уникальным. При составлении директивы сначала указывается название параметра, а затем область применения данной директивы:

Clean-param: get1[&get2&get3&get4&..&getN] [Путь]

Простой пример для страницы http://domain.ru/catalog/?&get1=1&get2=2&get3=3. Директива будет иметь вид:

Clean-param: get1&get2&get3 /catalog/

Данная директива будет работать для раздела /catalog/, можно сразу прописать действие директивы на весь сайт:

Clean-param: get1&get2&get3 /

Снижение нагрузки - Crawl-delay

Если сервер не выдерживает частое обращение поисковых роботов, то директива Crawl-delay поможет снизить нагрузку на сервер. Поисковая система Яндекс поддерживает данную директиву с 2008 года .

User-agent: *
Disallow: /search/
Crawl-delay: 4

Поисковый робот будет делать один запрос, затем ждать 4 секунды и снова делать запрос.

Типовой robots.txt для сайта на Bitrix

В заключении полноценный файл robots.txt для системы 1С-Битрикс, который включает все типовые разделы:

User-agent: *
Disallow: /bitrix/
Disallow: /admin/
Disallow: /auth/
Disallow: /personal/
Disallow: /cgi-bin/
Disallow: /search/
Disallow: /upload/
Allow: /upload/resize_cache/
Allow: /upload/iblock/
Disallow: *bxajaxid*
Sitemap: http://domain.ru/sitemap.xml
Host: domain.ru

Одним из этапов оптимизации сайта для поисковиков является составление файла robots.txt. С помощью данного файла можно запрещать некоторым или всем поисковым роботам индексировать ваш сайт или его определенные части, не предназначенные для индексации. В частности можно запретить индескирование дублирующегося контента такого как версии страниц для печати.

Поисковые роботы перед началом индексации всегда обращаются к файлу robots.txt в корневом каталоге вашего сайта, например, http://site.ru/robots.txt, чтобы знать какие разделы сайта роботу индексировать запрещено. Но даже если вы не собираетесь ничего запрещать, то данный файл все равно рекомендуется создать.

Как видно по расширению robots.txt – это текстовый файл. Для создания или редактирования данного файла лучше использовать самые простые текстовые редакторы наподобие Блокнот (Notepad). robots.txt должен быть размещен в корневом каталоге сайта и имеет собственный формат, который мы рассмотрим ниже.

Формат файла robots.txt

Файл robots.txt должен состоять как минимум из двух обязательных записей. Первой идет директива User-agent указывающая, какой поисковый робот должен следовать идущим дальше инструкциям. Значением может быть имя робота (googlebot, Yandex, StackRambler) или символ * в случае если вы обращаетесь сразу ко всем роботам. Например:

User-agent: googlebot

Название робота вы можете найти на сайте соответствующего поисковика. Дальше должна идти одна или несколько директив Disallow. Эти директивы сообщают роботу, какие файлы и папки индексировать запрещено. Например, следующие строки запрещают роботам индексировать файл feedback.php и каталог cgi-bin:

Disallow: /feedback.php Disallow: /cgi-bin/

Также можно использовать только начальные символы файлов или папок. Строка Disallow: /forum запрещает индексирование всех файлов и папок в корне сайта, имя которых начинается на forum, например, файл http://site.ru/forum.php и папку http://site.ru/forum/ со всем ее содержимым. Если Disallow будет пустым, то это значит, что робот может индексировать все страницы. Если значением Disallow будет символ /, то это значит что весь сайт индексировать запрещено.

Для каждого поля User-agent должно присутствовать хотя бы одно поле Disallow. То-есть, если вы не собираетесь ничего запрещать для индексации, то файл robots.txt должен содержать следующие записи:

User-agent: * Disallow:

Дополнительные директивы

Кроме регулярных выражений Яндекс и Google разрешают использование директивы Allow, которая является противоположностью Disallow, то-есть указывает какие страницы можно индексировать. В следующем примере Яндексу запрещено индексировать все, кроме адресов страниц начинающихся с /articles:

User-agent: Yandex Allow: /articles Disallow: /

В данном примере директиву Allow нужно прописывать перед Disallow, иначе Яндекс поймет это как полный запрет индексации сайта. Пустая директива Allow также полностью запрещает индексирование сайта:

User-agent: Yandex Allow:

равнозначно

User-agent: Yandex Disallow: /

Нестандартные директивы нужно указывать только для тех поисковиков, которые их поддерживают. В противном случае робот не понимающий данную запись может неправильно обработать ее или весь файл robots.txt. Более подробно о дополнительных директивах и вообще о понимании команд файла robots.txt отдельным роботом можно узнать на сайте соответствующей поисковой системы.

Регулярные выражения в robots.txt

Большинство поисковых систем учитывают только явно указанные имена файлов и папок, но есть и более продвинутые поисковики. Робот Google и робот Яндекса поддерживают использование простых регулярных выражений в robots.txt, что значительно уменьшает количество работы для вебмастеров. Например, следующие команды запрещают роботу Google индексировать все файлы с расширением.pdf:

User-agent: googlebot Disallow: *.pdf$

В приведенном примере символ * – это любая последовательность символов, а $ указывает на окончание ссылки.

User-agent: Yandex Allow: /articles/*.html$ Disallow: /

Приведенные выше директивы разрешают Яндексу индексировать только находящиеся в папке /articles/ файлы с расширением ".html". Все остальное запрещено для индексации.

Карта сайта

В файле robots.txt можно указывать расположение XML-карты сайта:

User-agent: googlebot Disallow: Sitemap: http://site.ru/sitemap.xml

Если у вас очень большое количество страниц на сайте и вам пришлось разбить карту сайта на части, то в файле robots.txt нужно указывать все части карты:

User-agent: Yandex Disallow: Sitemap: http://mysite.ru/my_sitemaps1.xml Sitemap: http://mysite.ru/my_sitemaps2.xml

Зеркала сайта

Как вы знаете обычно один и тот же сайт может быть доступен по двум адресам: как с www, так и без него. Для поискового робота site.ru и www.site.ru это разные сайты, но с одинаковым содержимым. Они называются зеркалами.

Из-за того что на страницы сайта есть ссылки как с www так и без, то вес страниц может разделиться между www.site.ru и site.ru. Чтобы этого не происходило поисковику нужно указать главное зеркало сайта. В результате "склеивания" весь вес будет принадлежать одному главному зеркалу и сайт сможет занять более высокую позицию в поисковой выдаче.

Указать основное зеркало для Яндекса можно прямо в файле robots.txt с помощью директивы Host:

User-agent: Yandex Disallow: /feedback.php Disallow: /cgi-bin/ Host: www.site.ru

После склейки зеркалу www.site.ru будет принадлежать весь вес и он будет занимать более высокую позицию в поисковой выдаче. А site.ru поисковик вообще не будет индексировать.

Для остальных поисковиков выбором главного зеркала является серверный постоянный редирект (код 301) с дополнительных зеркал на основное. Делается это с помощью файла.htaccess и модуля mod_rewrite. Для этого ложим в корень сайта файл.htaccess и пишем туда следующее:

RewriteEngine On Options +FollowSymlinks RewriteBase / RewriteCond %{HTTP_HOST} ^site.ru$ RewriteRule ^(.*)$ http://www.site.ru/$1

В результате все запросы с site.ru будут идти на www.site.ru, то-есть site.ru/page1.php будет перенаправляться на www.site.ru/page1.php.

Метод с редиректом будет работать для всех поисковых систем и браузеров, но все же рекомендуется добавлять для Яндекса директиву Host в файл robots.txt.

Комментарии в robots.txt

В файл robots.txt также можно добавлять комментарии – они начинаются с символа # и заканчиваются переводом строки. Комментарии желательно писать в отдельной строке, а лучше вообще их не использовать.

Пример использования комментариев:

User-agent: StackRambler Disallow: /garbage/ # ничего полезного в этой папке нет Disallow: /doc.xhtml # и на этой странице тоже # и все комментарии в этом файле также бесполезны

Примеры файлов robots.txt

1. Разрешаем всем роботам индексировать все документы сайта:

User-agent: * Disallow:
User-agent: * Disallow: /

3. Запрещаем роботу поисковика Google индексировать файл feedback.php и содержимое каталога cgi-bin:

User-agent: googlebot Disallow: /cgi-bin/ Disallow: /feedback.php

4. Разрешаем всем роботам индексировать весь сайт, а роботу поисковика Яндекс запрещаем индексировать файл feedback.php и содержимое каталога cgi-bin:

User-agent: Yandex Disallow: /cgi-bin/ Disallow: /feedback.php Host: www.site.ru User-agent: * Disallow:

5. Разрешаем всем роботам индексировать весь сайт, а роботу Яндекса разрешаем индексировать только предназначенную для него часть сайта:

User-agent: Yandex Allow: /yandex Disallow: / Host: www.site.ru User-agent: * Disallow:

Пустые строки разделяют ограничения для разных роботов. Каждый блок ограничений должен начинаться со строки с полем User-Agent, указывающей робота, к которому относятся данные правила индексации сайта.

Часто встречающиеся ошибки

Нужно обязательно учитывать, что пустая строка в файле robots.txt представляет собой разделитель двух записей для разных роботов. Также нельзя указывать несколько директив в одной строке. Запрещая индексацию файла веб-мастера часто пропускают / перед названием файла.

Не нужно прописывать в robots.txt запрет на индексирование сайта для различных программ, которые предназначены для полного скачивания сайта, например, TeleportPro. Ни "программы-качалки", ни браузеры никогда не смотрят в этот файл и не выполняют прописанных там инструкций. Он предназначен исключительно для поисковых систем. Не стоит также блокировать в robots.txt админку вашего сайта, ведь если на нее нигде нет ссылки, то и индекироваться она не будет. Вы всего лишь раскроете расположение админки людям, которые не должны о ней знать. Также стоит помнить, что слишком большой robots.txt может быть проигнорирован поисковой системой. Если у вас слишком много страниц не предназначенных для индексации, то лучше их просто удалить с сайта или перенести в отдельную директорию и запретить индексирование данной директории.

Проверка файла robots.txt на наличие ошибок

Обязательно проверьте как понимает ваш файл robots поисковиковые системы. Для проверки Google вы можете воспользоваться Инструментами Google для веб-мастеров. Если вы хотите узнать как ваш файл robots.txt понимает Яндекс, то можете воспользоваться сервисом Яндекс.Вебмастер. Это позволит вовремя исправить допущенные ошибки. Также на страницах данных сервисов вы сможете найти рекомендации по составлению файла robots.txt и много другой полезной информации.

Копирование статьи запрещено.

Сначало расскажу, что такое robots.txt.

Robots.txt – файл, который находится в корневой папки сайта, где прописываются специальные инструкции для поисковых роботов. Эти инструкции необходимы для того, чтобЫ при заходе на сайт, робот не учитывал страницу/раздел, другими словами мы закрываем страницу от индексации.

Зачем нужен robots.txt

Файл robots.txt считается ключевым требованием при SEO-оптимизации абсолютно любого сайта. Отсутствие этого файла может негативно сказаться на нагрузку со стороны роботов и медленной индексации и, даже более того, сайт полностью не будет проиндексирован. Соответственно пользователи не смогут перейти на страницы через Яндекс и Google.

Влияние robots.txt на поисковые системы?

Поисковые системы особенности Google) проиндексируют cайт, но если файла robots.txt нет, то, как и говорил не все страницы. Если имеется такой файл, то роботы руководствуются правилами, которые указываются в этом файле. Причем существует несколько видов поисковых роботов, если одни могут учитывать правило, то другие игнорируют. В частности, робот GoogleBot не учитывает директиву Host и Crawl-Delay, робот YandexNews совсем недавно перестал учитывать директиву Crawl-Delay, а роботы YandexDirect и YandexVideoParser игнорируют общепринятые директивы в robots.txt (но учитывают те, которые прописаны специально для них).

Нагружают сайт больше всего роботы, которые подгружают контент с вашего сайта. Соответственно, если мы укажем роботу, какие страницы индексировать, а какие игнорировать, а также с какими временными промежутками подгружать контент со страниц (это больше качается крупных сайтов у которых имеется более 100 000 страниц в индексе поисковых систем). Это позволит значительно облегчить роботу индексацию и процесс подгружения контента с сайта.


К ненужным для поисковых систем можно отнести файлы которые относятся к CMS, например, в Wordpress – /wp-admin/. Помимо этого, скрипты ajax, json, отвечающие за всплывающие формы, баннеры, вывод каптчи и так далее.

Для большинства роботов также рекомендую закрыть от индексации все файлы Javascript и CSS. Но для GoogleBot и Yandex такие файлы лучше индексировать, так как они используются поисковыми системами для анализа удобства сайта и его ранжирования.

Что такое директива robots.txt?



Директивы – это и есть правила для поисковых роботов. Первые стандарты по написанию robots.txt и соответственно появились в 1994, а расширенный стандарт в 1996 году. Однако, как вы уже знаете, что не все роботы поддерживают те или иные директивы. Поэтому ниже я расписал чем руководствуются основные роботы при индексации страниц сайта.

Что означает User-agent?

Это самая главная директива, которая определяет для каких поисковых роботов будут действовать следовать дальнейшие правила.

Для всех роботов:

Для определенного бота:

User-agent: Googlebot

Регистр в robots.txt не стол важен, писать можно как Googlebot так и googlebot

Поисковые роботы Google







Поисковые роботы Яндекса

основной индексирующий робот Яндекса

Используется в сервисе Яндекс.Картинки

Используется в сервисе Яндекс.Видео

Мультимедийные данные

Поиск по блогам

Поисковый робот, обращающийся к странице при добавлении ее через форму «Добавить URL»

робот, индексирующий пиктограммы сайтов (favicons)

Яндекс.Директ

Яндекс.Метрика

Используется в сервисе Яндекс.Каталог

Используется в сервисе Яндекс.Новости

YandexImageResizer

Поисковый робот мобильных сервисов

Поисковые роботы Bing, Yahoo, Mail.ru, Rambler

Директивы Disallow и Allow

Disallow закрывает от индексирования разделы и страницы вашего сайта. Соответственно Allow наоборот открывает их.

Есть некоторые особенности.

Во первых, дополнительные операторы - *, $ и #. Для чего они используются?

“*” – это любое количество символов и их отсутствие. По умолчанию она уже находится в конце строки, поэтому ставить ее еще раз смысла нет.

“$” – показывает, что символ перед ним должен идти последним.

“#” – комментарий, все что идет после этого символа робот не учитывает.

Примеры использования Disallow:

Disallow: *?s=

Disallow: /category/

Соответственно поисковый робот закроет страницы типа:

Но открыты для индексации будут страницы вида:

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

Это наш файл robots.txt

Disallow: /template/

Данная директива указывается так же в любом месте, причем можно прописать несколько файлов sitemap.

Директива Host в robots.txt

Данная директива необходима для указания главного зеркала сайта (часто с www или без). Обратите внимание, что директива host указывается без протокола http://, но с протоколом https://. Директиву учитывают только поисковые роботы Яндекса и Mail.ru, а другими роботами, в том числе GoogleBot правило не будет учтено. Host прописывать 1 раз в файле robots.txt

Пример с http://

Host: website.ru

Пример с https://

Директива Crawl-delay

Устанавливает временной интервал индексирования поисковым роботом страниц сайта. Значение указывается в секундах, и в миллисекундах.

Пример:

Применяется по большей части на крупных интернет-магазинах, информационных сайтах, порталах, где посещаемость сайта от 5 000 в день. Необходим для того, чтобы поисковый робот делал запрос на индексирование в определенный промежуток времени. Если не указывать данную директиву, то это может создать серьезную нагрузку на сервер.

Оптимальное значение crawl-delay для каждого сайта свое. Для поисковых систем Mail, Bing, Yahoo значение можно выставить минимальное значение 0.25, 0.3, так как роботы эти поисковиков могут переобходить ваш сайт раз в месяц, 2 месяца и так далее (очень редко). Для Яндекса лучше установить большее значение.


Если нагрузка вашего сайта минимальная, то указывать данную директиву смысла нет.

Директива Clean-param

Правило интересно тем, что сообщает краулеру, что страницы с определенными параметрами нет необходимости индексировать. Прописывается 2 агрумента: URL страницы и параметр. Данная директива поддерживается поисковой системой Яндекс.

Пример:

Disallow: /admin/

Disallow: /plugins/

Disallow: /search/

Disallow: /cart/

Disallow: *sort=

Disallow: *view=

User-agent: GoogleBot

Disallow: /admin/

Disallow: /plugins/

Disallow: /search/

Disallow: /cart/

Disallow: *sort=

Disallow: *view=

Allow: /plugins/*.css

Allow: /plugins/*.js

Allow: /plugins/*.png

Allow: /plugins/*.jpg

Allow: /plugins/*.gif

User-agent: Yandex

Disallow: /admin/

Disallow: /plugins/

Disallow: /search/

Disallow: /cart/

Disallow: *sort=

Disallow: *view=

Allow: /plugins/*.css

Allow: /plugins/*.js

Allow: /plugins/*.png

Allow: /plugins/*.jpg

Allow: /plugins/*.gif

Clean-Param: utm_source&utm_medium&utm_campaign

В примере мы прописали правила для 3 разных ботов.

Куда добавить robots.txt?

Добавляется в корневую папку сайта. Помимо, чтобы по нему можно было перейти по ссылке:

Как проверить robots.txt?

Яндекс Вебмастер

На вкладке Инструменты выбираете Анализ robots.txt и далее нажимаете проверить

Google Search Console

На вкладке Cканирование выбираете Инструмент проверки файла robots.txt и далее нажимаете проверить.

Заключение:

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

Ну и напоследок, если у вас возникли вопросы задавайте их в комментариях под статьей и еще мне интересно, а как вы прописываете robots.txt?

В этой статье пример оптимального, на мой взгляд, кода для файла robots.txt под WordPress, который вы можете использовать в своих сайтах.

Для начала, вспомним зачем нужен robots.txt - файл robots.txt нужен исключительно для поисковых роботов, чтобы «сказать» им какие разделы/страницы сайта посещать, а какие посещать не нужно. Страницы, которые закрыты от посещения не будут попадать в индекс поисковиков (Yandex, Google и т.д.).

Вариант 1: оптимальный код robots.txt для WordPress

User-agent: * Disallow: /cgi-bin # классика... Disallow: /? # все параметры запроса на главной Disallow: /wp- # все файлы WP: /wp-json/, /wp-includes, /wp-content/plugins Disallow: *?s= # поиск Disallow: *&s= # поиск Disallow: /search # поиск Disallow: /author/ # архив автора Disallow: *?attachment_id= # страница вложения. Вообще-то на ней редирект... Disallow: */feed # все фиды Disallow: */rss # rss фид Disallow: */embed # все встраивания Disallow: */page/ # все виды пагинации Allow: */uploads # открываем uploads Allow: /*/*.js # внутри /wp- (/*/ - для приоритета) Allow: /*/*.css # внутри /wp- (/*/ - для приоритета) Allow: /wp-*.png # картинки в плагинах, cache папке и т.д. Allow: /wp-*.jpg # картинки в плагинах, cache папке и т.д. Allow: /wp-*.jpeg # картинки в плагинах, cache папке и т.д. Allow: /wp-*.gif # картинки в плагинах, cache папке и т.д. Allow: /wp-*.svg # картинки в плагинах, cache папке и т.д. Allow: /wp-*.pdf # файлы в плагинах, cache папке и т.д. #Disallow: /wp/ # когда WP установлен в подкаталог wp Sitemap: http://site.ru/sitemap.xml Sitemap: http://site.ru/sitemap2.xml # еще один файл #Sitemap: http://site.ru/sitemap.xml.gz # сжатая версия (.gz) Host: site.ru # для Яндекса и Mail.RU. (межсекционная) # Версия кода: 1.0 # Не забудьте поменять `site.ru` на ваш сайт.

Разбор кода:

    В строке User-agent: * мы указываем, что все нижеприведенные правила будут работать для всех поисковых роботов * . Если нужно, чтобы эти правила работали только для одного, конкретного робота, то вместо * указываем имя робота (User-agent: Yandex , User-agent: Googlebot).

    В строке Allow: */uploads мы намеренно разрешаем индексировать страницы, в которых встречается /uploads . Это правило обязательно, т.к. выше мы запрещаем индексировать страницы начинающихся с /wp- , а /wp- входит в /wp-content/uploads . Поэтому, чтобы перебить правило Disallow: /wp- нужна строчка Allow: */uploads , ведь по ссылкам типа /wp-content/uploads/... у нас могут лежать картинки, которые должны индексироваться, так же там могут лежать какие-то загруженные файлы, которые незачем скрывать. Allow: может быть "до" или "после" Disallow: .

    Остальные строчки запрещают роботам "ходить" по ссылкам, которые начинаются с:

    • Disallow: /cgi-bin - закрывает каталог скриптов на сервере
    • Disallow: /feed - закрывает RSS фид блога
    • Disallow: /trackback - закрывает уведомления
    • Disallow: ?s= или Disallow: *?s= - закрыавет страницы поиска
    • Disallow: */page/ - закрывает все виды пагинации
  1. Правило Sitemap: http://site.ru/sitemap.xml указывает роботу на файл с картой сайта в формате XML. Если у вас на сайте есть такой файл, то пропишите полный путь к нему. Таких файлов может быть несколько, тогда указываем путь к каждому отдельно.

    В строке Host: site.ru мы указываем главное зеркало сайта. Если у сайта существуют зеркала (копии сайта на других доменах), то чтобы Яндекс индексировал всех их одинаково, нужно указывать главное зеркало. Директива Host: понимает только Яндекс, Google не понимает! Если сайт работает под https протоколом, то его обязательно нужно указать в Host: Host: https://site.ru

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

Это важно: сортировка правил перед обработкой

Yandex и Google обрабатывает директивы Allow и Disallow не по порядку в котором они указаны, а сначала сортирует их от короткого правила к длинному, а затем обрабатывает последнее подходящее правило:

User-agent: * Allow: */uploads Disallow: /wp-

будет прочитана как:

User-agent: * Disallow: /wp- Allow: */uploads

Чтобы быстро понять и применять особенность сортировки, запомните такое правило: «чем длиннее правило в robots.txt, тем больший приоритет оно имеет. Если длина правил одинаковая, то приоритет отдается директиве Allow.»

Вариант 2: стандартный robots.txt для WordPress

Не знаю кто как, а я за первый вариант! Потому что он логичнее - не надо полностью дублировать секцию ради того, чтобы указать директиву Host для Яндекса, которая является межсекционной (понимается роботом в любом месте шаблона, без указания к какому роботу она относится). Что касается нестандартной директивы Allow , то она работает для Яндекса и Гугла и если она не откроет папку uploads для других роботов, которые её не понимают, то в 99% ничего опасного это за собой не повлечет. Я пока не заметил что первый robots работает не так как нужно.

Вышеприведенный код немного не корректный. Спасибо комментатору " " за указание на некорректность, правда в чем она заключалась пришлось разбираться самому. И вот к чему я пришел (могу ошибаться):

    Некоторые роботы (не Яндекса и Гугла) - не понимают более 2 директив: User-agent: и Disallow:

  1. Директиву Яндекса Host: нужно использовать после Disallow: , потому что некоторые роботы (не Яндекса и Гугла), могут не понять её и вообще забраковать robots.txt. Cамому же Яндексу, судя по документации , абсолютно все равно где и как использовать Host: , хоть вообще создавай robots.txt с одной только строчкой Host: www.site.ru , для того, чтобы склеить все зеркала сайта.

3. Sitemap: межсекционная директива для Яндекса и Google и видимо для многих других роботов тоже, поэтому её пишем в конце через пустую строку и она будет работать для всех роботов сразу.

На основе этих поправок, корректный код должен выглядеть так:

User-agent: Yandex Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-json/ Disallow: /wp-login.php Disallow: /wp-register.php Disallow: */embed Disallow: */feed Disallow: /cgi-bin Disallow: *?s= Allow: /wp-admin/admin-ajax.php Host: site.ru User-agent: * Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-json/ Disallow: /wp-login.php Disallow: /wp-register.php Disallow: */embed Disallow: */feed Disallow: /cgi-bin Disallow: *?s= Allow: /wp-admin/admin-ajax.php Sitemap: http://site.ru/sitemap.xml

Дописываем под себя

Если вам нужно запретить еще какие-либо страницы или группы страниц, можете внизу добавить правило (директиву) Disallow: . Например, нам нужно закрыть от индексации все записи в категории news , тогда перед Sitemap: добавляем правило:

Disallow: /news

Оно запретить роботам ходить по подобным ссылками:

  • http://site.ru/news
  • http://site.ru/news/drugoe-nazvanie/

Если нужно закрыть любые вхождения /news , то пишем:

Disallow: */news

  • http://site.ru/news
  • http://site.ru/my/news/drugoe-nazvanie/
  • http://site.ru/category/newsletter-nazvanie.html

Подробнее изучить директивы robots.txt вы можете на странице помощи Яндекса (но имейте ввиду, что не все правила, которые описаны там, работают для Google).

Проверка robots.txt и документация

Проверить правильно ли работают прописанные правила можно по следующим ссылкам:

    Сервис для создания и проверки robots.txt: https://seolib.ru/tools/generate/robots/

  • Документация от google (англ.)

Crawl-delay - таймаут для сумасшедших роботов (с 2018 года не учитывается)

Яндекс

Проанализировав письма за последние два года в нашу поддержку по вопросам индексирования, мы выяснили, что одной из основных причин медленного скачивания документов является неправильно настроенная директива Crawl-delay в robots.txt […] Для того чтобы владельцам сайтов не пришлось больше об этом беспокоиться и чтобы все действительно нужные страницы сайтов появлялись и обновлялись в поиске быстро, мы решили отказаться от учёта директивы Crawl-delay.

Когда робот Яндекса сканирует сайт как сумасшедший и это создает излишнюю нагрузку на сервер. Робота можно попросить «поубавить обороты».

Для этого нужно использовать директиву Crawl-delay . Она указывает время в секундах, которое робот должен простаивать (ждать) для сканирования каждой следующей страницы сайта.

Для совместимости с роботами, которые плохо следуют стандарту robots.txt, Crawl-delay нужно указывать в группе (в секции User-Agent) сразу после Disallow и Allow

Робот Яндекса понимает дробные значения, например, 0.5 (пол секунды). Это не гарантирует, что поисковый робот будет заходить на ваш сайт каждые полсекунды, но позволяет ускорить обход сайта.

User-agent: Yandex Disallow: /wp-admin Disallow: /wp-includes Crawl-delay: 1.5 # таймаут в 1.5 секунды User-agent: * Disallow: /wp-admin Disallow: /wp-includes Allow: /wp-*.gif Crawl-delay: 2 # таймаут в 2 секунды

Google

Робот Google не понимает директиву Crawl-delay . Таймаут его роботам можно указать в панели вебмастера.

Я спросил у Яндекса...

Задал вопрос в тех. поддержку Яндекса насчет межсекционного использования директив Host и Sitemap:

Вопрос:

Здравствуйте!
Пишу статью насчет robots.txt на своем блоге. Хотелось бы получить ответ на такой вопрос (в документации я не нашел однозначного "да"):

Если мне нужно склеить все зеркала и для этого я использую директиву Host в самом начале фала robots.txt:

Host: site.ru User-agent: * Disallow: /asd

Будет ли в данном примере правильно работать Host: site.ru? Будет ли она указывать роботам что site.ru это основное зеркало. Т.е. эту директиву я использую не в секции, а отдельно (в начале файла) без указания к какому User-agent она относится.

Также хотел узнать, обязательно ли директиву Sitemap нужно использовать внутри секции или можно использовать за пределами: например, через пустую строчку, после секции?

User-agent: Yandex Disallow: /asd User-agent: * Disallow: /asd Sitemap: http://site.ru/sitemap.xml

Поймет ли робот в данном примере директиву Sitemap?

Надеюсь получить от вас ответ, который поставит жирную точку в моих сомнениях.

Ответ:

Здравствуйте!

Директивы Host и Sitemap являются межсекционными, поэтому будут использоваться роботом вне зависимости от места в файле robots.txt, где они указаны.

--
С уважением, Платон Щукин
Служба поддержки Яндекса

Заключение

Важно помнить, что изменения в robots.txt на уже рабочем сайте будут заметны только спустя несколько месяцев (2-3 месяца).

Ходят слухи, что Google иногда может проигнорировать правила в robots.txt и взять страницу в индекс, если сочтет, что страница ну очень уникальная и полезная и она просто обязана быть в индексе. Однако другие слухи опровергают эту гипотезу тем, что неопытные оптимизаторы могут неправильно указать правила в robots.txt и так закрыть нужные страницы от индексации и оставить ненужные. Я больше склоняюсь ко второму предположению...

На сервисе avi1.ru Вы можете уже сейчас приобрести продвижение SMM более чем в 7 самых популярных социальных сетях. При этом обратите внимание на достаточно низкую стоимость всех услуг сайта.

Приветствую вас, уважаемые читатели SEO блога Pingo. В данной статье я хочу изложить своё представление о том, как правильно составить robots.txt для сайта. В своё время меня очень раздражало, что информация в интернете по этому вопросу довольно отрывочна. Из-за этого приходилось ползать по большому количеству ресурсов, постоянно фильтруя повторяющуюся информацию и вычленяя новую.

Таким образом, здесь я постараюсь ответить на большинство вопросов, начиная с определения и заканчивая примерами реальных задач, решаемых данным инструментом. Если что-то забуду - отпишитесь в комментариях об этом - исследую вопрос и дополню материал.

Robots.txt - что это, зачем нужен и где обитает?

Итак, сперва ликбез для тех, кому данная тема незнакома совершенно.

Robots.txt - текстовый файл, содержащий инструкции по индексации сайта для роботов поисковых систем. В этом файле вебмастер может определить параметры индексации своего сайта как для всех роботов сразу, так и для каждой поисковой системы по отдельности (например, для гугла).

Где находится robots.txt? Он размещается в корневой папке FTP сайта, и, по сути, является обычным документом в формате txt, редактирование которого можно осуществлять через любой текстовый редактор (лично я предпочитаю Notepad++). Содержимое файла роботс можно увидеть, введя в адресной строке браузера http://www.ваш-сайт.ru/robots.txt. Если, конечно, он существует.

Как создать robots.txt для сайта? Достаточно сделать обычный текстовый файл с таким именем и загрузить его на сайт. О том, как его правильно настроить и составить, будет сказано ниже.

Структура и правильная настройка файла robots.txt

Как должен выглядеть правильный файл robots txt для сайта? Структуру можно описать следующим образом:

1. Директива User-agent

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

В синтаксисе файла robots.txt знак «*» равноценен словосочетанию «что угодно». Если же требуется задать инструкции для конкретной поисковой системы или робота, то на месте звездочки из предыдущего примера пишется его название, например:

User-agent: YandexBot

У каждого поисковика существует целый набор роботов, выполняющих те или иные функции. Роботы поисковой системы Яндекс описаны . В общем же плане имеется следующее:

  • Yandex - указание на роботов Яндекс.
  • GoogleBot - основной индексирующий робот .
  • MSNBot - основной индексирующий робот Bing.
  • Aport - роботы Aport.
  • Mail.Ru - роботы ПС Mail.

Если имеется директива для конкретной поисковой системы или робота, то общие игнорируются.

2. Директива Allow

Разрешает отдельные страницы раздела, если, скажем, ранее он целиком закрыт от индексации. Например:

User-agent: *
Disallow: /
Allow: /открытая-страница.html

В данном примере мы запрещаем к индексации весь сайт, кроме страницы poni.html

Служит эта директива в какой-то степени для указания на исключения из правил, заданных директивой Disallow. В случае, если таких ситуаций нет, то директива может не использоваться совсем. Она не позволяет открыть сайт для индексации, как многие думают, так как если нет запрета вида Disallow: /, то он открыт по умолчанию.

2. Директива Disallow

Является антиподом директивы Allow и закрывает от индексации отдельные страницы, разделы или сайт целиком. Являет аналогом тега noindex. Например:

User-agent: *
Disallow: /закрытая-страница.html

3. Директива Host

Используется только для Яндекса и указывает на основное зеркало сайта. Выглядит это так.

Основное зеркало без www:

Основное зеркало с www:

Host: www.site.ru

Сайт на https:

Host: https://site.ru

Нельзя записывать директиву host в файл дважды. Если же вследствие какой-то ошибки это произошло, то обрабатывается та директива, которая идет первой, а вторая - игнорируется.

4. Директива Sitemap

Используется для указания пути к XML-карте сайта sitemap.xml (если она есть). Синтаксис следующий:

Sitemap: http://www.site.ru/sitemap.xml

5. Директива Clean-param

Используется для закрытия от индексации страниц с параметрами, которые могут являться дублями. Очень полезная на мой взгляд директива, которая отсекает параметрический хвост урлов, оставляя только костяк, который и является родоначальным адресом страницы.

Особенно часто встречается такая проблема при работе с каталогами и интернет-магазинами.

Скажем, у нас имеется страница:

http://www.site.ru/index.php

И эта страница в процессе работы может обрастать клонами вида.

http://www.site.ru/index.php?option=com_user_view=remind
http://www.site.ru/index.php?option=com_user_view=reset
http://www.site.ru/index.php?option=com_user_view=login

Для того, чтобы избавиться от всевозможных вариантов этого спама, достаточно указать следующую конструкцию:

Clean-param: option /index.php

Синтаксис из примера, думаю, понятен:

Clean-param: # указываем директиву
option # указываем спамный параметр
/index.php # указываем костяк урла со спамным параметром

Если параметров несколько, то просто перечисляем их через амперсант(&):

http://www.site.ru/index.php?option=com_user_view=remind&size=big # урл с двумя параметрами
Clean-param: option&big /index.php # указаны два параметра через амперсант

Пример взят простой, поясняющий саму суть. Особенно спасибо этому параметру хочется сказать при работе с CMS Bitrix.

Директива Crawl-Delay

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

Crawl-delay: 3.5 #таймаут в 3,5 секунды

Синтаксис

  • # - используется для написания комментариев:
  • User-agent: * # директива относится ко всем роботам

  • * - означает любую последовательность символов, значение:
  • Disallow: /page* # запрет всех страниц, начинающихся на page

    Disallow: /*page # запрет всех страниц, заканчивающихся на page

    Disallow: /cgi-bin/*.aspx # запрет всех aspx страниц в папке cgi-bin

  • $ - обрезание правила, антипод знака звездочки:
  • Disallow: /page$ # будет закрыта только страница /page, а не /page.html или pageline.html

Пример файла robots.txt

С целью закрепления понимания вышеописанной структуры и правил, приведем стандартный robots txt для CMS Data Life Engine.

User-agent: * # директивы предназначены для всех поисковых систем
Disallow: /engine/go.php # запрещаем отдельные разделы и страницы
Disallow: /engine/download.php #
Disallow: /user/ #
Disallow: /newposts/ #
Disallow: /*subaction=userinfo # закрываем страницы с отдельными параметрами
Disallow: /*subaction=newposts #
Disallow: /*do=lastcomments #
Disallow: /*do=feedback #
Disallow: /*do=register #
Disallow: /*do=lostpassword #
Host: www.сайт # указываем главное зеркало сайта
Sitemap: https://сайт/sitemap.xml # указываем путь до карты сайта
User-agent: Aport # указываем направленность правил на ПС Aport
Disallow: / # предположим, не хотим мы с ними дружить

Проверка robots.txt

Как проверить robots txt на корректность составления? Стандартный вариант - валидатор Яндекса - http://webmaster.yandex.ru/robots.xml . Вводим путь до вашего файла роботс или сразу вставляем его содержимое в текстовое поле. Вводим список урлов, которые мы хотим проверить - закрыты или открыты они согласно заданным директивам - нажимаем «Проверить» и вуаля! Профит.

Выводится статус страницы - открыта ли она для индексации или закрыта. Если закрыта, то указывается, каким именно правилом. Чтобы разрешить индексацию такой страницы, нужно доработать правило, на которое указывает валидатор. Если в файле имеются синтаксические ошибки, то валидатор также об этом сообщит.

Генератор robots.txt - создание в режиме онлайн

Если изучать синтаксис желания или времени нет, но необходимость закрыть спамные страницы сайта присутствует, то можно воспользоваться любым бесплатным онлайн генератором , который позволит создать robots txt для сайта всего парой кликов. Затем вам останется лишь скачать файл и загрузить его к себе на сайт. При работе с ним вам лишь необходимо проставить галочки у очевидных настроек, а также указать страницы, которые вы хотите закрыть от индексации. Остальное генератор сделает за вас.

Готовые файлы для популярных CMS

Файл robots.txt для сайта на 1C Битрикс

User-Agent: *
Disallow: /bitrix/
Disallow: /personal/
Disallow: /upload/
Disallow: /*login*
Disallow: /*auth*
Disallow: /*search
Disallow: /*?sort=
Disallow: /*gclid=
Disallow: /*register=
Disallow: /*?per_count=
Disallow: /*forgot_password=
Disallow: /*change_password=
Disallow: /*logout=
Disallow: /*back_url_admin=
Disallow: /*print=
Disallow: /*backurl=
Disallow: /*BACKURL=
Disallow: /*back_url=
Disallow: /*BACK_URL=
Disallow: /*ADD2BASKET
Disallow: /*ADD_TO_COMPARE_LIST
Disallow: /*DELETE_FROM_COMPARE_LIST
Disallow: /*action=BUY
Disallow: /*set_filter=y
Disallow: /*?mode=matrix
Disallow: /*?mode=listitems
Disallow: /*openstat
Disallow: /*from=adwords
Disallow: /*utm_source
Host: www.site.ru

Robots.txt для DataLife Engine (DLE)

User-agent: *
Disallow: /engine/go.php
Disallow: /engine/download.php
Disallow: /engine/classes/highslide/
Disallow: /user/
Disallow: /tags/
Disallow: /newposts/
Disallow: /statistics.html
Disallow: /*subaction=userinfo
Disallow: /*subaction=newposts
Disallow: /*do=lastcomments
Disallow: /*do=feedback
Disallow: /*do=register
Disallow: /*do=lostpassword
Disallow: /*do=addnews
Disallow: /*do=stats
Disallow: /*do=pm
Disallow: /*do=search
Host: www.site.ru
Sitemap: http://www.site.ru/sitemap.xml

Robots.txt для Joomla

User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /libraries/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /xmlrpc/
Disallow: *print
Disallow: /*utm_source
Disallow: /*mailto*
Disallow: /*start*
Disallow: /*feed*
Disallow: /*search*
Disallow: /*users*
Host: www.site.ru
Sitemap: http://www.site.ru/sitemap.xml

Robots.txt для Wordpress

User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: */trackback
Disallow: */feed
Disallow: /wp-login.php
Disallow: /wp-register.php
Host: www.site.ru
Sitemap: http://www.site.ru/sitemap.xml

Robots.txt для Ucoz

User-agent: *
Disallow: /a/
Disallow: /stat/
Disallow: /index/1
Disallow: /index/2
Disallow: /index/3
Disallow: /index/5
Disallow: /index/7
Disallow: /index/8
Disallow: /index/9
Disallow: /panel/
Disallow: /admin/
Disallow: /secure/
Disallow: /informer/
Disallow: /mchat
Disallow: /search
Disallow: /shop/order/
Disallow: /?ssid=
Disallow: /google
Disallow: /

Лучшие статьи по теме