В процессе разработки и поддержки сайта на WordPress часто возникает потребность запретить поисковым роботам индексировать определённые страницы. Это помогает избежать индексирования дублей, страниц с конфиденциальной информацией или страниц, которые не должны попадать в выдачу поисковых систем. В этой статье мы подробно рассмотрим, как эффективно и безопасно ограничить индексацию отдельных страниц WordPress, используя разные подходы и примеры кода.
Почему важно управлять индексированием страниц WordPress
Поисковые роботы анализируют и индексируют содержимое сайта, чтобы показывать его в результатах поиска. Однако не всё содержимое полезно или нужно для индексации. Например, страницы корзины, личного кабинета, административные разделы, страницы авторизации или временные страницы с результатами поиска могут создавать мусор в индексе и снижать качество SEO сайта.
Кроме того, некоторые страницы могут содержать данные, которые вы не хотите показывать в поисковой выдаче по причинам безопасности или конфиденциальности. Поэтому правильная настройка запрета индексации помогает:
- Улучшить SEO, убрав из индекса неважные страницы.
- Снизить нагрузку на сервер, уменьшая количество обхода роботом ненужных URL.
- Сохранить конфиденциальность информации.
Далее рассмотрим несколько способов запрета индексации.
Использование метатега robots в заголовке страницы
Самый простой и распространённый способ запретить индексацию — добавить в <head> страницы метатег <meta name="robots" content="noindex, nofollow">. Этот тег сообщает поисковым системам не индексировать страницу и не переходить по ссылкам на ней.
В WordPress для добавления такого тега на отдельные страницы можно использовать хук wp_head с проверкой ID или других параметров страницы.
Пример кода для запрета индексации по ID страницы
function wpcoder_noindex_specific_pages() {
if ( is_page( array( 42, 56 ) ) ) { // замените 42, 56 на ID нужных страниц
echo '<meta name="robots" content="noindex, nofollow">\n';
}
}
add_action( 'wp_head', 'wpcoder_noindex_specific_pages' );Этот код добавит тег noindex, nofollow только на страницы с ID 42 и 56. Аналогично можно использовать условные теги is_single(), is_category() и другие для гибкости.
Использование плагина для управления индексацией
Если не хочется писать код, можно использовать популярные SEO-плагины, которые позволяют управлять индексированием отдельных страниц из админки:
- Yoast SEO — в редакторе страницы во вкладке «Расширенные настройки» можно поставить запрет индексации.
- All in One SEO — аналогичный функционал для запрета индексации.
- Clearfy Pro — плагин от WPShop с расширенными настройками SEO, включая управление метатегами robots.
Плагины удобны, когда нужно быстро настроить без правки кода и контролировать множество страниц.
Запрет индексации через файл robots.txt
Файл robots.txt расположен в корне сайта и сообщает роботам, какие URL запрещены для обхода. Однако важно понимать, что robots.txt не гарантирует, что страница не попадёт в индекс, если на неё есть ссылки и она упоминается в других местах.
Пример записи в robots.txt для запрета индексации каталога с личным кабинетом и страницой корзины:
User-agent: *
Disallow: /cart/
Disallow: /my-account/
Этот метод хорош для блокировки больших разделов сайта от обхода, но для точного запрета индексации лучше использовать метатеги noindex.
Программное удаление страницы из индекса с помощью HTTP заголовков
Ещё один вариант — отправлять в HTTP-заголовках ответ X-Robots-Tag с параметром noindex. Это полезно для не-HTML ресурсов или когда невозможно изменить содержимое страницы.
Пример добавления заголовка для запрета индексации в functions.php:
function wpcoder_add_x_robots_tag() {
if ( is_page( 'privacy-policy' ) ) { // замените на slug нужной страницы
header( 'X-Robots-Tag: noindex, nofollow', true );
}
}
add_action( 'template_redirect', 'wpcoder_add_x_robots_tag' );Этот способ даёт дополнительный уровень контроля, особенно для не-HTML файлов.
Запрет индексации для динамических страниц с параметрами URL
Иногда на сайте появляются динамические URL с параметрами, которые создают дубли контента. Например, пагинация, фильтры или сортировка товаров. Для таких случаев полезно добавлять тег noindex программно или через плагин.
Пример кода, который добавляет noindex для URL с параметром ?orderby=:
function wpcoder_noindex_orderby_param() {
if ( isset( $_GET['orderby'] ) ) {
echo '<meta name="robots" content="noindex, nofollow">\n';
}
}
add_action( 'wp_head', 'wpcoder_noindex_orderby_param' );Так вы защитите сайт от индексации множества похожих страниц с разным порядком вывода.
Резюме: лучшие практики запрета индексации в WordPress
Подводя итог, для запрета индексации отдельных страниц WordPress рекомендуем:
- Использовать метатег
noindex, nofollowчерез хукwp_headс условной логикой. - Применять SEO-плагины (Yoast SEO, Clearfy Pro) для удобного управления из админки.
- Настраивать
robots.txtдля массового ограничения обхода разделов. - Добавлять HTTP-заголовок
X-Robots-Tagдля не-HTML контента. - Следить за динамическими URL и ставить запрет индексации на страницы с параметрами.
Использование этих методов в комплексе поможет правильно контролировать, какие страницы сайта индексируются, повысит качество SEO и защитит конфиденциальные данные.