
Правильная настройка индексирования сайта напрямую влияет на успешность его будущего продвижения в поисковых системах. В рамках данной статьи я расскажу, как правильно настроить индексацию сайтов на 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: https://archive.dmitriydenisov.com/sitemap.xml
Sitemap: https://archive.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.
Для наглядности привожу данные по одному из моих старых проектов.
Также для проверки качества можно использовать плагин для браузера RDS Bar. В нем все расчеты происходят в автоматическом режиме.
Заключение
Использование вышеописанных методов позволит значительно повысить качество сайта в глазах поисковых систем за счет избавления от дублированного контента, что в свою очередь позитивно скажется на динамике продвижения. В индексе будут присутствовать только целевые страницы и ничего больше.
В некоторых случаях это может привести к небольшим потерям трафика за счет уменьшения общего количества страниц в индексе. Это происходит по той причине, что часть страниц с дублями все же попадает в индекс поисковых систем и приносит какой-то трафик. Когда же мы закрываем их от индексации, то исключаем возможность появления этого дополнительного трафика. Это небольшая плата за повышение качества сайта в целом. Так или иначе, каждый сам выбирает, что ему нужно больше.
На этом данная статья подошла к концу. Если у вас остались какие-то вопросы по данному материалу, вы всегда можете задать их в комментариях.
На этом все. Удачи вам и успеха в продвижении сайтов!
Спасибо, Дмитрий. Но у меня проблема — после вставки кода в header он появляется вверху сайта. Не пойму в чем дело. И еще вопрос — куда вставлять код
if ( !is_paged() ) {
основной текст
}
Судя по всему, код находится не внутри тегов head. Именно поэтому и выводится на сайте. Что касается второго вопроса, то код нужно использовать в шаблоне сайта, где нужно выводить описание на страницах без постраничной навигации. Если это главная страница, то код нужно добавлять в файл index.php или home.php. При этом на место "основного текста" помещается код вывода описания страницы.
Доброго времени суток!
Если на 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. А люди то не задумываясь копируют код и не поймут почему он не работает.