Диагностика проблемы: почему страницы с вариациями товаров плохо индексируются
WooCommerce создает для каждого варианта товара отдельную страницу с параметрами URL, например: example.com/product/product-name/?attribute_color=red. По умолчанию эти страницы могут восприниматься поисковиками как дублирующий контент, что снижает SEO эффективность сайта. YoastSEO в таких случаях не всегда корректно управляет мета-тегами и каноническими ссылками для вариаций, что приводит к потере позиций.
Чтобы проверить проблему, откройте страницу варианта товара и в исходном коде найдите тег <link rel="canonical">. Если canonical ведет на URL с параметрами, это может вызвать дублирование. Также проверьте индексируемость страниц с вариантами через Google Search Console или с помощью запроса site:example.com "attribute_".
Пошаговое решение: настройка YoastSEO и WooCommerce для вариантов товаров
1. Отключение индексации страниц вариаций через YoastSEO
В YoastSEO нет встроенного управления индексированием параметров URL вариаций, поэтому нужно сделать это вручную, добавив следующий код в functions.php вашей темы или в отдельный плагин:
add_action('template_redirect', function() {
if (is_product()) {
$params = $_GET;
foreach ($params as $key => $value) {
if (strpos($key, 'attribute_') === 0) {
// Добавляем noindex для URL с атрибутами варианта
if (!is_admin()) {
add_filter('wpseo_robots', function() { return 'noindex,follow'; });
}
break;
}
}
}
});Этот код добавит метатег noindex,follow на страницы с параметрами вариаций, не запрещая переход по ссылкам.
2. Правильная настройка канонических URL в YoastSEO для вариаций
Для предотвращения дублирования нужно канонизировать все вариации на основную страницу товара без параметров. Добавьте следующий фильтр:
add_filter('wpseo_canonical', function($canonical) {
if (is_product()) {
$params = $_GET;
foreach ($params as $key => $value) {
if (strpos($key, 'attribute_') === 0) {
// Возвращаем канонический URL без параметров
return remove_query_arg(array_keys($params), get_permalink());
}
}
}
return $canonical;
});3. Оптимизация title и description для вариаций
Если вы хотите добавить уникальные мета-теги для вариаций, используйте хук wpseo_title и wpseo_metadesc:
add_filter('wpseo_title', function($title) {
if (is_product()) {
$params = $_GET;
foreach ($params as $key => $value) {
if (strpos($key, 'attribute_') === 0) {
$title .= ' - ' . ucfirst(str_replace('attribute_', '', $key)) . ': ' . $value;
break;
}
}
}
return $title;
});
add_filter('wpseo_metadesc', function($desc) {
if (is_product()) {
$params = $_GET;
foreach ($params as $key => $value) {
if (strpos($key, 'attribute_') === 0) {
$desc .= ' Доступен вариант: ' . ucfirst(str_replace('attribute_', '', $key)) . ' ' . $value . '.';
break;
}
}
}
return $desc;
});Проверка результата после внедрения
- Откройте страницу варианта товара с параметрами URL и проверьте в исходном коде наличие метатега
noindexи правильногоcanonicalбез параметров. - Используйте инструмент Google Search Console > Coverage для проверки статуса индексации таких страниц — они должны быть отмечены как неиндексируемые.
- Проверьте, что основная страница товара индексируется и не содержит дублей.
Частые ошибки и как исправить
- Ошибка: canonical не обновляется, страницы вариаций индексируются.
Причина: кеширование.
Решение: очистите кеш сайта и сервера, отключите кэш плагинов на время теста. - Ошибка: noindex добавлен, но поисковые системы все равно индексируют варианты.
Причина: метатег добавляется некорректно или конфликтует с другими плагинами.
Решение: проверьте приоритет фильтров и отключите другие SEO плагины. - Ошибка: title и description для вариантов одинаковые.
Причина: фильтры не применились из-за ошибки в коде.
Решение: проверьте правильность передачи параметров и отсутствие синтаксических ошибок.
Практические советы для улучшения SEO WooCommerce с YoastSEO
- Используйте массовую оптимизацию SEO метаданных для товаров с помощью плагинов, например Clearfy Pro — он помогает удалять дубли и оптимизировать таксономии.
- Отключайте индексацию страниц с параметрами через robots.txt, если они не несут ценности для SEO. Пример:
User-agent: * Disallow: /*?attribute_ - Регулярно проверяйте обновления WooCommerce и YoastSEO — иногда новые версии улучшают совместимость и управление каноническими URL.
- Для больших магазинов с сотнями товаров и вариаций рассмотрите генерацию статических sitemap с помощью YoastSEO, исключая вариации.
Сравнение вариантов решения проблемы с вариациями WooCommerce и YoastSEO
| Метод | Описание | Плюсы | Минусы |
|---|---|---|---|
| Отключение индексации через noindex (код) | Добавление метатега noindex для URL с параметрами вариаций | Гибкость, быстрое внедрение, не требует плагинов | Требуется знание PHP, возможны конфликты с кэшированием |
| Настройка robots.txt | Запрет индексации URL с параметрами в robots.txt | Простой способ, не влияет на мета-теги | Поисковики могут игнорировать, не всегда актуально |
| Плагины SEO с поддержкой WooCommerce | Плагины типа Clearfy Pro, оптимизирующие SEO для вариаций | Автоматизация, дополнительные функции, поддержка | Платные решения, возможны конфликты с другими плагинами |