wplinks.ru wordpress WPLinks.ru

Как избежать повторяющихся ссылок в WooCommerce при использовании атрибутов

Проблема повторяющихся URL в WooCommerce при фильтрации по атрибутам

При использовании атрибутов для фильтрации товаров в WooCommerce часто возникает ситуация, когда ссылки на одни и те же товары дублируются с разными параметрами, например, ?filter_color=red и ?filter_size=red, или когда один и тот же товар доступен по разным URL с параметрами фильтра. Это негативно влияет на SEO, так как поисковые системы воспринимают такие страницы как дублированный контент.

Диагностика проблемы

Чтобы проверить наличие дублирующихся ссылок на сайте, выполните следующие шаги:

  • Используйте консольные инструменты вроде Screaming Frog SEO Spider или онлайн-сервисы для аудита сайта.
  • Проверьте, что URL с разными параметрами фильтров ведут на одно и то же содержимое.
  • Убедитесь, что в заголовках HTTP присутствует статус 200 для таких URL, а не 301 или 404.
  • Оцените файл robots.txt и метатеги noindex для фильтрованных страниц.

Пошаговое решение: настройка canonical URL и исключение из индексации

1. Добавление правильных канонических ссылок

WooCommerce и WordPress по умолчанию не всегда корректно выставляют canonical URL для страниц с параметрами фильтра. Чтобы исправить это, добавим фильтр в functions.php вашей темы или в кастомный плагин:

add_filter('wpseo_canonical', function($canonical) {
    if (is_product_category() || is_shop()) {
        // Убираем параметры фильтра из канонического URL
        $url = remove_query_arg(array('filter_color', 'filter_size', 'filter_brand'), $canonical);
        return esc_url_raw($url);
    }
    return $canonical;
});

В этом примере мы удаляем параметры filter_color, filter_size и filter_brand из канонического URL, чтобы поисковики понимали, что это одна и та же страница.

2. Добавление метатега noindex для страниц с фильтрами

Чтобы полностью исключить из индексации страницы с параметрами фильтра, можно добавить следующий код:

add_action('wp_head', function() {
    if (is_product_category() || is_shop()) {
        $params = array('filter_color', 'filter_size', 'filter_brand');
        foreach ($params as $param) {
            if (!empty($_GET[$param])) {
                echo '<meta name="robots" content="noindex, follow">';
                break;
            }
        }
    }
});

Этот код вставляет в <head> метатег noindex на страницах с активными фильтрами, не мешая при этом переходу по ссылкам.

Проверка результата после внедрения

  • Откройте страницу категории и примените фильтр. В исходном коде страницы должен отсутствовать параметр фильтра в каноническом URL.
  • На странице с фильтром в <head> должен появиться метатег <meta name="robots" content="noindex, follow">.
  • Повторный аудит сайта с помощью Screaming Frog должен показать уменьшение числа дублированных URL.

Частые ошибки и как их исправить

  • Ошибка: Параметры фильтра не удаляются из canonical, т.к. используются нестандартные имена GET-параметров.
    Решение: Проверьте точные имена параметров фильтра в URL и добавьте их в массив в коде.
  • Ошибка: Метатег noindex не показывается на страницах с фильтрами.
    Решение: Убедитесь, что код добавлен в правильный хук wp_head и что параметры действительно присутствуют в $_GET.
  • Ошибка: Плагин SEO (Yoast, Rank Math) переопределяет канонический URL.
    Решение: Используйте соответствующие фильтры плагина SEO или настройте исключения в его настройках.

Практические советы по улучшению SEO и производительности

  • Регулярно проверяйте сайт на наличие дублированных URL с помощью SEO-сканеров.
  • Используйте кеширование страниц, чтобы уменьшить нагрузку при фильтрации.
  • Минимизируйте количество параметров в URL фильтрации, объединяя атрибуты или используя фильтры AJAX с History API.
  • Рассмотрите возможность использования специализированных плагинов для SEO-оптимизации WooCommerce, например Clearfy Pro, которые помогают управлять метаинформацией и дублирующимся контентом.

Сравнение подходов: код vs плагины

МетодПлюсыМинусы
Самописный кодПолный контроль, легковесность, не зависит от обновлений плагиновТребует навыков программирования, риск ошибок при изменениях WooCommerce
Плагины SEO (Yoast, Rank Math)Простота настройки, интеграция с другими функциями SEOИзбыточность, возможные конфликты с другими плагинами, нагрузка на сайт
Специализированные плагины (Clearfy Pro)Автоматизация, комплексные решения для SEO и оптимизацииПлатные, могут быть избыточными для простых задач
×
Обнови свой WordPress!

Держи скидку 15% на премиум тему Reboot

Купить со скидкой ⋙