В администрировании сайта на WordPress часто возникает необходимость ограничить индексацию отдельных страниц поисковыми системами. Это может быть полезно для страниц с конфиденциальной информацией, страниц административных панелей, тестовых материалов или просто контента, который вы не хотите показывать в выдаче.
Почему важно управлять индексацией страниц WordPress
Поисковые роботы сканируют весь доступный контент сайта и включают его в поисковую выдачу. Иногда это нежелательно, например, для:
- страниц с дублированным контентом;
- страниц с низкой ценностью для SEO;
- личных страниц и кабинетов пользователей;
- тестовых или временных страниц.
Если не ограничить индексацию, это может привести к ухудшению позиций сайта в поиске, штрафам за дублирование или утечке информации.
Способы отключения индексации отдельных страниц
Использование мета-тега robots с параметром noindex
Самый распространённый и рекомендуемый способ — добавить в <head> страницы мета-тег:
<meta name="robots" content="noindex, nofollow">Это скажет поисковым роботам не индексировать страницу и не переходить по ссылкам с неё.
Реализация на WordPress с помощью PHP-кода
Чтобы динамически добавлять этот мета-тег на определённые страницы, можно использовать следующий код. Предположим, что нужно отключить индексацию страниц с определённым ID или по условию.
function wphost_noindex_for_specific_pages() {
if (is_page(array(42, 56)) || is_page_template('template-noindex.php')) {
echo '<meta name="robots" content="noindex, nofollow">\n';
}
}
add_action('wp_head', 'wphost_noindex_for_specific_pages');В этом примере мета-тег вставляется на страницы с ID 42 и 56, а также на страницы, использующие шаблон template-noindex.php. Вы можете адаптировать условие под свои задачи, например, по slug, категории, пользовательской роли или другим параметрам.
Использование плагинов для управления индексацией
Если вы предпочитаете готовые решения, можете использовать плагины:
- Clearfy Pro — позволяет управлять SEO-настройками, включая добавление noindex для страниц и типов записей.
- SEOPress — функциональный SEO-плагин с опцией отключения индексации по страницам.
- Yoast SEO — популярный SEO-плагин с возможностью выставлять noindex на страницах через мета-боксы.
Плагины удобны для тех, кто не хочет писать код и хочет гибко управлять SEO-настройками через админку.
Как проверить, что страница не индексируется
После добавления мета-тега noindex, обязательно проверьте результат:
- Откройте исходный код страницы (Ctrl+U) и найдите тег
meta name="robots". - Используйте инструменты для вебмастеров (Google Search Console, Яндекс.Вебмастер) — в разделе проверки URL можно узнать, как робот видит страницу.
- Запустите команду в терминале:
curl -L --silent https://ваш-сайт/страница | grep robotsдля быстрой проверки.
Особенности и рекомендации
Почему не стоит закрывать страницы через robots.txt
Иногда новичков вводит в заблуждение файл robots.txt. Закрытие URL через robots.txt не предотвращает их индексацию, если на них есть внешние ссылки. Поисковики могут проиндексировать URL без содержимого, что не всегда желаемо.
Поэтому для полной блокировки индексации лучше использовать noindex в мета-теге.
Автоматизация с помощью пользовательских полей
Если у вас много страниц и нужно выборочно отключать индексацию, можно добавить пользовательское поле, например disable_index, и проверять его в коде:
function wphost_noindex_by_custom_field() {
if (is_singular()) {
$disable_index = get_post_meta(get_the_ID(), 'disable_index', true);
if ($disable_index === 'yes') {
echo '<meta name="robots" content="noindex, nofollow">\n';
}
}
}
add_action('wp_head', 'wphost_noindex_by_custom_field');Это позволит через админку ставить флаг для отключения индексации конкретных записей или страниц.
Пример комплексного решения в functions.php
Объединим несколько условий — отключим индексацию страниц с определённым шаблоном, по пользовательскому полю и по ID:
function wphost_noindex_complex() {
if (is_singular()) {
$post_id = get_the_ID();
$disable_index = get_post_meta($post_id, 'disable_index', true);
if (is_page_template('template-noindex.php') || in_array($post_id, array(42,56)) || $disable_index === 'yes') {
echo '<meta name="robots" content="noindex, nofollow">\n';
}
}
}
add_action('wp_head', 'wphost_noindex_complex');Такой подход даёт гибкость и удобство управления индексацией без сторонних плагинов.
Заключение
Управление индексацией отдельных страниц — важный аспект технической оптимизации WordPress-сайта. Добавление мета-тега noindex — самый надёжный способ. Для реализации вы можете использовать как кодовые решения, так и плагины, например Clearfy Pro. Проверяйте корректность внедрения с помощью инструментов вебмастеров и проверяйте исходный код страниц.