Правильный Robots.txt для WordPress 2020 — подробная настройка

Правильный Robots.txt для WordPress Сайты
Правильный Robots.txt для WordPress в 2020-м году. Несколько версий под разные нужды: простая базовая и расширенная - с проработкой под каждую поисковую систему.

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

Если файл будет настроен неправильно, то сайт может неправильно индексироваться и терять большие доли трафика. Грамотная настройка наоборот позволяет улучшить SEO, и вывести ресурс в топы.

Сегодня мы поговорим о настройке Robots.txt для WordPress. Я покажу вам правильный вариант, который сам использую для своих проектов.

Что такое Robots.txt

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

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php

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

Директива Значение Пояснение
User-agent: Yandex, Googlebot и т.д. В этой директиве можно указать к какому конкретно роботу мы обращаемся. Обычно используются те значения, которые я указал.
Disallow: Относительная ссылка Директива запрета. Ссылки, указанные в этой директиве будут игнорироваться поисковыми системами.
Allow: Относительная ссылка Разрешающая директива. Ссылки, которые указаны с ней будут проиндексированы.
Sitemap: Абсолютная ссылка Здесь указывается ссылка на XML-карту сайта. Если в файле не указать эту директиву, то придется добавлять карту вручную (через Яндекс.Вебмастер или Search Console).
Crawl-delay: Время в секундах (пример: 2.0 — 2 секунды) Позволяет указать таймаут между посещениями поисковых роботов. Нужна в случае, если эти самые роботы создают дополнительную нагрузку на хостинг.
Clean-param: Динамический параметр Если на сайте есть параметры вида site.ru/statia?uid=32, где ?uid=32 — параметр, то с помощью этой директивы их можно скрыть.

В принципе, ничего сложного. Дам дополнительные пояснения по директивам Clean-param (откройте вкладку).

Подробнее о Clean-param

Параметры, как правило, используются на динамических сайтах. Они могут передавать поисковым системам лишнюю информацию — создавать дубли. Чтобы избежать этого, мы должны указать в Robots.txt директиву Clean-param с указанием параметра и ссылки, к которой это параметр применяется.

В нашем примере site.ru/statia?uid=32 — site.ru/statia — ссылка, а все, что после знака вопроса — параметр. Здесь это uid=32. Он динамический, и это значит, что параметр uid может принимать другие значения.

Например, uid=33, uid=34…uid=123434. В теории их может быть сколько угодно, поэтому мы должны закрыть от индексации все параметры uid. Для этого директива должна принять такой вид:

Clean-param: uid /statia # все параметры uid для statia будут закрыты

Более подробно о том, что такое Robots.txt можно узнать из Яндекс.Помощи. Или из этого видеоролика:

Базовый Robots.txt для WordPress

Совсем недавно я приобрел плагин Clearfy Pro для своих проектов. Там очень много разных функций, и одна из них — создание идеального Robots.txt. На самом деле насколько он идеален — я не знаю, вебмастера расходятся во мнениях.

Кто-то предпочитает делать более краткие версии роботса, указывая правила для всех поисковых систем сразу. Другие прописывают отдельные правила для каждого поисковика (в основном для Яндекса и Гугла).

Что из этого правильно — точно сказать не могу. Однако я предлагаю вам ознакомиться с базовой версией Robots.txt для WordPress от Clearfy Pro. Я немного подредактировал ее — указал директиву Sitemap. Удалил директиву Host.

User-agent: *
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-json/
Disallow: /xmlrpc.php
Disallow: /readme.html
Disallow: /*?
Disallow: /?s=
Allow: /*.css
Allow: /*.js
Sitemap: https://site.ru/sitemap.xml

Не могу сказать, что это лучший вариант для блогов на ВП. Но во всяком случае, он лучше, чем то, что нам предлагает Yoast SEO по умолчанию.

Расширенный Robots.txt для WordPress

Теперь посмотрим на расширенную версию Robots.txt для WordPress. Наверняка вы знаете, что все сайты на WP имеют одинаковую структуру. Одинаковые названия папок, файлов и т.д. позволяют специалистам выявить наиболее приемлемый вариант роботса.

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

Итак, правильный Robots.txt для WordPress выглядит следующим образом:

User-agent: * # Для всех поисковых систем, кроме Яндекса и Гугла   
Disallow: /cgi-bin          
Disallow: /?                
Disallow: /wp-              
Disallow: *?s=              
Disallow: *&s=             
Disallow: /search/  
Disallow: /author/
Disallow: /users/      
Disallow: */trackback                     
Disallow: */feed            
Disallow: */rss             
Disallow: */embed          
Disallow: /xmlrpc.php      
Disallow: *utm=            
Disallow: *openstat=  
Disallow: /tag/ # Закрываем метки
Disallow: /readme.html # Закрываем бесполезный мануал по установке WordPress (лежит в корне)
Disallow: *?replytocom
Allow: */uploads   

User-agent: GoogleBot # Для Гугла
Disallow: /cgi-bin
Disallow: /?
Disallow: /wp-
Disallow: *?s=
Disallow: *&s=
Disallow: /search/
Disallow: /author/
Disallow: /users/
Disallow: */trackback
Disallow: */feed
Disallow: */rss
Disallow: */embed
Disallow: /xmlrpc.php
Disallow: *utm=
Disallow: *openstat=
Disallow: /tag/ # Закрываем метки
Disallow: /readme.html
Disallow: *?replytocom
Allow: */uploads
Allow: /*/*.js           
Allow: /*/*.css           
Allow: /wp-*.png          
Allow: /wp-*.jpg
Allow: /wp-*.jpeg
Allow: /wp-*.gif
Allow: /wp-admin/admin-ajax.php

User-agent: Yandex # Для Яндекса
Disallow: /cgi-bin
Disallow: /?
Disallow: /wp-
Disallow: *?s=
Disallow: *&s=
Disallow: /search/
Disallow: /author/
Disallow: /users/
Disallow: */trackback
Disallow: */feed
Disallow: */rss
Disallow: */embed
Disallow: /xmlrpc.php
Disallow: /tag/ # Закрываем метки
Disallow: /readme.html
Disallow: *?replytocom
Allow: */uploads
Allow: /*/*.js
Allow: /*/*.css
Allow: /wp-*.png
Allow: /wp-*.jpg
Allow: /wp-*.jpeg
Allow: /wp-*.gif
Allow: /wp-admin/admin-ajax.php
Clean-Param: utm_source&utm_medium&utm_campaign                          
Clean-Param: openstat

Sitemap: https://site.com/sitemap_index.xml # Карта сайта, меняем site.com на нужный адрес.
Важно:
Ранее в Robots.txt использовалась директива Host. Она указывала главное зеркало сайта. Теперь это делается при помощи редиректа. Подробнее об этом можно почитать в блоге Яндекса.

Комментарии (текст после #) можно удалить. Указываю Sitemap с https протоколом, т.к. большинство сайтов сейчас используют защищенное соединение. Если у вас нет SSL, то измените протокол на http.

Обратите внимание на то, что я закрываю метки (теги). Делаю это потому, что они создают большое количество дублей. Это плохо сказывается на SEO, но если вы хотите открыть метки, тогда уберите строчку disallow: /tag/ из файла.

Заключение

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

В других ситуациях может потребоваться индивидуальная проработка. На этом все. Спасибо за внимание. Буду благодарен, если вы включите уведомления через колокольчик и подпишитесь на почтовую рассылку. Тут будет круто :).

Видео на десерт: Фермер Хотел Найти Воду, но То Что Случилось Удивило Весь Мир

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оцените статью:
( 10 оценок, среднее 5 из 5 )
Поделишься в соцсетях? 🙂 Спасибо 💪🏻

Создатель и главный редактор этого блога. Зарабатываю через интернет более 100 000 рублей в месяц. Основные способы заработка: фриланс, SEO, арбитраж трафика, ставки на спорт. Пользуюсь различными банковскими продуктами и активно их изучаю.

Оцените автора
( 10 оценок, среднее 5 из 5 )
AWayne
Добавить комментарий

  1. Алексей

    Спасибо, попробуем-с.

    Ответить
  2. Андрей

    А можно не удалять disallow: /tag/, а вместо этого поставить # в начале строчки ?
    вот так #Disallow: /tag/
    Если оставить как есть с отключенными метками, то поисковики не будут находить статьи по тэгам ?

    Ответить
    1. Alexander Wayne автор

      А зачем ставить # в начале строчки, если она просто не нужна?)
      Только вес файла будет увеличивать, хоть и очень-очень незначительно.
      Если оставить все, как в моем варианте — теги не будут индексироваться ПС.
      У себя на сайте я использую их чисто для внутренней навигации. Считаю, что в поисковой выдаче они будут лишними — создают дубли.
      Но если у вас другое мнение, то можете просто убрать эти строчки из файла.

      Ответить
  3. Лот №2

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

    Ответить
    1. Alexander Wayne автор

      Раньше Хост держали только для Яндекса. Потом они выкатили апдейт своих алгоритмов, и сообщили, что теперь главное зеркало будет учитываться через редирект. Короче говоря, теперь это строка вообще не воспринимается поисковыми системами — то есть лишняя.
      Вы можете оставить ее, но она бесполезная.

      Ответить
      1. Валерий

        Здравствуйте! А что нужно сделать, чтобы всё правильно работало, где и как этот редирект настроить?

        Ответить
  4. Лот №2

    К стати, если у тебя скопировать и вставить, то вон какая каша получается, не правильно ты как-то список залил..
    Посмотри: (ссылка удалена)

    Ответить
    1. Alexander Wayne автор

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

      Ответить
  5. Татьяна

    Здравствуйте ! Скажите пожалуйста как закрыть вот такие ссылки в роботс: сайт.ру/baton-v-hlebopechke/1-165/

    Ответить
    1. Василий

      Здравствуйте. Закрываются ссылки так же, как и все остальные.

      Disallow: /baton-v-hlebopechke/1-165/

      Ответить
  6. Александр

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

    Ответить
    1. Alexander Wayne автор

      Да, все верно.

      Ответить
      1. Алёна

        Здравствуйте, а Host прописывать не надо?

        Ответить
        1. Alexander Wayne автор

          Не надо, сейчас от него отказались все популярные поисковики.

          Ответить
  7. Rusfetbiz

    Спасибо за статью. Мучаюсь с метками — попадают в поиск. Оказалось неправильно закрыл в роботсе.

    Ответить
    1. Alexander Wayne автор

      Рад, что статья вам помогла. Метки можно закрыть не только при помощи Роботса, но и через Yoast SEO)

      Ответить
  8. Виктор

    что думаете по поводу
    Disallow: */print/
    Disallow: *?print=*

    Ответить
    1. Alexander Wayne автор

      Первый закроет все ссылки, которые заканчиваются на /print/
      Второй закроет все ссылки, в которых есть параметр *?print=* с любым содержанием.

      Ответить
  9. Красноармеец Сухов

    Добрый день! А чем вам не нравится Robots.txt от Clearfy Pro? Там ведь в плагине все лишнее можно закрыть, вот оно и не прописывается лишний раз в Robots.txt, да и уверяют они, что это лучший выбор. Вы как считаете?

    Ответить
    1. Alexander Wayne автор

      У них слишком короткий вариант «сразу для всех ПС». Конкретно мне такое не подходит, потому что для Яндекса нужно открывать турбо-страницы. Для Гугла их открывать не нужно 🙂
      И еще: я считаю, что проработка файла под каждую поисковую систему лучше скажется на SEO.
      Но вы можете поставить вариант Clearfy, с этим нет никаких проблем) Не думаю, что будет слишком большая разница.

      Ответить
  10. Андрей

    Здравствуйте скопировал роботс в вордпресс вставил и после проверки пишет кучу ошибок а почему так ?
    Вот смотрите проверял на этом сайте robots.txt — websiteplanet
    А вот скрин ошибок его — (ссылка удалена)

    Ответить
    1. Alexander Wayne автор

      Добрый день! Проверил ваш инструмент, какой-то он мутный. Не думаю, что его рекомендациям стоит следовать. Но это мое мнение, вы можете попробовать сделать вариант, который будет «проходить» в этом инструменте без ошибок.
      Лично я бы советовал проверять Robots на ошибки через официальные инструменты — Яндекс.Вебмастер и Search Console.

      PS Ваш инструмент показывает не ошибки, а предупреждения. И там их всего два вида: ошибка шаблонов (когда указываются не адреса, а шаблоны адресов) — инструмент не считает это «оптимальной практикой»; директива Allow, которая стоит после директивы Disallow. Можете поставить сначала Allow, а уже потом Disallow — возможно инструмент не будет выдавать ошибку. Из-за кривого перевода я не особо понял, что инструмент конкретно требует + он рассматривает только Google и Bing, что уже наводит на определенные мысли)

      Ответить
  11. Марина

    Здравствуйте! Вопрос по последней строчке – Sitemap: site.com/sitemap_index.xml #
    Почему карта сайта файлом «sitemap_index.xml»? У меня называется файл просто «sitemap.xml». Мне как нужно файл прописывать с «_index» или как есть (sitemap.xml).
    Извините, может, вопрос глупый. Я только учусь. Буду благодарна за ответ.

    Ответить
    1. Alexander Wayne автор

      Если ваша карта называется Sitemap.xml, то вы должны вставить в Роботс: вашдомен.ру/sitemap.xml — как есть. Я поставил такой вариант, т. к. подавляющее большинство использует плагин Yoast SEO и XML-карту сайта от него.
      А вопрос совсем не глупый, все мы были новичками =).

      Ответить
      1. Марина

        Спасибо за ответ! Как ни странно, но я тоже использую плагин Yoast SEO)). А карту сайта я создала вручную и назвав Sitemap.xml, положила в корень. И в яндекс-вебмастер и гугл серч консоле прописала дорогу к ней.
        После вашего ответа проверила, действительно 2 карты теперь есть и Sitemap.xml и sitemap_index.xml. Только sitemap_index.xml какая-то странная, из 8 пунктов. Теперь не знаю, что делать. Может, имеет смысл удалить сделанную мной Sitemap.xml? Не возникает ли путанница у поисковиков из-за того, что у меня 2 карты активны?
        Надеюсь, понятно все изложила. Спасибо большое за ваш ответы! Для меня это очень ценно.

        Ответить
        1. Alexander Wayne автор

          Лучше использовать одну карту сайта. Можете либо удалить sitemap.xml, оставив карту от Yoast, либо отключить карту от Yoast и оставить созданную вами.
          Yoast SEO создает несколько карт сайта. Sitemap_index — это такой список всех карт сайта (отдельно карта для постов, отдельно для страниц, отдельно для тегов и т. д.). Поисковые системы отлично понимают этот принцип работы. Они заходят в sitemap_index, видят там ссылки на другие карты сайта и индексируют их.
          Кстати, советую вам глянуть эту статью про Sitemap.xml. В ней я описываю наиболее популярные способы создания карты сайта.

          Ответить
          1. Марина

            Так и сделаю — удалю одну карту. Спасибо за такой исчерпывающий ответ, поняла почему Sitemap_index странно выглядит на первый взгляд. Статью обязательно прочитаю.

  12. Rusfetbiz

    Вы предлагаете закрывать довольно много. Но я тут недавно читал, что самый лучший вариант роботса это тот, который не закрывает доступ практически вообще. Что скажите по этому поводу? Если закрыть только админку — достаточно ли этого будет?

    Ответить
    1. Alexander Wayne автор

      Слышал про ваш вариант. Можете попробовать, но я считаю, что более тщательная проработка файла лучше скажется на SEO.

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

      Ответить
  13. Адик

    Стояло изначально от ClearfyPro, но очень плохо индексировались картинки, точнее только процентов 20 показывает в поиске, у меня кулинарный сайт, и картинки очень важное звено, поэтому попробую Ваш вариант.
    но Гугл выдает 2 ошибки
    Clean-Param: utm_source&utm_medium&utm_campaign
    Clean-Param: openstat
    хоть и прописано что это для яндекса, но матерится -_- это терпимо? что это за параметры? может их просто удалить, что бы гугл не злился.
    и смущает этот набор букв utm_source&utm_medium&utm_campaign, он правильно прописан?

    Ответить
    1. Alexander Wayne автор

      Да, гугл ругается, потому что не использует такой синтаксис. Можно забить. Прописан он правильно, можете проверить на ошибки в Яндекс.Вебмастере)

      По поводу удаления — если вам так режет глаза, то можно удалить. Эта строка просто чисти UTM-метки (так рекомендует делать сам Яндекс). Для гугла эти UTM-метки просто закрываются.

      Ответить
      1. Адик

        ок, спасибо 🙂 надеюсь на лучшее.

        Ответить
  14. Азамат

    Спасибо за статью. Хотел спросить у вас, у меня вроде как уникальная ситуация))) В общем WordPress генерирует дубликаты страниц через комментарии, такие ссылки выглядят так site.ru/post123#comment-номер комментария. Пытался закрыть в роботсе через директиву Disallow: /*comment-* Но не получается, все равно робот индексирует такие ссылки, а нормальные (т.е. site.ru/post123) считает дублем и удаляет из выдачи. Неужели в директиве нужно указывать спецсимвол # (Disallow: /*#comment-*) ??? не будет ли конфликта, ведь он в роботсе отвечает за комментарий для ПС?

    Ответить
    1. Alexander Wayne автор

      Символ # отвечает за комментарии для пользователей и обычно эти комментарии удаляются из Роботса, чтобы лишний раз не нагружать файл. Обычно комментарий выглядит так: «# Какой-то комментарий». То есть с пробелом.

      Попробуйте добавить вашу запись (Disallow: /*#comment-*) и проверить Роботс через Яндекс.Вебмастер. Добавьте запись в Роботс, зайдите в ЯВМ, раздел «Инструменты» — «Анализ robots.txt» и проверьте доступность этих ссылок-дубликатов.

      Ответить
  15. Навигатор

    Было бы замечательно, если бы в статье было разъяснение для чего нужно закрывать некоторые папки. В частности меня интересуют папки /cgi-bin и /wp-

    Ответить
    1. Alexander Wayne автор

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

      Ответить
  16. Альберт

    # Что скажите про мой роботс.тхт от плагина All in One SEO Pack:

    User-agent: Yandex
    Allow: /yandex/news/ # установлен плагин Yandex.News Feed by Teplitsa

    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php # вордпресс рекомендует индексировать

    User-agent: Yandex
    Disallow: /*wp-admin* # админ
    Disallow: /*wp-includes* # папки и подпапки includes
    Disallow: /*plugins* # папки и подпапки плагина
    Disallow: /*cache* # папки и подпапки кеша
    Disallow: /*author* # нашел в яндекс метрики на страницы входа
    Disallow: /*?fbclid=* # страницы поиска от темы кассандра
    Disallow: /*?_gl=* # нашел в яндекс метрики на страницы входа
    Disallow: /*?amp* # установлен плагин AMP нашел в яндекс метрики на страницы входа
    Disallow: /*?s=* # страница поиска от вордпресс
    Allow: /*.css* # css файлы
    Allow: /*.js* # ява скрипты
    Allow: /*uploads* # папку и подпапки фотографий

    User-agent: YandexDirect
    Allow: / # разрешил рекламу от яндекс директ

    Ответить
    1. Alexander Wayne автор

      Зачем два раза User-Agent: Yandex? — код с открытием фида нужно поместить после «Allow: /*uploads* # папку и подпапки фотографий»

      Ответить
      1. Альберт

        Плагин All in One SEO Pack сразу же после активации его блока роботс.тхт прописал вот так (см. ниже) и изменить эту запись уже невозможно.

        User-agent: Yandex
        Allow: /yandex/news/

        User-agent: *
        Disallow: /wp-admin/
        Allow: /wp-admin/admin-ajax.php

        Когда прописываю Disallow и Allow: в User-agent: * это как мы знаем для всех ботов при проверке в Яндекс вебмастере где есть инструмент Анализ robots.txt, выходит ошибка. Если прописать Disallow и Allow: в User-agent: Yandex, как в примере (см. выше) то ошибку не выдает. И также плагин All in One SEO Pack не позволяет прописать рекомендации Disallow и Allow: отдельно дважды для каждого поисковика User-agent: * и User-agent: Yandex. То есть дважды не разрешает плагин повторять рекомендации Disallow и Allow. По-моему, поисковик Гугла не индексирует «мусорные» повторяющиеся с одинаковым контентом, но с разными url страницы и не учитывает запреты Disallow: в роботс.тхт. Выходит роботу Гугла все равно ставите вы запреты или нет, а робот Яндекса учитывает роботс.тхт. В Яндекс метрики где «страницы входа» у меня на сайтах есть мусорные страницы и их нужно закрывать, что я и проделал (см. выше) пример моего роботс. тхт. У меня возникает вопрос, стоит ли прописать рекомендации только в User-agent: * и, игнорировать ошибку в Яндекс инструменте Анализ robots.txt либо оставить мой роботс.тхт, как есть (см. выше) в комментарии?

        Ответить
  17. Сергей

    Спасибо. Но у меня гугл ругается на то, что в Роботс закрыт фид: Disallow: /feed
    Search Console has identified that your site is affected by 1 Coverage issues:
    Top Warnings
    Вот скрин (ссылка удалена)
    Так что, получается открывать фид в роботс?

    Ответить
    1. Alexander Wayne автор

      Да, для Гугла можете открыть (просто убрать строчку эту).

      Ответить
  18. Андрей

    Здравствуйте! Спасибо за статью. А «license.txt» тоже может закрыть надо?

    Ответить
  19. Анисимова

    Караул. А кто мне сделает няшную карту сайта? Есть для этого правильный плагин забисплатно?

    Ответить
    1. Сайтотворец

      All in Seo Pack в помощь!
      Аднафамилица

      Ответить
  20. Евгений

    Доброго времени суток. Подскажите пожалуйста, я воспользовался расширенным ribots.txt для wp и при сканировании страницы в Google search выскакивает следующие:
    Роботу Googlebot заблокирован доступ в файле robots.txt
    Скрипт
    https://mc.yandex.ru/metrika/tag.js

    Так и должно быть или в чем-то проблема?

    P.S сильно не пугайте за глупые вопросы

    Ответить
  21. Виталий

    почему для яндекс утм не закрыли?

    Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: