Robots и сайт: руководство по созданию Robots.txt

Файл robots.txt — это стандартный текстовый файл, определяющий наличие или отсутствие у поискового робота доступа к папкам, вложениям или страницам на вашем сайте. Этот файл работает по стандарту Robots Exclusion, который был определен в 1994 году. Robots.txt является связующим звеном между сайтами и роботами поисковых систем. Именно он “говорит” поисковым ботам, какие именно страницы на сайте стоит индексировать (новости, статьи, карточки товаров), а какие будут закрыты от индексации (например, личный кабинет, панель администратора и др.).

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

Как это работает?

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

Robots.txt стоит их 2 частей: User-agent и Директивы (правила).

User-agent

User-agent — это имя робота поисковых систем. Все они перечислены в базе данных роботов Интернета. Директивы -  это инструкции для User-agent. Файл robots.txt начинается со строки User-Agent, после которой идет список директив (правил) для каждого отдельного поискового робота. Пример самого простого файла robots.txt для поискового робота Google:

User-agent: Googlebot

Disallow: /

Данный файл robots.txt запрещает Googlebot полностью сканировать сайт. Хотите дать инструкции для нескольких поисковых систем? Создайте отдельные User-agent и директивы для каждого робота. Например:

User-agent: Googlebot

Disallow: /

User-agent: Bingbot

Disallow: /

В данном случае поисковые роботы Google и Bing не будут полностью индексировать сайт. Здесь команда Disallow относится только к роботам, перечисленным выше. Если необходимо установить общие инструкции для всех поисковых ботов, то воспользуйтесь звездочкой (*). 

Вот так будет выглядеть простой файл robots.txt, если необходимо создать общие инструкции для всех поисковых ботов, а именно РАЗРЕШИТЬ индексацию всего сайта (нет значка “/”): 

User-agent: *

Disallow:

Обратите внимание, что поисковики будут выбирать наиболее конкретные директивы User-agent при сканировании файла robots.txt. Например, у вас есть четыре группы User-agent: с оператором звездочка (*), для Googlebot, для Googlebot-News и для Bingbot. И ваш сайт посетил User-agent Googlebot-Images. Этот робот будет следовать инструкциям, прописанным в Googlebot, так как это наиболее точный набор команд, относящихся к нему.

User-Agent Search Engine Field
baiduspider Baidu General
baiduspider-image Baidu Images
baiduspider-mobile Baidu Mobile
baiduspider-news Baidu News
baiduspider-video Baidu Video
bingbot Bing General
msnbot Bing General
msnbot-media Bing Images & Video
adidxbot Bing Ads
Googlebot Google General
Googlebot-Image Google Images
Googlebot-Mobile Google Mobile
Googlebot-News Google News
Googlebot-Video Google Video
Mediapartners-Google Google AdSense
AdsBot-Google Google AdWords
slurp Yahoo! General
yandex Yandex General

Disallow

Вторая часть robots.txt — Disallow. Эта команда дает инструкции поисковым роботам о том, какие именно URL им запрещено сканировать. Количество записей Disallow для каждого User-agent неограниченно. Правило Disallow относится только к тем поисковым роботам, которые указаны в строке User-agent выше. Оставлять пустой строку Disallow нельзя. Это будет означать, что поисковым роботам разрешено проиндексировать все страницы сайта. 

Чтобы ПОЛНОСТЬЮ ЗАПРЕТИТЬ какому-либо поисковому роботу (или нескольким поисковым роботам) доступ на сайт,  используйте оператор «слеш» (/).

User-agent: *

Disallow:/

С помощью Disallow вы также можете дать более конкретные инструкции поисковым ботам, запретив им индексировать ОТДЕЛЬНЫЕ страницы, подкаталоги и файлы. Для запрета индексации отдельной страницы используйте соответствующую ссылку в строке disallow:

User-agent: *

Disallow: /directory/page1.html

Чтобы блокировать доступ к отдельным каталогам и папкам, используются команды:

User-agent: *

Disallow: /folder5/

Disallow: /folder8/

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

User-agent: *

Disallow: /*.ppt

Disallow: /images/*.jpg

Disallow: /duplicatecontent/copy*.html

В данном примере видно, что файлы https://mysite.ru/presentations/slideshow.ppt и изображения https://mysite.ru/images/example.jpg — запрещены, в то время, как страница https://mysite.ru/presentations/slideshowtranscript.html — нет. 

Третье правило запрещает индексацию любого файла в папке /duplicatecontent/, который начинается с «copy» и завершается «.html». Таким образом для всех поисковых роботов будут закрыты следующие страницы:

  • /duplicatecontent/copy.html
  • /duplicatecontent/copy1.html
  • /duplicatecontent/copy2.html
  • /duplicatecontent/copy.html?id=1234

Запрет не распространяются на каталоги и подкаталоги, в ссылках которых также присутствует «copy.html».

При создании файла robots.txt вы можете столкнуться с такой проблемой: некоторые URL могут содержать в тексте ссылки название типов файлов, запрещенных к индексации. Например: Disallow: /images/*.jpg запрещает к индексации все страницы, конструкции https://mysite.ru/image.jpg, www.example.com/images/example.jpg и др. Под это правило попадает и страница description-of-.jpg.html (она содержит .jpg), которую, на самом деле, мы не хотим закрывать от индексации. Чтобы решить данную проблему, добавим спецсимвол $: Disallow: /images/*.jpg$. Теперь файлы типа https://mysite.ru/image.jpg будеут закрыты от индексации, а файлы, содержащие .jpg  названии будут индексироваться. 

Еще один пример: 

User-agent: *

Disallow: /example$

Здесь мы заброкировали страницу  https://mysite.ru/example, но не страницу  https://mysite.ru/example.html/.

Allow

Возможно, вам потребуется запретить индексацию всех страниц каталога (сайта), кроме одной. В этом случае можно пойти сложным путем, прописав директиву Disallow для каждого отдельного файла (кроме того, который должен быть проиндексирован), или же воспользоваться правилом Allow. Данная директива будет работать, согласно её прямому назначению (allow c англ. - разрешать).

Итак, чтобы разрешить поисковикам индексацию файлов в запрещенной папке, просто добавьте строку Allow:

User-agent: *

Allow: /folder/subfolder/file1.html

Disallow: /folder/subfolder/

Шаблоны и обозначения для Allow такие же, как и для Disallow.

На деле директива Allow применяется не так часто, так как в ней нет прямой необходимости. В большинстве случаев SEO специалисты и технические специалисты используют правило Disallow для различных сайтов, а правило Allow действует автоматически. Другими словами, все что не запрещено - разрешено. 

Нестандартные директивы

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

Команда “Host”

Директива Host  предназначена исключительно для поисковой системы Yandex. Она указывает поисковому роботу, какое зеркало сайта считать главным - с www или без.

User-agent: Yandex

Host: www.mysite.ru

или

User-agent: Yandex

Host: mysite.ru

Host  позволяет избегать дублирования контента. Мы не рекомендуем её использовать. Лучшим решением будет использовать 301 редирект с www.mysite.ru на mysite.ru.

Команда “Crawl-delay”

Директива Crawl-delay (с англ. “обход-задержка”)  нужна для того, чтобы установить для поисковых роботов время, которое они должны выдерживать перед загрузкой страниц. Например: 

User-agent: Yandex

Disallow: /page

Crawl-delay: 5

В данном случае поисковой робот Yandex будет скачивать страницы сайта не чаще, чем раз в пять секунд. Вы также можете установить дробное значение, например 0.5 секунд. Это не будет гарантировать, что поисковой робот буде заходить на ваш сайт каждый полсекунды, но в целом может положительно сказаться на скорости обхода.

Директива Crawl-delay воспринимается разными поисковыми системами по-разному. Например, Yahoo! и Bing используют значение Crawl-delay в качестве времени ожидания между действиями в процессе обхода, а Yandex - как время ожидания для получения доступа к сайту. Что же касается Googlebot, то он не учитывает данную директиву. 

Мы не рекомендуем использовать Crawl-delay крупным интернет-магазином и сайтам с большим количеством страниц, которые дают хороший трафик. Почему? Все просто - эта директива значительно замедлит индексацию вашего сайта. С другой стороны, если речь идет о поисковых системах, которые не дают вам ценного трафика, добавить Crawl-delay будет полезно. Этим вы сможете снизить нагрузку на сервер и увеличить скорость загрузки страниц. 

Команда “Sitemap”

Используйте директиву Sitemap, чтобы сообщить поисковым системам, где находится карта вашего сайта. Например: 

User-agent: *

Disallow: /page

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

Для данной директивы нет определенного места в файле robot.txt, но для того, чтобы вам было проще работать, мы рекомендуем прописать её в конце.  

Создавайте sitemap для каждой карты сайта, в том числе для изображений и видео или index-файлов. Это позволит поисковым роботам быстрее проиндексировать страницы вашего сайта, понять, как часто обновляется информация и какие страницы наиболее приоритетны. 

Зачем мне все это?

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

  • У вас есть личные папки, вложения, файлы на сайте? Имейте в виду, что любой посторонний может прочитать robots.txt. Так что, выделяя расположение частного файла с помощью директивы disallow, вы покажете его всему миру.
  • Запрещая поисковым роботам индексировать определенные файлы, вы тем самым выделяете наиболее важные страницы сайта. Другими словами, вы как будто говорите: “Yandex, не смотри эти страницы, они не в приоритете”. И Yandex обращает свое внимание туда, куда доступ открыт, и начинает просматривать и индексировать то, что нужно вам.
  • Если вы не получаете трафик с определенных поисковых систем, запретите их в User-agent, чтобы поисковые роботы не нагружали ваш сервер. Нет никакого смысла, чтобы Yahoo! или Baidu просматривали ваши файлы, если они не генерируют органический трафик.

Вы также можете воспользоваться robots.txt, чтобы избежать дублирования страниц, использующих одинаковый контент. Для исключения этих URL-адресов, воспользуйтесь спецсимволами, например: 

User-agent: *

Disallow: /*?

В данном случае поисковым роботом запрещается индексация страниц, содержащих в URL-адресах вопросительный знак. Это особенно актуально для сайтов интернет-магазинов, которые имеют дело с большим количеством URL-параметров: из-за многочисленных фильтров создается большой объем дублированного контента.

Общие проблемы с Robots.txt и как их исправить

Чтобы проверить, есть ли у вас проблемы с robots.txt, откройте Google Webmaster и перейдите в отчет статистики сканирования. Здесь вы увидите, есть ли резкое расхождение в количествах просмотров на каждый день; Если да - это может указывать на проблему с вашим robots.txt.

Cамая главная проблема с файлами robots.txt — это случайно запрещенные страницы, которые бы вы хотели проиндексировать. Эту информацию можно найти в отчете об ошибках сканирования. Проверьте страницы, выдающие код ответа 500. Это код часто выдается на страницах, заблокированных robots.txt.

Общие ошибки URL в robots.txt

Проверьте любые URL-адреса, выдающие код ошибки 500.

Ряд других распространенных проблем с файлом robots.txt:

  • Случайное добавление слеша (/) в конце имени файла. Даже если в вашем основном URL-адресе есть завершающий слэш, при добавлении его в конце строки robots.txt, боты будут принимать его в качестве каталога, а не файла, и начнут блокировать каждую страницу в папке. Дважды проверяйте строки disallow, чтобы исключить завершающие слеши, которых не должно быть.
  • Блокировка таких ресурсов, как CSS и JavaScript с помощью robots.txt. От этого зависит, как поисковые службы будут видеть вашу страницу. Недавно Google заявил, что блокировка CSS и Javascript может негативно повлиять на SEO. Google может читать CSS и JS код и использовать его, чтобы сделать выводы о вашем сайте. Когда поисковая система видит заблокированные таким способом ресурсы, она не может корректно отобразить страницу.
  • Использования более одной директивы User-agent в каждой строке. Поисковые системы будут игнорировать директивы, содержащие более одного User-agent в строке. В результате все правила не будут действовать.
  • Неправильное использование заглавных букв в именах директив, субдиректив и файлов. Если основные директивы robots.txt, не чувствительны к регистру символов, то их значения — чувствительны. Таким образом, поисковые системы видят Disallow: page.html, Disallow: Page.html и Disallow: page.HTML, как три отдельных файла. Если ваш файл robots.txt включает директивы для Page.html, но ваш канонический URL полностью состоит из строчных букв, эта страница будет сканироваться.
  • А вы знали, что в robots.txt можно использовать мета-тег  noindex? Если да, то забудьте. В 2015 году  Джон Мюллер, ведущий аналитик компании Google, посоветовал избегать подобных хитростей. 

Max Prin about disallow and noindexJohn Mueller about noindex and disallow

Мы вам рекомендуем прислушаться к его мнению и использовать только disallow и allow в robots.txt.

  • Несоответствие карты сайта и robots.txt. Часто это  происходит, если вы используете различные инструменты для создания sitemap и robots.txt. Но ошибку легко обнаружить и исправить. Запросите и просканируйте карту сайта через Google Webmaster. Он предоставит вам список ошибок, которые вы можете сверить с вашим файлом robots.txt ,чтобы увидеть, исключили ли вы их.

Несоответствие карты сайта и robots.txt

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

Ну и конечно, еще одна распространенная ошибка в работе с robots.txt - это элементарные ошибки в синтаксисе. Особенно, если вы далеки от технической части вопроса. Что делать в такой случае? Конечно, обратиться к тому, к более компетентен в этих вопросах и знает, как все это устроено. Технический специалист сразу увидит, в чем проблема и почему при индексации файла появляются ошибки. Второй вариант - напрямую обратиться в Google, а именно к инструменту проверки файла robots.txt. Данные сервис позволит вам не только увидеть ошибки в файле, но и обнаружить запрещенные страницы, проиндексированные Google.

Аналогичный сервис есть и у Yandex в панели для Вебмастеров. 

Инструмент проверки robots.txt

Будьте предельно внимательны при создании или изменении файла robots.txt и обязательно проверяйте файл в вышеупомянутых сервисах. Самые незначительные, на ваш взгляд, ошибки могут привести к тому, что сайт будет медленно работать, а в худшем случае - вообще выпадет из поиска. 

Есть вопросы? Будем рады ответить! 

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

Тема:

SEO