Как редактировать файл robots txt. Как редактировать файл robots txt Найти файл robots txt

Приветствую вас, уважаемые читатели 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: /

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

Онлайн-генератор Robots.txt — поля заполняйте последовательно:

Откройте текстовый редактор, вставьте в него полученный результат и сохраните файл под именем robots.txt

После этого разместите файл в корневой директории вашего сайта. Файл должен быть доступен по ссылке http://ваш-сайт.com/robots.txt

Пояснения к атрибутам для файла Robots.txt

Директива «User-agent» - указывает для бота какой поисковой системы действуют расположенные ниже предписания. Файл Robots.txt можно создавать как с едиными для всех поисковых роботов указаниями, так и с отдельными предписаниями для каждого бота.

Директива «Disallow» - данная директива указывает какие каталоги и фалы запрещено индексировать поисковикам. Если вы создаете отдельные предписания для каждого поискового бота, то для каждого такого предписания создаются отдельные правила «Disallow». Этой директивой можно запретить индексировать сайт полностью (Disallow: /) или запрещать индексирование отдельных каталогов. В случае запрета индексации отдельных директорий количество предписаний «Disallow» может быть неограниченным.

Директива «Host» определяет главное зеркало сайта. Сайт может быть доступен по 2-м адресам: «с WWW» и «без WWW». Если файл Robots.txt отсутствует на сервере или в нем не заполнена запись «Host», роботы поисковых систем определяют главное зеркало для сайта по своему усмотрению, но если вы хотите сделать это самостоятельно вам следует указать это правило в директиве «Host».

Директива «Sitemap» указывает по какому пути находится файл Sitemap.xml (карта сайта). Этот файл существенно облегчает и ускоряет индексацию сайта роботами поисковых систем. Особенно важен файл Sitemap.xml для сайтов с большим количеством страниц и сложной структурой (высокий уровень вложенности).

Совет SEO-специалиста: Файл Robots.txt очень важен при продвижении сайта, т.к. он указывает поисковым системам Ваши пожелания по индексации/запрету_индексации разделов Вашего сайта. Поисковики не гарантируют соблюдение предписаний в robots.txt, но учитывают их при индексации. Для сайтов, созданных на популярных CMS, обычно есть готовые варианты файлов robots.txt, но если Вы делали доработки функционала, то может потребоваться его ручная корректировка.

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

Находится данный файл Робота в корневом каталоге вашего сайта и открывается/редактируется простым блокнотом, я рекомендую Notepad++. Для тех, кто не любит читать — есть ВИДЕО, смотрите в конце статьи 😉

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

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

  • Служебные файлы и папки CMS
  • Дубликаты
  • Документы, которые не несут пользу для пользователя
  • Не уникальные страницы

Разберем конкретный пример:

Интернет-магазин по продаже обуви и реализован на одной из популярных CMS, причем не лучшим образом. Я могу сразу сказать, что будут в выдаче страницы поиска, пагинация, корзина, некоторые файлы движка и т.д. Все это будут дубли и служебные файлы, которые бесполезны для пользователя. Следовательно, они должны быть закрыты от индексации, а если еще есть раздел «Новости» в которые копипастятся разные интересные статьи с сайтов конкурентов – то и думать не надо, сразу закрываем.

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

Директивы robots.txt и правила настройки

User-agent. Это обращение к конкретному роботу поисковой системы или ко всем роботам. Если прописывается конкретное название робота, например «YandexMedia», то общие директивы user-agent не используются для него. Пример написания:

User-agent: YandexBot Disallow: /cart # будет использоваться только основным индексирующим роботом Яндекса

Disallow/Allow. Это запрет/разрешение индексации конкретного документа или разделу. Порядок написания не имеет значения, но при 2 директивах и одинаковом префиксе приоритет отдается «Allow». Считывает поисковый робот их по длине префикса, от меньшего к большему. Если вам нужно запретить индексацию страницы — просто введи относительный путь до нее (Disallow: /blog/post-1).

User-agent: Yandex Disallow: / Allow: /articles # Запрещаем индексацию сайта, кроме 1 раздела articles

Регулярные выражения с * и $. Звездочка означает любую последовательность символов (в том числе и пустую). Знак доллара означает прерывание. Примеры использования:

Disallow: /page* # запрещает все страницы, конструкции http://site.ru/page Disallow: /arcticles$ # запрещаем только страницу http://site.ru/articles, разрешая страницы http://site.ru/articles/new

Директива Sitemap. Если вы используете – то в robots.txt она должна указываться так:

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

Директива Host. Как вам известно у сайтов есть зеркала (читаем, ). Данное правило указывает поисковому боту на главное зеркало вашего ресурса. Относится к Яндексу. Если у вас зеркало без WWW, то пишем:

Host: site.ru

Crawl-delay. Задает задержу (в секундах) между скачками ботом ваших документов. Прописывается после директив Disallow/Allow.

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

Clean-param. Указывает поисковому боту, что не нужно скачивать дополнительно дублирующую информацию (идентификаторы сессий, рефереров, пользователей). Прописывать Clean-param следует для динамических страниц:

Clean-param: ref /category/books # указываем, что наша страница основная, а http://site.ru/category/books?ref=yandex.ru&id=1 это та же страница, но с параметрами

Главное правило: robots.txt должен быть написан в нижнем регистре и лежать в корне сайта. Пример структуры файла:

User-agent: Yandex Disallow: /cart Allow: /cart/images Sitemap: http://site.ru/sitemap.xml Host: site.ru Crawl-delay: 2

Мета-тег robots и как он прописывается

Данный вариант запрета страниц лучше учитывается поисковой системой Google. Яндекс одинаково хорошо учитывает оба варианта.

Директив у него 2: follow/nofollow и index/noindex . Это разрешение/запрет перехода по ссылкам и разрешение/запрет на индексацию документа. Директивы можно прописывать вместе, смотрим пример ниже.

Для любой отдельной страницы вы можете прописать в теге следующее:

Правильные файлы robots.txt для популярных CMS

Пример Robots.txt для WordPress

Ниже вы можете увидеть мой вариант с данного Seo блога.

User-agent: Yandex Disallow: /wp-content/uploads/ Allow: /wp-content/uploads/*/*/ Disallow: /wp-login.php Disallow: /wp-register.php Disallow: /xmlrpc.php Disallow: /template.html Disallow: /cgi-bin Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Disallow: /wp-trackback Disallow: /wp-feed Disallow: /wp-comments Disallow: */trackback Disallow: */feed Disallow: */comments Disallow: /tag Disallow: /archive Disallow: */trackback/ Disallow: */feed/ Disallow: */comments/ Disallow: /?feed= Disallow: /?.php Disallow: /wp-register.php Disallow: /xmlrpc.php Disallow: /template.html Disallow: /cgi-bin Disallow: /wp-admin Disallow: /wp-includes Disallow: /wp-content/plugins Disallow: /wp-content/cache Disallow: /wp-content/themes Disallow: /wp-trackback Disallow: /wp-feed Disallow: /wp-comments Disallow: */trackback Disallow: */feed Disallow: */comments Disallow: /tag Disallow: /archive Disallow: */trackback/ Disallow: */feed/ Disallow: */comments/ Disallow: /?feed= Disallow: /?.xml

Трэкбэки запрещаю потому что это дублирует кусок статьи в комментах. А если трэкбэков много — вы получите кучу одинаковых комментариев.

Служебные папки и файлы любой CMS я стараюсь я закрываю, т.к. не хочу чтобы они попадали в индекс (хотя поисковики уже и так не берут, но хуже не будет).

Фиды (feed) стоит закрывать, т.к. это частичные либо полные дубли страниц.

Теги закрываем, если мы их не используем или нам лень их оптимизировать.

Примеры для других CMS

Чтобы скачать правильный robots для нужной CMS просто кликните по соответствующей ссылке.

Первое, что делает поисковый бот, который приходит на ваш сайт, это поиск и чтение файла robots.txt. Что это за файл? — это набор инструкций для поисковой системы.

Он представляет собой текстовый файл, с расширением txt, который находится в корневой директории сайта. Данный набор инструкций указывает поисковому роботу, какие страницы и файлы сайта индексировать, а какие нет. Так же в нем указывается основное зеркало сайта и где искать карту сайта.

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

Как составить правильный robots.txt

Составить robots.txt достаточно легко, создаем текстовый документ в стандартном блокноте винды. Пишем в этом файле директивы для поисковых систем. Далее сохраняем этот файл под названием «robots» и текстовым расширением «txt». Все теперь его можно залить на хостинг, в корневую папку сайта. Учтите, для одного сайта можно создать только один документ «роботс». Если этот файл отсутствует на сайте, то бот автоматические «решает» что можно индексировать все.

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

Директивы robots.txt

Файл «для роботов» может содержать следующие директивы для управления индексацией: User-agent, Disallow, Allow, Sitemap, Host, Crawl-delay, Clean-param. Давайте рассмотрим каждую инструкцию по подробней.

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

Директива User-agent — указывает для какой поисковой системы будут инструкции (точнее для какого конкретно бота). Если стоит «*» то инструкции предназначены для всех роботов. Если указан конкретный бот, например Googlebot, значит, инструкции предназначены только для основного индексирующего робота Google. Причем если инструкции есть и отдельно для Googlebot и для всех других ПС, то гугл прочтет только свою инструкцию, а общую проигнорирует. Бот Яндекса поступит так же. Смотрим пример записи директивы.

User-agent: YandexBot — инструкции только для основного индексирующего бота Яндекса
User-agent: Yandex — инструкции для всех бот Яндекса
User-agent: * — инструкции для всех ботов

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

Директивы Disallow и Allow — дают команды что индексировать, а что нет. Disallow дает команду не индексировать страницу или целый раздел сайта. А Allow наоборот указывает, что нужно проиндексировать.

Disallow: / — запрещает индексировать весь сайт
Disallow: /papka/ — запрещает индексировать все содержимое папки
Disallow: /files.php — запрещает индексировать файл files.php

Allow: /cgi-bin – разрешает индексировать страницы cgi-bin

В директивах Disallow и Allow можно и зачастую просто необходимо использовать спецсимволы. Они нужны для задания регулярных выражений.

Спецсимвол * — заменяет любую последовательность символов. Он по умолчанию приписывается к концу каждого правила. Даже если вы его не прописали, ПС сами приставят. Пример использования:

Disallow: /cgi-bin/*.aspx – запрещает индексировать все файлы с расширением.aspx
Disallow: /*foto — запрещает индексацию файлов и папок содержащих слово foto

Спецсимвол $ — отменяет действие спецсимвола «*» в конце правила. Например:

Disallow: /example$ — запрещает индексировать ‘/example’, но не запрещает ‘/example.html’

А если прописать без спецсимвола $ то инструкция сработает уже по другому:

Disallow: /example — запрещает и ‘/example’ и ‘/example.html’

Директива Sitemap

Директива Sitemap — предназначена для указания роботу поисковой системы, в каком месте на хостинге лежит карта сайта. Формат карты сайта должен быть sitemaps.xml. Карта сайта нужна для более быстрой и полной индексации сайта. Причем карта сайта это не обязательно один файл, их может быть несколько. Формат записи директы:

Sitemap: http://сайт/sitemaps1.xml
Sitemap: http://сайт/sitemaps2.xml

Директива Host

Директива Host — указывает роботу основное зеркало сайта. Что бы не было в индексе зеркал сайта, всегда нужно указывать эту директиву. Если ее не указать, робот Яндекса будет индексировать как минимум две версии сайт с www и без. Пока робот зеркальщик их не склеит. Пример записи:

Host: www.сайт
Host: сайт

В первом случае робот будет индексировать версию с www, во втором случае без. Разрешается прописывать только одну директиву Host в файле robots.txt. Если вы пропишите их несколько, бот обработает и примет к сведению только первую.

Правильная директива хост должна иметь следующие данные:
— указывать на протокол соединения (HTTP или HTTPS);
— корректно написанное доменное имя (нельзя прописывать IP-адрес);
— номер порта при необходимости (например, Host: site.com:8080).

Не правильно сделанные директивы просто будут игнорированы.

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

Директива Crawl-delay позволяет снизить нагрузку на сервер. Она нужна на случай если ваш сайт начинается ложиться под натиском различных ботов. Директива Crawl-delay указывает поисковому боту время ожидания между окончанием закачки одной страницы и началом закачки другой страницы сайта. Директива должна идти непосредственно после записей директив «Disallow» и/или «Allow». Поисковый робот Яндекса умеет читывать дробные значения. Например: 1.5 (полторы секунды).

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

Директива Clean-param нужна сайтам, страницы которых содержат динамические параметры. Речь о тех, которые не влияют на содержимое страниц. Это различная служебная информация: идентификаторы сессий, пользователей, рефереров и т.д. Так вот, что бы не было дублей эти страниц и используется эта директива. Она скажет ПС не закачивать повторно добирающуюся информацию. Снизится и нагрузка на сервер и время обхода сайта роботом.

Clean-param: s /forum/showthread.php

Данная запись говорит ПС, что параметр s будет считаться незначительным для для всех url, которые начинаются с /forum/showthread.php. Максимальная длина записи 500 символов.

С директивами разобрались, переходим к настройке нашего файла роботс.

Настройка robots.txt

Приступаем непосредственно к настройке файла robots.txt. Он должен содержать как минимум две записи:

User-agent: — указывает для какой поисковой системы будут идущие ниже инструкции.
Disallow: — уточняет, какую именно часть сайта не индексировать. Может закрывать от индексации, как отдельную страницу сайта, так и целые разделы.

Причем можно указать, что эти директивы предназначены для всех поисковых систем, или для какой-то одной конкретно. Указывается это в директиве User-agent. Если вы хотите что бы инструкции читали все боты — ставим «звездочку»

Если хотите прописать инструкции для конкретного робота, но надо указать его имя.

User-agent: YandexBot

Упрощенно пример правильно составленного файла robots будет таким:

User-agent: *
Disallow: /files.php
Disallow: /razdel/
Host: сайт

Где, * говорит о том, что инструкции предназначены для всех ПС;
Disallow: /files.php – дает запрет на индексацию файла file.php;
Disallow: /foto/ — запрещает индексировать целиком весь раздел «foto» со всеми вложенными файлами;
Host: сайт — указывает роботам, какое зеркало индексировать.

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

User-agent: *
Disallow:
Host: сайт

Robots.txt для Яндекса (Yandex)

Что бы указать, что данные инструкции предназначены для поисковой системы Яндекс, надо прописать в директиве User-agent: Yandex. Причем если мы пропишем «Yandex» то сайт будут индексировать все роботы Яндекса, а если укажем «YandexBot» — то это будет команда только для основного индексирующего робота.

Так же надо обязательно прописать директиву «Host», где указать основное зеркало сайта. Как я писал выше, делается это для недопущения дублей страниц. Ваш правильный robots.txt для Yandex будет таким.

В этой статье пример оптимального, на мой взгляд, кода для файла 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: */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 папке и т.д. Allow: /wp-admin/admin-ajax.php #Disallow: /wp/ # когда WP установлен в подкаталог wp Sitemap: http://example.com/sitemap.xml Sitemap: http://example.com/sitemap2.xml # еще один файл #Sitemap: http://example.com/sitemap.xml.gz # сжатая версия (.gz) # Версия кода: 1.1 # Не забудьте поменять `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://example.com/sitemap.xml указывает роботу на файл с картой сайта в формате XML. Если у вас на сайте есть такой файл, то пропишите полный путь к нему. Таких файлов может быть несколько, тогда указываем путь к каждому отдельно.

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

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

Потому что наличие открытых фидов требуется например для Яндекс Дзен, когда нужно подключить сайт к каналу (спасибо комментатору «Цифровой»). Возможно открытые фиды нужны где-то еще.

В тоже время, фиды имеют свой формат в заголовках ответа, благодаря которому поисковики понимают что это не HTML страница, а фид и, очевидно, обрабатывают его как-то иначе.

Директива Host для Яндекса больше не нужна

Яндекс полностью отказывается от директивы Host, её заменил 301 редирект. Host можно смело удалять из robots.txt . Однако важно, чтобы на всех зеркалах сайта стоял 301 редирект на главный сайт (главное зеркало).

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

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: */page/ 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: */page/ Disallow: /cgi-bin Disallow: *?s= Allow: /wp-admin/admin-ajax.php Sitemap: http://example.com/sitemap.xml

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

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

Disallow: /news

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

  • http://example.com/news
  • http://example.com/news/drugoe-nazvanie/

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

Disallow: */news

  • http://example.com/news
  • http://example.com/my/news/drugoe-nazvanie/
  • http://example.com/category/newsletter-nazvanie.html

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

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

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

  • Яндекс: http://webmaster.yandex.ru/robots.xml .
  • В Google это делается в Search console . Нужна авторизация и наличия сайта в панели веб-мастера...
  • Сервис для создания файла robots.txt: http://pr-cy.ru/robots/
  • Сервис для создания и проверки robots.txt: https://seolib.ru/tools/generate/robots/

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

Задал вопрос в тех. поддержку Яндекса насчет межсекционного использования директив 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://example.com/sitemap.xml

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

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

Ответ:

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

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

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

Заключение

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

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

Динамический robots.txt

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

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

Для этого добавьте следующий код в файл functions.php:

Add_action("do_robotstxt", "my_robotstxt"); function my_robotstxt(){ $lines = [ "User-agent: *", "Disallow: /wp-admin/", "Disallow: /wp-includes/", "", ]; echo implode("\r\n", $lines); die; // обрываем работу PHP }

User-agent: * Disallow: /wp-admin/ Disallow: /wp-includes/

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 . Таймаут его роботам можно указать в панели вебмастера.

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

Вверх