Главная / База знаний / Индексация и видимость / Дубли по фильтрам в интернет-магазине: настройка canonical
База знаний

Дубли по фильтрам в интернет-магазине: настройка canonical

Фасетная навигация генерит сотни URL-дублей. Что закрывать через canonical, что через noindex.

Индексация и видимость · 3 мин чтения

Симптом

Причина

Фасетная навигация генерирует уникальные URL‑адреса для каждой комбинации фильтров, но сервер не сообщает поисковикам, какая из них является «основной». По умолчанию поисковики индексируют все эти URL‑ы как отдельные страницы, создавая дубли. Если в ответе сервера не присутствует тег <link rel="canonical"> или атрибут rel="canonical" указывает на неверный URL, поисковик не знает, какой URL считать canonical.

Как проверить

  1. Проверка наличия canonical
    bash curl -I https://example.com/category?color=red&size=M | grep -i Link
    В ответе должен быть заголовок Link: <https://example.com/category>; rel="canonical".

  2. Проверка в браузере
    Откройте страницу с фильтром, посмотрите исходный код (Ctrl+U) и найдите тег:
    html <link rel="canonical" href="https://example.com/category" />

  3. Проверка в Search Console
    В разделе «URL Inspection» введите URL с фильтром и проверьте, какой canonical Google видит.

  4. Проверка robots.txt
    Убедитесь, что в robots.txt нет директив, запрещающих индексацию параметров:
    txt User-agent: * Disallow: /*?*

  5. Проверка параметров URL
    В Search Console → URL Parameters проверьте, как Google обрабатывает параметры color, size и т.д.

Решение

1. Выберите стратегию: canonical или noindex

Параметр Что делать Почему
Фильтры, которые меняют порядок/сортировку rel="canonical" на главную категорию Убирает дубли, но сохраняет индексацию категории
Фильтры, которые меняют контент (например, «Новинки» vs «Распродажа») noindex + nofollow Эти страницы не нужны в индексе, но нужны для внутренней навигации
Параметры, которые создают уникальный контент (например, «Цена от 1000 до 2000») rel="canonical" на соответствующую категорию Сохраняет релевантность, но избегает дублирования

2. Добавьте canonical в шаблон страницы

<head>
  <!-- ... -->
  <link rel="canonical" href="{{ canonical_url }}" />
</head>

canonical_url – это URL без параметров фильтров, например https://example.com/category.

3. Пример настройки в Nginx (если сервер генерирует canonical динамически)

location /category {
    if ($arg_color != "") {
        set $canonical "https://example.com/category";
        add_header Link "<$canonical>; rel=canonical";
    }
}

4. Используйте robots.txt для параметров, которые не нужны в индексе

User-agent: *
Disallow: /*?color=
Disallow: /*?size=

5. Настройте Search Console → URL Parameters

6. Проверка после изменений

  1. Очистите кэш страницы и перезапустите сервер.
  2. Используйте curl и grep для проверки заголовка Link.
  3. Отправьте обновлённый URL в Search Console для повторной индексации.

Связанные

SEO КП · нужна помощь?

Не хотите разбираться сами?

Запустите технический аудит сайта за 5 минут — получите PDF-отчёт с разбором всех 64 параметров и конкретными точками роста. Или закажите комплексное SEO-продвижение сайта — починим всё это и возьмём на себя дальнейшую оптимизацию.

Запустить аудит за 199 ₽ Узнать про продвижение →