Почему важно управлять noindex на страницах товаров WooCommerce
В интернет-магазинах на WooCommerce часто появляются страницы товаров с дублирующим или низкокачественным контентом — например, товары с низким спросом, устаревшие или товары с отсутствием наличия. Индексация таких страниц может негативно повлиять на SEO сайта, снизить релевантность поисковых результатов и ухудшить поведенческие факторы.
YoastSEO предоставляет базовые настройки для управления индексацией, но для массового и автоматического выставления noindex на нужные страницы товаров требуется дополнительная настройка.
Диагностика: как определить, какие страницы товаров нужно закрыть от индексации
- Определите товары с низкой посещаемостью и продажами через Google Analytics и WooCommerce отчёты.
- Выявите товары с нулевым остатком на складе и длительным отсутствием продаж.
- Проверьте наличие дублирующего контента на страницах товаров (вариации, похожие описания).
Для диагностики можно использовать следующий запрос SQL для списка товаров с нулевым остатком:
SELECT p.ID, p.post_title, pm.meta_value AS stock_quantity
FROM wp_posts p
JOIN wp_postmeta pm ON p.ID = pm.post_id
WHERE p.post_type = 'product'
AND pm.meta_key = '_stock'
AND pm.meta_value = '0'Пошаговое решение: автоматизация установки noindex для товаров с нулевым остатком
1. Используем фильтр YoastSEO для добавления noindex программно
YoastSEO позволяет изменять метатег robots через фильтр wpseo_robots. Добавим функцию в functions.php темы или в собственный плагин:
add_filter('wpseo_robots', 'add_noindex_for_out_of_stock_products');
function add_noindex_for_out_of_stock_products($robots) {
if (is_singular('product')) {
global $post;
$stock = get_post_meta($post->ID, '_stock', true);
$stock_status = get_post_meta($post->ID, '_stock_status', true);
if ($stock_status === 'outofstock' || intval($stock) === 0) {
// Добавляем noindex, но оставляем follow
$robots = 'noindex,follow';
}
}
return $robots;
}2. Дополнительно: исключаем такие товары из Sitemap YoastSEO
Чтобы YoastSEO не включал эти страницы в XML-карту сайта, используем фильтр wpseo_sitemap_entry:
add_filter('wpseo_sitemap_entry', 'exclude_out_of_stock_products_from_sitemap', 10, 3);
function exclude_out_of_stock_products_from_sitemap($url, $type, $post) {
if ($type === 'post' && $post->post_type === 'product') {
$stock_status = get_post_meta($post->ID, '_stock_status', true);
if ($stock_status === 'outofstock') {
return false; // исключаем из карты
}
}
return $url;
}Проверка результата после внедрения
- Откройте страницу товара с нулевым остатком и проверьте в исходном коде наличие метатега
<meta name="robots" content="noindex,follow">. - Проверьте XML Sitemap YoastSEO по адресу
/sitemap_index.xmlи убедитесь, что товар с отсутствием на складе не отображается. - Используйте инструмент Google Search Console — «Проверка URL», чтобы убедиться, что страницы с noindex не индексируются.
Частые ошибки и как их исправить
- Ошибка: noindex не добавляется на страницы товаров.
Причина: кеширование страниц или плагин кэширования, который не обновил страницу после внесения изменений.
Решение: очистите кеш сайта и браузера, временно отключите плагины кэширования. - Ошибка: страницы с noindex всё равно отображаются в Sitemap.
Причина: фильтрwpseo_sitemap_entryнеправильно реализован или приоритет слишком низкий.
Решение: установите приоритет фильтра 10 и проверьте логику условий. - Ошибка: noindex применяется ко всем товарам без исключения.
Причина: неверная логика проверки статуса наличия.
Решение: проверяйте оба метаполя_stock_statusи_stock, чтобы избежать ложных срабатываний.
Практические советы по безопасности и производительности
- Добавляйте код в дочернюю тему или в кастомный плагин, чтобы избежать потери изменений при обновлении темы.
- Оптимизируйте запросы метаполей, чтобы не создавать лишних нагрузок на базу данных.
- Тестируйте изменения на staging-сайте перед применением на рабочем сайте.
- Используйте Clearfy Pro для дополнительной оптимизации SEO и удаления дублирующего контента — это поможет вместе с YoastSEO лучше управлять индексацией.
Чек-лист для автоматизации noindex в WooCommerce с YoastSEO
- Выявить товары с нулевым остатком и устаревшие товары.
- Добавить фильтр
wpseo_robotsдля установкиnoindex. - Исключить товары из Sitemap через фильтр
wpseo_sitemap_entry. - Очистить кеш после внедрения кода.
- Проверить метатеги на страницах товаров.
- Проверить XML Sitemap на исключение товаров.
- Проверить индексацию в Google Search Console.
- Использовать инструменты аналитики для мониторинга трафика на страницы товаров.