Проблема: некорректные или дублирующиеся title в массовом каталоге WooCommerce
При большом количестве товаров в WooCommerce часто встречается ситуация, когда title страниц продуктов либо не оптимизированы под SEO, либо содержат дубликаты, что негативно влияет на ранжирование. Особенно это актуально при импорте товаров или при использовании шаблонных названий.
Диагностика проблемы с title в WooCommerce
Для начала убедитесь, что проблема действительно в title:
- Откройте несколько страниц товаров и проверьте
<title>в исходном коде страницы (черезCtrl+Uили «Просмотр кода»). - Сравните title с уникальными названиями товаров — часто title совпадают или содержат лишние приставки.
- Проверьте в Google Search Console раздел «Покрытие», есть ли сообщения о дублирующемся title.
Если дубликаты или неинформативные title обнаружены, переходите к решению.
Пошаговое решение с использованием YoastSEO и кастомного кода
1. Использование шаблонов YoastSEO для WooCommerce
YoastSEO позволяет настроить шаблоны титулов для товаров. В админке WordPress перейдите в SEO > Внешний вид поиска > Типы записей > Продукты. Там можно указать шаблон для title, например:
%%title%% - %%price%% - %%sitename%%Это добавит цену и название сайта к названию товара. Но при массовой обработке этого может быть недостаточно.
2. Кастомизация title с помощью фильтра wpseo_title
Для более гибкой массовой обработки можно использовать фильтр wpseo_title, чтобы динамически формировать title в зависимости от атрибутов товара.
Пример кода для functions.php вашей темы или в плагине:
add_filter('wpseo_title', function($title) {
if (is_product()) {
global $product;
if (!$product) return $title;
$brand = get_post_meta($product->get_id(), 'brand', true); // пример кастомного поля
$price = $product->get_price_html();
$new_title = $product->get_name();
if ($brand) {
$new_title .= ' от ' . $brand;
}
if ($price) {
$new_title .= ' за ' . strip_tags($price);
}
$new_title .= ' | ' . get_bloginfo('name');
return $new_title;
}
return $title;
});Такой подход позволяет добавить в title уникальные данные, например бренд и цену, что снижает риск дублирования.
3. Массовое обновление мета-данных при импорте товаров
Если товарный каталог обновляется массово, используйте WP All Import или аналогичный плагин с поддержкой YoastSEO. В настройках импорта укажите, чтобы поле title формировалось по нужному шаблону, либо задайте кастомный PHP код для генерации.
Проверка результата после внедрения
- Откройте несколько товаров и проверьте title в исходном коде страницы.
- Используйте SEO-аналитические инструменты (например, Screaming Frog SEO Spider) для массовой проверки уникальности title.
- Проверьте Google Search Console на предмет ошибок и предупреждений по дублирующимся title.
Частые ошибки и способы их исправления
- Title не меняется после кода: Проверьте, активен ли фильтр, нет ли конфликтов с другими плагинами, очистите кэш сайта и браузера.
- Использование неправильных хуков: Не используйте устаревшие хуки, для YoastSEO актуален
wpseo_title. - Неверное получение данных товара: Убедитесь, что глобальная переменная
$productопределена, иначе добавьте проверку или используйте методы WooCommerce API. - Проблемы с кодировкой или спецсимволами: При добавлении цен или брендов очищайте HTML-теги и спецсимволы, как в примере с
strip_tags().
Практические советы по безопасности и производительности
- Не используйте тяжелые запросы внутри фильтра
wpseo_title, чтобы не замедлять загрузку страниц. - Кэшируйте результаты, если данные формируются из сложных вычислений или сторонних API.
- Храните дополнительные данные (например, бренд) в метаполях товара, чтобы быстро получать их без лишних запросов.
- Проверяйте совместимость кастомного кода с обновлениями YoastSEO и WooCommerce.
Сравнение вариантов массовой оптимизации title для WooCommerce
| Метод | Плюсы | Минусы | Рекомендуется для |
|---|---|---|---|
| Шаблоны YoastSEO | Простота настройки, не требует кода | Ограниченная гибкость, дубли могут остаться | Маленькие и средние магазины |
Фильтр wpseo_title с кастомным PHP | Гибкость, возможность добавлять любые данные | Требует навыков PHP, возможны ошибки | Большие каталоги, кастомные данные |
| Импорт с формированием title | Полный контроль над title при загрузке | Сложность настройки импорта, зависит от плагина | Частые массовые обновления товаров |