Индексация WordPress сайтов. Файл robots.txt и мета-тег robots

Logo
Индексация Wordpress сайтов. Файл robots.txt и мета-тег robots

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

Суть данной технологии заключается в том, чтобы использовать для настройки индексации файл robots.txt в сочетании с мета-тегами robots. Таким образом, мы создаем двухуровневую защиту от дублированного контента. При этом даже двойная защита не гарантирует 100% результат, так как поисковые системы могут игнорировать настройки индексации. К счастью, такое бывает очень редко, но мы все же рассмотрим способы для защиты и от этого.

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

Основные типы страниц в WordPress

В WordPress существует несколько основных типов страниц, которые могут понадобиться нам в работе:

  • Статические страницы.
  • Страницы записей (постов).
  • Страницы категорий (рубрик).
  • Страницы тегов (меток).
  • Страницы таксономий (произвольные категории и теги).
  • Страницы произвольных типов записей.

Также существуют страницы ошибок 404, поиска, страницы вложений и т.д., но с ними мы работать не будем, так как в 99% случаев в этом нет необходимости.

Большинство обычных проектов используют только первые четыре типа страниц, которые доступны в Wordrpess по умолчанию. Чтобы получить доступ ко всем остальным возможностям движка, потребуется внести соответствующие изменения в код шаблона. Так или иначе, мы рассмотрим полную версию кода, чтобы избежать каких-либо проблем в будущем. Код является универсальным и будет работать даже в том случае, если какой-то функционал не реализован.

Использование мета-тега robots

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

<meta name="robots" content="значение">

В качестве значения мы будем использовать четыре основных конструкции:

  • index, follow – разрешить индексацию страницы и переход по ссылкам на ней
  • noindex, follow – запретить индексацию страницы, но разрешить переход по ссылкам
  • index, nofollow – разрешить индексацию страницы, но запретить переход по ссылкам
  • noindex, nofollow – запретить как индексацию, так и переход по ссылкам

Как вы уже поняли, index/noindex разрешает или запрещает индексацию страницы, а follow/nofollow разрешает или запрещает переход по имеющимся на странице ссылкам.

Существуют и другие конструкции, которые могут использоваться в качестве значения для атрибута content в мета-теге robots. Их мы рассматривать не будем, так как практическое применение их невелико.

Код управления мета-тегом robots для сайтов на WordPress

В качестве примера я приведу облегченную версию кода, который позволяет автоматизировать вывод мета-тега robots на сайте, работающем под управлением WordPress. В данном примере не будет возможности произвольно изменять значение мета-тега для отдельных страниц через административную панель сайта. Я убрал эту возможность, так как в 99% случаев в этом просто нет необходимости. К тому же это позволило значительно облегчить код.

if ( ( is_single() || is_page() || is_home() || is_category() || is_tag() || is_tax() || is_post_type_archive() ) && !is_paged() ) {
echo '<meta name="robots" content="index, follow" />' . "\n";
}
else {
echo '<meta name="robots" content="noindex, nofollow" />' . "\n";
}

Для установки кода на сайт, достаточно просто добавить его в файл header.php между тегами <head>. Теперь давайте немного разберемся с кодом.

Как видно с примера, мы делаем обычную проверку типов страниц и в зависимости от этого выводим мета-тег robots с нужным нам значением. Для определения типов страниц мы используем встроенные функции WordPress, так называемые условные теги.

  • is_single() – для определения отдельных записей (постов).
  • is_page() – для определения статических страниц.
  • is_home() – для определения главной страницы.
  • is_category() – для определения страниц категорий (рубрик).
  • is_tag() – для определения страниц тегов (меток).
  • is_tax() – для определения архивных страниц пользовательских таксономий.
  • is_post_type_archive() – для определения архивных страниц произвольных типов записей.
  • is_paged() – для определения страниц с постраничной навигацией.

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

Если вам необходимо запретить индексацию какого-то типа страниц, достаточно просто удалить или закомментировать нужную функцию в коде. Например, если мы хотим запретить индексацию тегов, то достаточно удалить функцию is_tag(). Естественно две вертикальные линии || тоже нужно будет удалить, чтобы избежать синтаксической ошибки в коде.

Если же вам нужно запретить только какую-то конкретную страницу записи, то придется немного модернизировать код. Как вариант, можно использовать произвольные поля. С подробными примерами о том, как это сделать, можно ознакомиться в статье о произвольных полях WordPress.

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

Файл Robots.txt для сайтов на WordPress

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

User-agent: *
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /xmlrpc.php
Disallow: /wp-content/uploads
Disallow: /wp-content/themes
Disallow: /trackback/
Disallow: /tag/*
Disallow: /feed/
Disallow: */*/feed/*/
Disallow: */feed
Disallow: */*/feed
Disallow: /*?*
Disallow: /?feed=
Disallow: /?s=*
Disallow: /page/*
Disallow: /author/*
Host: dmitriydenisov.com
Sitemap: http://dmitriydenisov.com/sitemap.xml
Sitemap: http://dmitriydenisov.com/sitemap.xml.gz

Вышеприведенный пример является универсальным для использования на большинстве проектов, работающих под управлением Wordrpess. Он закрывает от индексации системные папки WordPress, требеки, страницы фидов, тегов, поиска, архивные страницы авторов, постраничную навигацию, а также страницы, содержащие в себе параметры GET. Если необходимо добавить/удалить какую-то директорию или страницу, сделать это можно аналогичным образом, используя пример выше.

Защита от дублированного контента на страницах разделов

К сожалению, даже все вышеперечисленные способы не дают 100% гарантию того, что закрытые от индексации страницы не будут проиндексированы. Как вариант, кто-то может сослаться на закрытую страницу и она все же может появиться в индексе поисковых систем. Такое иногда бывает. В этом нет ничего плохого, если эта страница не является точной копией другой страницы, которую, к тому же, вы можете продвигать.

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

if ( !is_paged() ) {
основной текст
}

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

При использовании всех трех методов можно добиться 100% качества сайта. Под 100% качеством в данном случае я подразумеваю ситуацию, когда в индексе поисковых систем присутствуют только целевые страницы и полностью отсутствуют мусорные. Самый простой способ проверить, все ли сделано правильно – обратиться к поисковой системе Google.

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

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

site:domen.com
site:domen.com/&

Первая конструкция позволит узнать, какое общее количество страниц проиндексировано поисковой системой. Вторая же конструкция покажет, сколько страниц сайта находится в основном индексе Google. Разделив второе значение на первое и умножив на 100 мы узнаем качество сайта в % по мнению поисковой системы Google.

Для наглядности привожу данные по одному из моих старых проектов.

Общее количество страниц в индексе Google

Количество страниц в основном индексе Google

Также для проверки качества можно использовать плагин для браузера RDS Bar. В нем все расчеты происходят в автоматическом режиме.

Качество сайта через RDS Bar

Заключение

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

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

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

На этом все. Удачи вам и успеха в продвижении сайтов!

Обнаружили ошибку? Выделите ее и нажмите Ctrl+Enter

Комментарии 14

  • Vaverka

    Спасибо, Дмитрий. Но у меня проблема — после вставки кода в header он появляется вверху сайта. Не пойму в чем дело. И еще вопрос — куда вставлять код
    if ( !is_paged() ) {
    основной текст
    }

  • Дмитрий

    Судя по всему, код находится не внутри тегов head. Именно поэтому и выводится на сайте. Что касается второго вопроса, то код нужно использовать в шаблоне сайта, где нужно выводить описание на страницах без постраничной навигации. Если это главная страница, то код нужно добавлять в файл index.php или home.php. При этом на место "основного текста" помещается код вывода описания страницы.

  • Ruslan

    Доброго времени суток!
    Если на wp сайте много статичных страниц (раньше он был на хтмл), то директива Disallow: /page/* запретит их индексацию?

  • Дмитрий

    Здравствуйте. Нет, данная директива запретит индексацию постраничной навигации.

  • Анжелика

    Дмитрий, добрый день. Сайт индексировался нормально. Но в последнее время в коде новых страниц сайта откуда-то появился запрещающий мета-тег и естественно они не индексируются:
    <meta name="robots" content="noindex,nofollow" />
    Не подскажите, как его можно убрать?
    Заранее спасибо)

  • Анжелика

    Забыла написать, что сайт на движке  WordPress

  • Дмитрий

    Здравствуйте, Анжелика. Если Вы используете код с данной статьи, то проблем с индексацией быть не должно. Исключение — были установлены сторонние SEO плагины или некорректно выставлены настройки WordPress. Рекомендую проверить настройки в разделе Настройки — Приватность. Должно быть выставлено значение "Разрешить поисковым системам индексировать сайт". Также можете отключить SEO плагины, если таковые имеются, и проверить наличие мета-тега robots в коде.

  • Виталий

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

    как было описано выше вставил Код управления мета-тегом robots в в файл header.php между тегами <head>, но он почему-то стал отображаться на сайте в самом верху страницы. Что сделал не так? Спасибо.

  • Дмитрий

    Здравствуйте, Виталий. Если код выводится на странице, это означает, что он установлен вне тегов head. Проверьте корректность установки кода.

  • Киран

    Дмитрий, спасибо Вам.

  • Дмитрий

    Всегда рад помочь.

  • Марина

    Здравствуйте, Дмитрий! У меня, как и у многих, после вставки кода в header он появляется вверху сайта. Проверяла, вроде вставляю между тегами head. Подскажите, куда конкретно его вставить? И еще вопрос, где вообще искать файл robots.txt? Спасибо

  • Дмитрий

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

  • Миха

    Прочитал все Комментарии, вставил себе тоже код между тегами head, он естественно просто отобразился. Есть одна маленькая мелочь. Код то нужно вставлять с помощью php. А люди то не задумываясь копируют код и не поймут почему он не работает. 

Оставить комментарий

отменить ответ