Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Россия +7 (495) 139-20-33
13 Января 2016 в 13:00

Энциклопедия интернет-маркетинга: составляем корректный robots.txt своими руками

Россия +7 (495) 139-20-33
24 37810
Подпишитесь на нас в Telegram
Руслан Фатхутдинов
Веб-аналитик агентства Реаспект
Редактор Telegram-канала

Лого.jpg

SEOnews запустил проект для специалистов и клиентов «Энциклопедия интернет-маркетинга», в рамках которого редакция публикует обучающие материалы от ведущих агентств на рынке. В итоге мы планируем выпустить полное, практически полезное и актуальное электронное руководство.

***

Составляем корректный robots.txt своими руками

Если попросить SEO-специалиста оценить важность правильно составленного robots.txt для сайта, хороший SEOшник оценит ее на 5 баллов из 5.

Кривой robots.txt, не учитывающий всех тонкостей сайта, может сильно навредить его индексации.

Одна неучтенная директива, и поисковики тут же вывалят в свой индекс всю подноготную сайта, например, как это было в 2011 году с утечкой SMS пользователей Мегафона.

Или одна лишняя или неправильно составленная директива, и часть сайта, или даже весь сайт, вылетит из индекса поисковых систем, а значит, потеряет весь поисковый трафик.

Если вы уже знакомы с основами составления robots.txt, можете сразу переходить к пункту 3 «Составление robots.txt».

1. Что такое robots.txt

Для начала определимся что из себя представляет этот файл и зачем он нужен.

В справке Яндекса дано следующее определение:

Robots.txt — текстовый файл, который содержит параметры индексирования сайта для роботов поисковых систем...

Сессия (робота поисковой системы) начинается с загрузки файла robots.txt. Если файл отсутствует, не является текстовым или на запрос робота возвращается HTTP-статус отличный от 200 OK, робот считает, что доступ к документам (страницам сайта) не ограничен.

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

Сказано «индексировать» страницу или раздел, будет индексировать. Сказано «не индексировать», не будет.

Но, несмотря на всю важность данного файла, подавляющее большинство сайтов в русском сегменте интернета не имеют правильно составленного robots.txt.

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

Порядок включения директив:

<Директива><двоеточие><пробел><документ, к которому применяется директива>

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

User-agent – указание робота, для которого составлен список директив ниже. Обязательная для robots.txt директива, которая указывается в начале файла.

  • Основной User-agent поисковой системы Яндекс – Yandex (справке Яндекса, которым можно указать отдельные директивы).
  • Основной User-agent поисковой системы Google – Googlebot (список роботов Google, которым можно указать отдельные директивы).
  • Если список директив указывается для всех возможных User-agent’ов, ставится – «*»

Disallow – директива запрета индексации документов. Можно указывать как каталог, так и часть названия документа, так и полный путь документа.

  • При запрете индексации документа путь определяется от корня сайта (красная стрелка на рисунке 1).
  • Для запрета индексации документов второго и далее уровней можно указывать полный путь документа, или перед адресом документа указывается знак «*» (синяя стрелка на рисунке 1).
  • При запрете индексации каталога также будут запрещены к индексации все страницы, входящие в этот каталог (зеленая стрелка на рисунке 1).
  • Можно запрещать для индексации документы, в url которых содержатся определенные символы (розовая стрелка на рисунке 1).
01-directiva-disallow.jpg
Рис. 1 Директива Disallow

Allow – директива разрешения индексации документов. Является директивой по умолчанию для всех документов на сайте, если не указано другое.

  • Используется для открытия к индексации документов (синие стрелки), которые по той или иной причине находятся в каталогах, закрытых от индексации (красные стрелки).
  • Можно открывать для индексации документы, в url которых содержатся определенные символы (синие стрелки).
  • Стоит обратить внимание на справке Яндекса: «Директивы Allow и Disallow из соответствующего User-agent блока сортируются по длине префикса URL (от меньшего к большему) и применяются последовательно.»
02-directiva-allow.jpg
Рис. 2 Директива Allow

Sitemap – директива для указания пути к файлу xml-карты сайта.

  • Если сайт имеет более 1 карты xml, допустимо указание нескольких путей.

User-agent: *

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

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

Спецсимволы

  • * - означает любую последовательность символов. Добавляется по умолчанию к концу каждой директивы (красная стрелочка на рисунке 3).
  • $ - используется для отмены знака «*» на конце директивы (синяя стрелочка на рисунке 3).
  • # - знак описания комментариев. Все что указывается справа от этого знака не будет учитываться роботами.

03-specsimvoli.jpg

Рис. 3 Спецсимволы

Host – директива указания главного зеркала сайта. Учитывается только роботами Яндекса.

  • Данная директива может склеить не только зеркала вида www.site.ru и site.ru но и другие сайты, в robots.txt которых указан соответствующий Host.
  • Если зеркало доступно только по защищенному протоколу, указывается адрес с протоколом (https://site.ru). В других случаях протокол не указывается.
  • Для настройки главного зеркала в поисковой системе Google используется функция «Настройки сайта» в Google Search Console.

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

  • Для ограничения времени между окончанием загрузки одной страницы и началом загрузки следующей в поисковой системе Google используется функция «Настройки сайта» в Google Search Console

Clean-param – директива используется для удаления параметров из url-адресов сайта. Учитывается только роботами Яндекса.

  • Может использоваться для удаления меток отслеживания, фильтров, идентификаторов сессий и других параметров.
  • Для правильной обработки меток роботами Google используется функция «Параметры URL» в Google Search Console.
04-clean-param.jpg
Рис. 4 Clean-param

2. Использование Google Search Console (GSC)

Как говорилось ранее, часть функций, которые можно указать для роботов Яндекса в robots.txt, для роботов Google надо указывать в Google Search Console.

Чтобы указать главное зеркало в Google необходимо подтвердить оба зеркала (www.site.ru и site.ru) в GSC. Зайти в настройки сайта (знак шестеренки), там выбрать ссылку «Настройка сайта» и в блоке «Основной домен» выбрать главное зеркало и сохранить изменения.

05-glavnoe-zerkalo-google.jpg

Чтобы ограничить скорость сканирования сайта роботами Google необходимо подтвердить сайт в GSC. Зайти в настройки сайта (знак шестеренки), там выбрать ссылку «Настройка сайта», в блоке «Частота сканирования» выбрать пункт «Ограничить максимальную скорость сканирования Google» и выставить приемлемое значение, после чего сохранить изменения.

06-skorost-skanirovaniya-google.jpg

Для того чтобы задать, как Google будет обрабатывать параметры в url-адресах сайта необходимо подтвердить сайт в GSC. Зайти в раздел «Сканирование» – «Параметры URL», нажать на кнопку «Добавление параметра», заполнить соответствующие поля и сохранить изменения.

  • В поле «Параметр» добавляется сам параметр. Это поле является регистрозависимым.
  • В поле «Изменяет ли этот параметр содержание страницы, которое видит пользователь?», вне зависимости от реального значения параметра, рекомендуем выбирать пункт «Да, параметр изменяет, реорганизует или ограничивает содержимое страницы», так как при выборе варианта «Нет, параметр не влияет на содержимое страницы (например, отслеживает использование) есть вероятность того что, одна страница с параметром все же попадет в индекс.
  • Выбор в поле «Как этот параметр влияет на содержимое страницы?» влияет только на то как этот параметр будет отображаться в списке других параметров в GSC, поэтому допускается выбор любого значения.
  • В блоке «Какие URL содержащие этот параметр, должен сканировать робот Googlebot?» выбор должен делаться исходя из того, что за параметр вводится. Если это метки для отслеживания, рекомендуется выбирать «Никакие URL». Если это какие-то GET параметры для продвигаемых страниц, выбирать стоит «Каждый URL».
07-parametri-url.jpg

Если робот Google уже нашел какие-либо параметры на сайте, то вы увидите список этих параметров в таблице и сможете посмотреть примеры таких страниц.

3. Составление robots.txt

Рассмотрев основные директивы для работы с файлом robots.txt перейдем к составлению robots.txt для сайта.

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

1. Первым делом добавим в robots.txt три User-Agent с одной пустой строкой между каждой директивой

  • User-agent: Yandex
  • User-agent: Googlebot
  • User-agent: *

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

2. Каждому User-agent’у рекомендуется добавить директивы запрета индексации самых распространенных форматов документов

  • Disallow: *.pdf
  • Disallow: *.xls
  • Disallow: *.doc
  • Disallow: *.ppt
  • Disallow: *.txt

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

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

3. Каждому User-agent’у добавляем директиву разрешения индексации JS и CSS файлов

  • Allow: */<папка содержащая css>/*.css
  • Allow: */<папка содержащая js>/*.js

JS и CSS файлы открываются для индексации, так как часто они находятся в каталогах системных папок, но они требуются для правильного индексирования сайта роботами поисковых систем.

4. Каждому User-agent’у добавляем директиву разрешения индексации самых распространенных форматов изображений

  • Allow: */<папка содержащая медиа файлы>/*.jpg
  • Allow: */<папка содержащая медиа файлы>/*.jpeg
  • Allow: */<папка содержащая медиа файлы>/*.png
  • Allow: */<папка содержащая медиа файлы>/*.gif

Картинки открываем для исключения возможности случайного запрета их для индексации.

Так же как и с документами, если сейчас у вас на сайте нет графических изображений в каком-либо из перечисленных форматах, все равно лучше оставить эти строки.

5. Для User-agent’а Yandex добавляем директиву удаления меток отслеживания, чтобы исключить возможность появления дублей страниц в индексе поисковых систем

  • Clean-param: utm_source&utm_medium&utm_term&utm_content&utm_campaign&yclid&gclid&_openstat&from /

6. Эти же параметры закрываем в GSC в разделе «Параметры URL»

Внимание! Если закрыть от индексации роботами Google метки при помощи директивы запрета, есть вероятность того, что вы не сможете запустить на такие страницы рекламу в Google Adwords.

7. Для User-agent’а «*» закрываем метки отслеживания стандартной директивой запрета

  • Disallow: *utm
  • Disallow: *clid=
  • Disallow: *openstat
  • Disallow: *from

8. Далее задача закрыть от индексации все служебные документы, документы бесполезные для поиска и дубли других страниц. Директивы запрета копируются для каждого User-agent’а. Пример таких страниц:

  • Администраторская часть сайта
  • Персональные разделы пользователей
  • Корзины и этапы оформления
  • Фильтры и сортировки в каталогах

9. Последней директивой для User-agent’а Yandex указывается главное зеркало

  • Host: site.ru

10. Последней директивой, после всех директив, через пустую строку указываются директивы xml-карт сайта, если таковые используются на сайте

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

Шаблон, который можно взять за основу при составлении robots.txt

User-agent: Yandex

# Наиболее часто встречаемые расширения документов

Disallow: /*.pdf

Disallow: /*.xls

Disallow: /*.doc

Disallow: /*.ppt

Disallow: /*.txt

# Требуется для правильно обработки ПС

Allow: /*/<папка содержащая css>/*.css

Allow: /*/<папка содержащая js>/*.js

# Картинки

Allow: /*/<папка содержащая медиа файлы>/*.jpg

Allow: /*/<папка содержащая медиа файлы>/*.jpeg

Allow: /*/<папка содержащая медиа файлы>/*.png

Allow: /*/<папка содержащая медиа файлы>/*.gif

# Наиболее часто встречаемые метки для отслеживания рекламы

Clean-param: utm_source&utm_medium&utm_term&utm_content&utm_campaign&yclid&gclid&_openstat&from /

# При наличии фильтров и параметров добавляем и их в Clean-param

Host: site.ru

 

User-agent: Googlebot

Disallow: /*.pdf

Disallow: /*.xls

Disallow: /*.doc

Disallow: /*.ppt

Disallow: /*.txt

Allow: /*/<папка содержащая css>/*.css

Allow: /*/<папка содержащая js>/*.js

Allow: /*/<папка содержащая медиа файлы>/*.jpg

Allow: /*/<папка содержащая медиа файлы>/*.jpeg

Allow: /*/<папка содержащая медиа файлы>/*.png

Allow: /*/<папка содержащая медиа файлы>/*.gif

# У google метки, фильтры и параметры закрываются в GSC-Сканирование-Параметры URL

 

User-agent: *

# Метки, фильтры и параметры для других ПС закрываем по классическому стандарту

Disallow: /*utm

Disallow: /*clid=

Disallow: /*openstat

Disallow: /*from

Disallow: /*.pdf

Disallow: /*.xls

Disallow: /*.doc

Disallow: /*.ppt

Disallow: /*.txt

Allow: /*/<папка содержащая css>/*.css

Allow: /*/<папка содержащая js>/*.js

Allow: /*/<папка содержащая медиа файлы>/*.jpg

Allow: /*/<папка содержащая медиа файлы>/*.jpeg

Allow: /*/<папка содержащая медиа файлы>/*.png

Allow: /*/<папка содержащая медиа файлы>/*.gif

 

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

* Напомним, что в указанном шаблоне присутствует спецсимвол комментария «#», и все что находится справа от него предназначается не для роботов, а является подсказками для людей.

Важно! Когда копируете шаблон в текстовый файл, не забудьте убрать лишние пустые строки.

Пустые строки в robots.txt должны быть только:

  • Между последней директивой одного User-agent’а и следующим User-agent’ом.
  • Последней директивой последнего User-agent’а и директивой Sitemap.

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

4. Распространенные ошибки

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

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

User-agent: *

Disallow: /

Такая ошибка приводит к исключению всех страниц из индекса поисковых систем и полной потери поискового трафика.

4.2. Не закрытие от индексации меток отслеживания

Эта ошибка может привести к появлению большого количества дублей страниц, что негативно скажется на продвижении сайта

4.3. Неправильное зеркало сайта

User-agent: *

Host: site.ru # В то время, как правильное зеркало sub.site.ru

Скорее всего в большинстве случаев Яндекс просто проигнорирует эту директиву, но если, например, у вас есть несколько судбоменов для разных регионов, то есть вероятность того, что зеркала просто «склеятся».

Заключение

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

Надеемся, наш опыт, изложенный в данной статье, поможет вам разобраться с основными принципами составления robots.txt.


Полезные ссылки по теме:

24 комментария
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
  • Kirill Terentiev
    11
    комментариев
    0
    читателей
    Kirill Terentiev
    больше года назад
    "Недокументированные" возможности robots.txt

    Можно разместить вакансию, например.

    # Приглашаем на работу SEO-специалистов: оптимизаторов, аккаунт-менеджеров hh.ru/employer/18738
    User-agent: *
    Disallow:




    -
    0
    +
    Ответить
  • Прянница
    больше года назад
    И снова все игнорят((
    -
    1
    +
    Ответить
  • Прянница
    больше года назад
    Ребятки( Ну, кто-нибудь дайте конструктивный ответ на вопрос ниже..(
    -
    1
    +
    Ответить
    • Руслан Фатхутдинов
      19
      комментариев
      0
      читателей
      Руслан Фатхутдинов
      Прянница
      больше года назад
      На ваш вопрос ответил ниже, хочу немного дополнить его.
      Роботы могут попасть на какую-либо страницу не только перейдя по ссылке.
      Вариантов масса, стучалки, встроенные браузеры, криво установленный код метрики, "вражеская" ссылка из твиттера и так далее.

      -
      2
      +
      Ответить
    • Гость
      Прянница
      больше года назад
      Зависит  от того есть ли на сайте прямые ссылки, которые бы вели на путь в котором встречается /templates/ . Вдруг каким-то боком такие ссылки есть и даже из текстов. Тогда эти ссылки равны обычным битым ссылкам, пусть и отдающим код 404. Множество битых ссылок на сайте это хорошо?
      -
      0
      +
      Ответить
      • Прянница
        Гость
        больше года назад
        "которые бы вели на путь в котором встречается /templates/ ."

        Или имеете в виду, есть ли на сайте ссылки, в которых содержится /templates/, к примеру путь: /templates/pigs/failzagruzkki ??
        -
        2
        +
        Ответить
      • Прянница
        Гость
        больше года назад
        Если взять в расчет тот факт, что ссылок на /templates/ 1000% нет, то добавлять disallow не имеет смысла, так получается?
        -
        1
        +
        Ответить
        • Гость
          Прянница
          больше года назад
          Друзья, зачем придумывать себе сложности. Вы не можете быть на 1000% уверены, что там нет ссылки на этот раздел. Просто закройте данный раздел, и откройте нужные файлы. Так проще и быстрее
          -
          0
          +
          Ответить
  • Степка
    больше года назад
    А если есть папка /templates/, в которой находятся все шаблоны, в том числе и css и js. Css и js мы разрешаем индексацию, указывая, где они находятся. Нужно ли запрещать от индексации папку /templates/, если она и так выдает КОД 404 ?
    -
    7
    +
    Ответить
    • Руслан Фатхутдинов
      19
      комментариев
      0
      читателей
      Руслан Фатхутдинов
      Степка
      больше года назад
      Роботы не индексируют страницы с кодом ответа 404.
      Но они могут индексировать страницы, которые отдают код 200, которые находятся внутри каталогов, которые отдают код 404.
      Способов добраться до таких страниц много.
      И если поискать в выдаче поисковых систем, можно найти много подтверждений моим словам.
      Я предпочитаю лишний раз перестраховаться. В нашем деле это нелишнее :)
      Я советую закрыть папку /templates/ и открыть для индексации js и css файлы.
      -
      0
      +
      Ответить
    • Я
      Степка
      больше года назад
      Мне вот тоже интересно!! Если страницы выдают ошибку 404 not found, нужно ли их закрывать от индексации???

      Робот разве проиндексирует страницу, файлы, папки, если сервер им выдаст Код 404???
      -
      4
      +
      Ответить
      • Руслан Фатхутдинов
        19
        комментариев
        0
        читателей
        Руслан Фатхутдинов
        Я
        больше года назад
        Закрывать от индексации страницы, отдающие код отличный от 200 не надо.
        Но стоит учитывать, что "внутри" таких каталогов могут быть страницы, отдающие код ответа 200.

        -
        0
        +
        Ответить
      • Прянница
        Я
        больше года назад
        Действительно... А ведь куча технических файлов, которые и так не будут показываться, выведя ошибку 404
        -
        1
        +
        Ответить
  • Seo Boy
    4
    комментария
    0
    читателей
    Seo Boy
    больше года назад
    спасибо, все довольно понятно. если можно, подготовьте подобную статью для sitemap.xml. заранее спасибо.
    -
    4
    +
    Ответить
  • Андрей Макеев
    7
    комментариев
    0
    читателей
    Андрей Макеев
    больше года назад
    Молодец, Руслан! Хорошо и доступно написал, думаю эта статья будет многим полезна!
    -
    1
    +
    Ответить
  • PAvel
    больше года назад
    неплохая статья  но не полностью спалили все фишки
    -
    1
    +
    Ответить
  • Илья Долгополов
    15
    комментариев
    0
    читателей
    Илья Долгополов
    больше года назад
    Про Google Search Console нужно отдельную статью писать, там вопросов еще миллион, а ей почти никто не пользуется.
    -
    3
    +
    Ответить
  • Гость
    больше года назад
    Почему бы не выложить подкатом шаблоны роботов для самых популярных CMS, где уже будут закрыты стандартные для этих CMS дубли и все такое? Я когда начинал, мне дико не хватало таких шаблонов, которые сразу бы показали на какие косяки админки обращать внимание.
    -
    3
    +
    Ответить
    • Aberix
      0
      комментариев
      0
      читателей
      Aberix
      Гость
      больше года назад
      В принципе, в сети полно таких шаблонов для всех CMS.
      Вопрос — корректно ли они составлены? :)
      Битрикс с недавнего времени сам генерирует дефолтный роботс, где закрывает дубли. Удобно.
      -
      0
      +
      Ответить
  • Гость
    больше года назад
    Спс, полезно
    -
    0
    +
    Ответить
  • Ильфар
    больше года назад
    Теперь и я знаю как составить robots.txt, спасибо!
    -
    0
    +
    Ответить

Отправьте отзыв!
X | Закрыть