Зачем автоматизировать установку noindex в WooCommerce
В интернет-магазинах на WooCommerce часто возникает необходимость исключить из индексации страницы с дублирующимся или малоценным контентом: страницы фильтров, архивов по атрибутам, пагинацию, страницы с вариантами товаров и т.п. Ручное управление мета-тегом noindex для таких страниц неудобно и ошибочно. YoastSEO позволяет автоматизировать этот процесс, что помогает избежать проблем с дублированием и повысить качество SEO.
Диагностика проблемы: какие страницы WooCommerce должны быть с noindex
Для начала определим, какие страницы магазина желательно исключить из индекса:
- Страницы с фильтрами и параметрами (например, по цвету, размеру)
- Страницы пагинации (страницы 2, 3 и т.д. в каталоге)
- Архивы атрибутов, которые малоинформативны и создают дубли
- Страницы с вариациями товаров, если они доступны по отдельному URL
Чтобы выявить такие страницы, можно использовать Google Search Console — раздел «Покрытие», где будут ошибки с дублирующимся контентом, или использовать Screaming Frog для сканирования сайта.
Пошаговое решение с примером кода
1. Проверка и настройка стандартных опций YoastSEO
В панели WordPress зайдите в «SEO» → «Внешний вид поиска» → вкладка «Типы записей» и «Таксономии». Убедитесь, что для архивов атрибутов и пагинации установлены параметры «Исключить из индекса» (noindex).
2. Добавление фильтра для автоматического управления noindex на страницах фильтров
WooCommerce не всегда корректно обрабатывает фильтры с точки зрения SEO. Можно добавить хук, который будет ставить noindex на страницы с параметрами в URL (например, с GET-параметрами фильтра).
add_action('wp', function() {
if (is_shop() || is_product_category() || is_product_tag()) {
// Проверяем наличие параметров фильтра в URL
if (!empty($_GET)) {
// Добавляем noindex для страниц с фильтрами
add_filter('wpseo_robots', function() {
return 'noindex,follow';
});
}
}
});3. Управление noindex на страницах пагинации
YoastSEO обычно добавляет пагинации noindex,follow автоматически, но если этого не происходит, добавьте:
add_filter('wpseo_robots', function($robots) {
if (is_paged() && (is_shop() || is_product_category() || is_product_tag())) {
return 'noindex,follow';
}
return $robots;
});4. Исключение таксономий атрибутов WooCommerce
В настройках YoastSEO по умолчанию таксономии атрибутов могут индексироваться. Чтобы исключить их, добавьте в functions.php:
add_filter('wpseo_taxonomy_meta_robots', function($robots, $taxonomy) {
$exclude = ['pa_color', 'pa_size', 'pa_brand']; // Замените на свои атрибуты
if (in_array($taxonomy, $exclude)) {
return 'noindex,follow';
}
return $robots;
}, 10, 2);Как проверить, что noindex работает
- Откройте страницу с фильтром или пагинацией в браузере и просмотрите исходный код (
Ctrl+Uили «Просмотреть код»). В<head>должен присутствовать тег<meta name="robots" content="noindex,follow">. - Используйте инструмент Google Search Console — раздел «Проверка URL», чтобы убедиться, что Google видит и учитывает тег noindex.
- Через 1-2 недели проверьте в Google индекс сайта, чтобы страницы с noindex не появлялись в поиске.
Частые ошибки и как их исправить
- Отсутствие noindex на страницах фильтров с параметрами URL
Причина: YoastSEO не умеет автоматически обрабатывать GET-параметры.
Решение: добавьте кастомный фильтр, как в примере выше. - Пагинация индексируется
Причина: отключен стандартный noindex для пагинации в настройках или конфликт с темой.
Решение: добавьте фильтрwpseo_robotsдля пагинации. - Ошибки в списке таксономий для исключения
Причина: неверные имена атрибутов в коде.
Решение: используйтеprint_r(wp_get_object_terms(get_the_ID(), 'pa_color'))или аналог для проверки точных имён таксономий. - Конфликты с другими SEO-плагинами
Причина: несколько плагинов управляют мета-тегами.
Решение: отключите дублирующие функции, оставьте управление YoastSEO.
Практические советы по безопасности и производительности
- Добавляйте кастомные фильтры в дочернюю тему или в плагин, чтобы не потерять изменения при обновлении.
- Минимизируйте количество добавляемых фильтров, чтобы не замедлять загрузку страниц.
- Регулярно проверяйте корректность установки noindex через Google Search Console.
- Избегайте массового noindex для важных страниц — используйте только для дублирующих или низкокачественных.
Сравнение способов управления noindex в WooCommerce
| Метод | Описание | Плюсы | Минусы |
|---|---|---|---|
| Настройки YoastSEO | Стандартное управление noindex для таксономий и пагинации | Просто, без кода | Не охватывает фильтры с GET-параметрами |
| Кодовые фильтры (PHP) | Добавление кастомных хуков для страниц с фильтрами и пагинацией | Гибко, полностью под контролем | Требует знаний PHP и тестирования |
| Сторонние плагины фильтров | Плагины для SEO и управления параметрами URL | Может упростить настройку | Возможны конфликты, нагрузка на сайт |