Почему SEOPress не выводит meta description для товаров и категорий WooCommerce

Теряете трафик из-за пустых сниппетов? Разбираем неочевидный баг SEOPress в WooCommerce: почему исчезают meta description и как вернуть их через WP-CLI.

Александр Лаврищев
Хотите сайт с воронкой продаж на WordPress?
Напишите мне в личку — обсудим вашу задачу.
Написать мне ВКонтакте
Иногда в WordPress-сайте с WooCommerce и SEOPress возникает странная ситуация: у обычных страниц meta description выводится нормально, а у товаров и категорий товаров его нет. Например, в HTML отсутствует:
<meta name="description" content="...">
При этом title, canonical, robots и даже og:description могут выводиться корректно. Из‑за этого SEO-аудиторы вроде SiteGuru показывают ошибку «missing meta description» для URL вида:
/product/...
/product-category/...

Причина

Проблема может быть не в кэше, не в теме и не в WooCommerce, а в настройках SEOPress. В базе WordPress у SEOPress могут быть сохранены неполные шаблоны для WooCommerce. Например:
"product":{"noindex":""}
"product_cat":{"noindex":""}
Это значит, что SEOPress знает, что товары и категории можно индексировать, но не знает, какой шаблон использовать для meta description.

Диагностика через WP-CLI

Перейдите в папку сайта:
cd /path/to/site/public_html
Проверьте настройки SEOPress:
wp option get seopress_titles_option_name --format=json
Если WP-CLI падает из‑за старой версии PHP, запустите его через нужный PHP, например:
/usr/local/php/cgi/8.2/bin/php /usr/local/bin/wp-cli.phar option get seopress_titles_option_name --format=json
Ищите блоки:
"seopress_titles_single_titles": {
  "product": {
    "noindex": ""
  }
}
и:
"seopress_titles_tax_titles": {
  "product_cat": {
    "noindex": ""
  }
}
Если внутри нет description, причина найдена.

Решение

Добавьте штатные шаблоны SEOPress через WP-CLI. Для товаров:
wp option patch update seopress_titles_option_name seopress_titles_single_titles product '{"title":"%%post_title%% %%sep%% %%sitetitle%%","description":"%%post_excerpt%%","noindex":""}' --format=json
Для категорий товаров:
wp option patch update seopress_titles_option_name seopress_titles_tax_titles product_cat '{"title":"%%term_title%% %%current_pagination%% %%sep%% %%sitetitle%%","description":"%%term_description%%","noindex":""}' --format=json
Если на хостинге нужно запускать WP-CLI через PHP 8.2:
/usr/local/php/cgi/8.2/bin/php /usr/local/bin/wp-cli.phar option patch update seopress_titles_option_name seopress_titles_single_titles product '{"title":"%%post_title%% %%sep%% %%sitetitle%%","description":"%%post_excerpt%%","noindex":""}' --format=json
/usr/local/php/cgi/8.2/bin/php /usr/local/bin/wp-cli.phar option patch update seopress_titles_option_name seopress_titles_tax_titles product_cat '{"title":"%%term_title%% %%current_pagination%% %%sep%% %%sitetitle%%","description":"%%term_description%%","noindex":""}' --format=json
После этого очистите кеш:
wp cache flush

Что должно быть заполнено

Чтобы шаблоны работали:
  • у товара должно быть заполнено краткое описание товара;
  • у категории товара должно быть заполнено обычное описание категории.

Проверка

Проверьте категории:
for u in product-category/plaginy product-category/temy product-category/konstruktory; do
  echo "== $u =="
  curl -s "https://example.com/$u/" | grep -o '<meta name="description"[^>]*>'
done
Проверьте товары:
for u in product/acf-pro product/astra-pro; do
  echo "== $u =="
  curl -s "https://example.com/$u/" | grep -o '<meta name="description"[^>]*>'
done
Если всё исправлено, вы увидите строки вида:
<meta name="description" content="Описание категории или товара">

Итог

Проблема возникает из‑за того, что SEOPress не сохранил полноценные SEO-шаблоны для WooCommerce-товаров и категорий. Решение — добавить description в глобальные настройки SEOPress для product и product_cat, а не вставлять кастомный PHP-сниппет в wp_head.
Александр Лаврищев
Хотите сайт с воронкой продаж на WordPress?
Напишите мне в личку — обсудим вашу задачу.
Написать мне ВКонтакте

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *