В работе с WordPress иногда возникает необходимость запретить индексацию определённых страниц поисковыми системами. Это может быть полезно для страниц с личным кабинетом, страниц с временным контентом, страниц админки или любых других, которые не должны попадать в индекс. В этой статье мы подробно разберём несколько способов решения этой задачи, включая использование файла robots.txt, мета-тегов noindex и популярных плагинов SEO.
Почему важно управлять индексацией страниц
Поисковые системы автоматически сканируют и индексируют большинство страниц вашего сайта. Если в индексе окажутся нежелательные страницы, это может негативно повлиять на SEO, снизить релевантность сайта и даже привести к утечке конфиденциальной информации. Поэтому важно уметь гибко управлять тем, какие страницы индексируются, а какие нет.
Запретить индексацию можно несколькими способами, каждый из которых имеет свои особенности и ограничения. Ниже рассмотрим самые эффективные методы.
Запрет индексации через файл robots.txt
Файл robots.txt — это простой способ, который информирует поисковых роботов, какие разделы сайта не следует сканировать. Хотя это не гарантия полного запрета индексации, многие поисковики уважают этот файл.
Для запрета индексации определённых страниц или директорий добавьте в корень сайта файл robots.txt с такими правилами:
User-agent: *
Disallow: /private-page/
Disallow: /wp-admin/
Disallow: /temp/
Disallow: /?s=*
Например, если вы хотите запретить индексацию страницы с URL https://site.ru/private-page/, добавьте строку Disallow: /private-page/.
Однако помните, что если другие сайты ссылаются на такие страницы, они могут всё равно попасть в индекс. Поэтому для гарантированного запрета лучше использовать мета-теги.
Использование мета-тега <meta name="robots" content="noindex">
Мета-тег noindex сообщает поисковым системам, что конкретную страницу необходимо исключить из индекса.
Чтобы добавить этот тег на отдельные страницы WordPress, можно воспользоваться функцией в файле functions.php вашей темы или в собственном плагине. Например, запретим индексацию страницы с ID = 42:
function wpin_noindex_specific_pages() {
if (is_page(42)) {
echo '<meta name="robots" content="noindex, nofollow">';
}
}
add_action('wp_head', 'wpin_noindex_specific_pages');
Этот код проверяет, является ли текущая страница страницей с ID 42, и если да — добавляет в <head> мета-тег noindex, nofollow.
Если нужно запретить индексацию по URL или по условию, можно использовать:
function wpin_noindex_by_url() {
if (is_page() && $_SERVER['REQUEST_URI'] === '/private-page/') {
echo '<meta name="robots" content="noindex, nofollow">';
}
}
add_action('wp_head', 'wpin_noindex_by_url');
Запрет индексации для категорий и тегов
Для страниц архивов категорий и меток запрет делается так:
function wpin_noindex_archives() {
if (is_category() || is_tag()) {
echo '<meta name="robots" content="noindex, follow">';
}
}
add_action('wp_head', 'wpin_noindex_archives');
Здесь мы запрещаем индексацию архивов, но разрешаем переход по ссылкам.
Запрет индексации через плагины SEO
Самый удобный способ управления индексацией — это использование SEO-плагинов. Вот несколько популярных:
- Yoast SEO — в настройках каждой страницы или записи можно выставить параметр «Запретить индексацию».
- Rank Math — аналогичные возможности с удобным интерфейсом.
- Clearfy Pro — оптимизационный плагин с функцией управления индексацией и очистки кода.
Например, в Yoast SEO достаточно открыть редактируемую страницу, перейти в раздел «Расширенные» и выбрать «Нет» для опции «Разрешить поисковым системам показывать эту страницу в результатах поиска?»
Плагины также позволяют автоматически добавлять noindex для архивов, страниц поиска, тегов и т.п., что удобно для массового управления.
Комбинированный подход для максимальной эффективности
Оптимальная практика — комбинировать несколько методов:
- Файл
robots.txtдля запрета сканирования папок и технических разделов. - Мета-тег
noindexна уровне конкретных страниц и записей. - Использование SEO-плагинов для удобного управления и массовых правил.
Это гарантирует, что страницы не попадут в индекс, и поисковики не будут их учитывать при ранжировании.
Практический пример: запрет индексации для приватных страниц с пользовательской ролью
Если на сайте есть страницы, доступ к которым имеют только определённые роли пользователей (например, подписчики), можно динамически добавлять noindex для всех, кто не авторизован. Вот пример кода для functions.php:
function wpin_noindex_private_for_guests() {
if (is_page() && !is_user_logged_in()) {
global $post;
$private_pages = array(12, 34, 56); // ID приватных страниц
if (in_array($post->ID, $private_pages)) {
echo '<meta name="robots" content="noindex, nofollow">';
}
}
}
add_action('wp_head', 'wpin_noindex_private_for_guests');
В этом примере посетителям без авторизации поисковики скажут не индексировать эти страницы.
Итоги и рекомендации
Запрет индексации отдельных страниц WordPress — важная задача для поддержания чистоты и безопасности сайта. Надёжнее всего использовать мета-теги noindex, а файл robots.txt применять как дополнение. Для удобства и автоматизации лучше использовать SEO-плагины с поддержкой управления индексацией.
Если нужна помощь с настройкой, обратите внимание на решения от WPShop, где есть инструменты для оптимизации и управления SEO на WordPress.