Enjoyed the Read?

Don’t miss our next article!

Robots.txt и SEO: Всё что вам нужно знать

Avatar
Глава отдела контента в Ahrefs (проще говоря, я отвечаю за то, чтобы каждый пост в блоге был КРУТЫМ). Основатель The SEO Project
    Robots.txt — один из самых простых файлов на сайте. Но с ним проще всего наломать дров. Один лишний символ может пустить все ваши усилия по SEO насмарку, запретив поисковикам сканировать важный контент на сайте.

    Неправильная конфигурация файла robots.txt — очень распространённое явление даже среди опытных SEO специалистов.

    В этом руководстве вы узнаете:

    Что такое файл robots.txt?

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

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

    важное примечание

    Большинство поисковых систем послушны. Они обычно не вламываются на сайт. При этом, некоторые не стесняются и обходят условные замки.

    Google к ним не относится. Он соблюдает инструкции в файле robots.txt.

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

    Как выглядит файл robots.txt?

    Вот базовый формат файла robots.txt:

    Sitemap: [URL, где расположена карта сайта]
    
    User-agent: [идентификатор бота]
    [директива 1]
    [директива 2]
    [директива ...]
    
    User-agent: [ещё один идентификатор бота]
    [директива 1]
    [директива 2]
    [директива ...]

    Если вы никогда раньше не видели этих файлов, они могут вас напугать. Но синтаксис довольно прост. Вкратце, вы указываете правила для бота, указывая директивы для его user-agent.

    Давайте изучим оба компонента подробнее.

    User-agent

    У каждой поисковой системы есть свой особый user-agent. В файле robots.txt вы можете указать инструкции для каждого из них. Есть сотни user-agent. Вот несколько полезных для SEO:

    • Google: Googlebot
    • Google Images: Googlebot-Image
    • Bing: Bingbot
    • Yahoo: Slurp
    • Baidu: Baiduspider
    • DuckDuckGo: DuckDuckBot
    Примечание.
    Для всех user-agent в файле robots.txt учитывается регистр.

    Чтобы обозначить инструкции для всех user-agent, используйте маску со звёздочкой (*).

    Например, вы хотите запретить сканировать сайт всем роботам кроме Googlebot. Вот как это сделать:

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

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

    Исключением из правила будет случай, когда вы объявляете один и тот же user-agent более одного раза. В таком случае, робот будет следовать всем прописанным для него директивам инструкциям.

    ВАЖНО

    Краулеры следуют только тем правилам, которые прописаны под точным названием user-agent. Поэтому файл robots.txt выше блокирует всех роботов кроме Googlebot (и других роботов Google). Googlebot игнорирует более менее конкретное объявление user-agent.

    Директивы

    Директивы — это правила, которые должен соблюдать user-agent.

    Поддерживаемые директивы

    Вот список директив и примеры их использования, которые поддерживает Google.

    Disallow

    Используйте эту директиву, чтобы закрыть поисковым системам доступ к файлам и страницам по определённому пути. Например, если вы хотите закрыть доступ к блогу и всем его страницам для всех поисковых систем, ваш файл robots.txt будет выглядеть примерно так:

    User-agent: *
    Disallow: /blog
    
    Примечание.
    Поисковые системы будут игнорировать директиву disallow, если вы не пропишите путь после неё.

    Allow

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

    User-agent: *
    Disallow: /blog
    Allow: /blog/доступная-запись

    В этом примере поисковые системы могут зайти на /blog/доступная-запись. Но у них нет доступа к:

    /blog/другая-запись

    /blog/ещё-одна-запись

    /blog/download-me.pdf

    И Google, и Bing поддерживают эту директиву.

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

    Если вы будете неосторожны, директивы allow и disallow могут легко конфликтовать друг с другом. В примере ниже мы запрещаем доступ к

    /blog/ и разрешаем доступ к /blog.

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

    В данном случае URL /blog/post-title/ одновременно разрешён и запрещён. Так какая же директива сработает?

    Для Google и Bing главной будет та директива, у которой больше символов. В данном случае победит директива disallow.

    Disallow: /blog/ (6 символов)

    Allow: /blog (5 символов)

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

    Примечание.
    Здесь, /blog (без косой черты в конце) доступен к сканированию.

    Важно то, что это касается только Google и Bing. Другие поисковые системы слушают первую подходящую директиву. В этом случае это disallow.

    Sitemap

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

    Вот пример файла robots.txt c директивой Sitemap.

    Sitemap: https://www.domain.com/sitemap.xml
    
    User-agent: *
    Disallow: /blog/
    Allow: /blog/post-title/

    Насколько важно указывать карту (карты) сайта в файле robots.txt? Если вы её уже указали в поисковой консоли, то для Google этого достаточно. Однако другие поисковые системы, такие как Bing, смотрят расположение карты сайта в файле. Поэтому не стоит забывать об этой директиве.

    Обратите внимание, что вам не нужно повторять директиву Sitemap для разных user-agent. Она работает для всех. Поэтому карту сайта лучше указывать в начале, или в конце файла robots.txt. Например:

    Sitemap: https://www.domain.com/sitemap.xml
    
    User-agent: Googlebot
    Disallow: /blog/
    Allow: /blog/post-title/
    User-agent: Bingbot
    Disallow: /services/

    Google поддерживает директиву sitemap, как и Ask, Bing и Yahoo.

    Примечание.
    В файле robots.txt можно указывать столько карт сайта, сколько вам нужно.

    Неподдерживаемые директивы

    Вот несколько директив, которые Google больше не поддерживает. Некоторые из них он никогда не поддерживал.

    Crawl-delay

    Раньше эту директиву можно было использовать для указания задержки сканирования в секундах. Например, если вы хотели, чтоб Googlebot ждал 5 секунд после каждого сканирования, вы бы установили задержку в 5 секунд:

    User-agent: Googlebot
    Crawl-delay: 5

    Google больше не поддерживает эту директиву, хотя Bing и Yandex поддерживают.

    Тем не менее, будьте осторожны, указывая директиву. Особенно на большом сайте. Если вы выставите задержку в 5 секунд, вы ограничиваете роботов к 17280 URL в день. Если на вашем сайте миллионы страниц, то это не очень полезно. Но если у вас небольшой сайт, то сэкономите немного трафика.

    Noindex

    Эту директиву Google никогда официально не поддерживал. Однако до недавнего времени считалось, что у Google есть некоторый «код, который обрабатывает неподдерживаемые и неопубликованные правила (такие как noindex)». Поэтому, если вы хотите запретить Google индексировать все посты в вашем блоге, вы можете использовать следующую директиву:

    User-agent: Googlebot
    Noindex: /blog/

    Однако 1 сентября 2019 года Google дал понять, что эта директива не поддерживается. Если вы хотите исключить страницу или файл из поисковых систем, используйте вместо него тег meta robots или HTTP-заголовок x‑robots.

    Nofollow

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

    User-agent: Googlebot
    Nofollow: /blog/

    Google объявил, что с 1 сентября 2019 года эта директива официально не поддерживается. Если сейчас вы хотите запретить переход по всем ссылкам на странице, следует использовать мета тег robots или заголовок x‑robots. Если вы хотите запретить Google переходить по определенным ссылкам на странице, используйте атрибут ссылки rel = “nofollow”.

    Нужен ли вам файл robots.txt?

    Многим сайтам, особенно маленьким, не обязательно иметь файл robots.txt.

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

    • Избежать сканирования дублированного контента;
    • Скрыть от индексации части сайта (например, когда сайт в разработке);
    • Избежать сканирования страниц с результатами внутреннего поиска;
    • Предотвратить перегрузку сервера;
    • Избежать растрачивания “краулингового бюджета.”
    • Скрыть от индексации картинки, видео и другие файлы.

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

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

    Как найти файл robots.txt?

    Если у вас на сайте уже есть файл robots.txt, он будет доступен по адресу domain.com/robots.txt. Перейдите по URL в браузере. Если вы видите что-то подобное, то файл robots.txt у вас есть:

    ahrefs robots

    Как создать файл robots.txt

    Если файла robots.txt у вас ещё нет, его легко создать. Откройте пустой .txt документ и начните вписывать директивы. Например, если вы хотите запретить всем поисковым системам сканировать каталог /admin/, то файл будет выглядеть примерно так:

    User-agent: *
    Disallow: /admin/

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

    Продолжайте составлять директивы пока не напишите всё что нужно. Сохраните файл как “robots.txt.”

    Также можно использовать генератор robots.txt вроде этого.

    robots creator

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

    Недостаток в том, что их сложнее настраивать.

    Куда поместить файл robots.txt

    Поместите файл robots.txt в корневой каталог поддомена, к которому он применяется. Например, чтобы контролировать сканирование на domain.com, файл robots.txt должен быть доступен по адресу domain.com/robots.txt.

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

    Лучшие практики robots.txt

    Чтобы избежать распространённых ошибок, следуйте этим правилам.

    Каждую директиву прописывайте с новой строки

    Каждая директива должна быть прописана на новой строке. Иначе поисквые системы её не поймут.

    Плохо:

    User-agent: * Disallow: /directory/ Disallow: /another-directory/

    Хорошо:

    User-agent: *
    Disallow: /directory/
    Disallow: /another-directory/

    Используйте маски для упрощения

    Маски (*) можно использовать не только для определения всех user-agent, но и для шаблонов URL адресов при объявлении директив. Например, если вы хотите запретить поисковым системам доступ к URL-адресам категорий товаров с параметрами на вашем сайте, вы можете перечислить их следующим образом:

    User-agent: *
    Disallow: /products/t-shirts?
    Disallow: /products/hoodies?
    Disallow: /products/jackets?
    …

    Но это не очень эффективно. Было бы использовать маску, как здесь:

    User-agent: *
    Disallow: /products/*?

    В этом примере поисковым системам запрещается сканировать все URL-адреса в подпапке /product/ со знаком вопроса. Другими словами, любые URL с параметрами категории товаров.

    Используйте знак “$” для определения окончания URL адреса

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

    User-agent: *
    Disallow: /*.pdf$
    
    В этом примере у поисковых систем нет доступа к URL-адресам, которые заканчиваются на .pdf. Это означает, что они не могут получить доступ к /file.pdf, но они могут получить доступ к /file.pdf?id=68937586, потому что он не заканчивается на ".pdf".

    Используйте каждый user-agent не больше одного раза

    Если вы указали один и тот же user-agent несколько раз, Google поймёт. Он просто объединит все правила из разных мест в одно и будет следовать им всем. Например, если в вашем файле robots.txt были следующие user-agent и директивы…

    User-agent: Googlebot
    Disallow: /a/
    
    User-agent: Googlebot
    Disallow: /b/

    … Googlebot не будет сканировать ни одну из подпапок.

    Тем не менее, не стоит прописывать user-agent больше одного раза, потому что так вы будете меньше путаться. Другими словами, если всё будет упорядочено и просто, то вы не будете совершать критических ошибок.

    Будьте конкретными, чтобы избежать случайных ошибок

    Если дать нечёткие инструкции при составлении директив, вы можете легко совершить ошибку. Это может иметь катастрофические последствия для вашего SEO. Предположим, что у вас есть мультиязычный сайт и вы работаете над немецкой версией, которая будет доступна в подпапке /de/.

    Поскольку она ещё не полностью готова, вы хотите закрыть поисковым системам доступ к ней.

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

    User-agent: *
    Disallow: /de

    Но вы также запретите сканировать все страницы и файлы, которые начинаются на
    /de.

    Например:

    /designer-dresses/

    /delivery-information.html

    /depeche-mode/t-shirts/

    /definitely-not-for-public-viewing.pdf

    В данном случае решение простое: добавить в конце косую черту.

    User-agent: *
    Disallow: /de/

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

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

    # This instructs Bing not to crawl our site.
    
    User-agent: Bingbot
    Disallow: /

    Роботы будут игнорировать все строки, которые начинаются с этого символа.

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

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

    Например, если ваш основной сайт находится на domain.com, а ваш блог — на blog.domain.com, вам понадобятся два файла robots.txt. Один должен идти в корневой каталог основного домена, а другой — в корневой каталог блога.

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

    Ниже приведены несколько примеров файлов robots.txt. Я их привожу только для примера, но если какой-то вам подходит, скопируйте его в текстовый документ, сохраните как «robots.txt» и загрузите в соответствующий каталог.

    Полный доступ для всех роботов

    User-agent: *
    Примечание.
    Если не указать URL, директива становится лишней. Другими словами, поисковые системы её игнорируют. Поэтому данная директива запрета ни на что не влияет. Поисковые системы всё равно будут сканировать все страницы и файлы.
    Disallow:

    Нет доступа всем роботам

    User-agent: *
    Disallow: /

    Заблокировать доступ к одной подпапке для всех роботов

    User-agent: *
    Disallow: /folder/

    Заблокировать доступ к одной подпапке для всех роботов (оставить доступным один файл)

    User-agent: *
    Disallow: /folder/
    Allow: /folder/page.html

    Заблокировать один файл для всех ботов

    User-agent: *
    Disallow: /this-is-a-file.pdf

    Заблокировать один тип файлов (PDF) для всех ботов

    User-agent: *
    Disallow: /*.pdf$

    Запретить сканирование URL адресов с параметрами только для Googlebot

    User-agent: Googlebot
    Disallow: /*?

    Как найти ошибки в файле robots.txt

    В файле robots.txt очень легко допустить ошибку, поэтому стоит за этим следить особенно внимательно.

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

    Нужно проверить ошибки для отдельной страницы?

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

    blocked by robots txt 1

    Доступ к отправленному URL заблокирован в файле robots.txt

    submitted url blocked by robots

    Это означает, что по крайней мере один из URL-адресов в карте сайта заблокирован в файле robots.txt.

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

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

    robots txt tester

    Заблокированы в файле robots.txt

    blocked by robots txt

    Это означает, что у вас есть контент, заблокированный в файле robots.txt, который в настоящее время не индексируется в Google.

    Если это важный контент и его нужно проиндексировать, удалите запрет сканирования в файле robots.txt. (Также стоит убедиться, что контент не запрещён к индексированию тегом noindex). Если вы запретили доступ к контенту в файле robots.txt чтобы исключить его из индекса Google, удалите запрет сканирования и используйте вместо него метатег robots или x‑robots-header. Это единственный способ гарантированно исключить контент из индекса Google.

    Примечание.
    Если вы пытаетесь убрать страницу из результатов поиска, обязательно нужно убрать запрет на сканирование. Если этого не сделать, Google не увидит тег noindex или HTTP заголовок. И страница останется в индексе.

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

    indexed though blocked

    Это означает, что часть контента, заблокированного robots.txt, все еще находится в индексе Google.

    Повторюсь, что если вы хотите исключить контент из результатов поиска Google, robots.txt вам не поможет. Удалите запрет на сканирование и вместо этого используйте мета-тег robots или HTTP-заголовок x‑robots-tag.

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

    FAQs

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

    Какой максимальный размер файла robots.txt?

    500 килобайтов (примерно).

    Где находится файл robots.txt в WordPress?

    Там же: domain.com/robots.txt.

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

    Либо вручную, либо воспользоваться одним из SEO плагинов для WordPress наподобие Yoast. Он позволяет редактировать файл прямо из админпанели WordPress.

    Что будет, если в файле robots.txt запретить доступ к контенту с тегои noindex?

    Google не сможет увидеть директиву noindex, потому что он не будет сканировать страницу

    Заключение

    Robots.txt — это простой, но важный файл. Используйте его с умом и увидите позитивное влияние на SEO. Используйте его как попало и, ну, сами пожалеете об этом.

    Остались вопросы? Оставьте комментарий или напишите мне в Twitter.

    Перевел Дмитрий Попов, владелец Affilimarketer.com

    Shows how many different websites are linking to this piece of content. As a general rule, the more websites link to you, the higher you rank in Google.

    Shows estimated monthly search traffic to this article according to Ahrefs data. The actual search traffic (as reported in Google Analytics) is usually 3-5 times bigger.