Статьи

SEO для интернет-магазина: фильтры, дубли, карточки и категории без потери индекса

Типичная ситуация для каталога на 10 000 SKU: в админке — десять тысяч карточек, а в индексе Яндекса и Google — 300 000–2 000 000 URL. Робот месяцами обходит сортировки, пустые фильтры и пагинацию, а новые карточки неделями ждут обхода. Видимость падает не потому, что «текстов мало», а потому что поисковое продвижение интернет-магазина началось без управления индексом. Разбираем, как SEO-оптимизация магазина строится поверх архитектуры каталога: фильтры, дубли, карточки и категории — без потери индекса и краулингового бюджета.

1. Краулинговый бюджет и архитектура каталога: как роботы видят ваш магазин

Краулинговый бюджет — это количество URL, которое поисковый робот готов просканировать на сайте за единицу времени. Для Яндекса лимит обхода виден в Вебмастере (раздел «Обход страниц»), для Google — в отчёте «Статистика сканирования» Search Console. У каталога на 100 000+ URL бюджет — дефицитный ресурс: робот физически не успевает обойти всё, и приоритет получают не те страницы.

Что съедает бюджет каталога

Основные «пожиратели» обхода в e-commerce — генерируемые платформой URL: состояния фильтров, сортировки, пагинация, режимы «показывать по 96», страницы сравнения, избранное, корзина и личный кабинет, результаты поиска, трекинг-параметры. Каждая группа требует своего метода изоляции — универсального «закрыть всё в robots.txt» не существует: часть URL нужно запретить к обходу, часть — склеить canonical, часть — отдать с noindex.

Анатомия раздутия индекса (Index Bloat)

Возьмём магазин: 10 000 товаров, 200 категорий, 15 фильтров с 10 значениями. Фасеточный поиск генерирует до 2¹⁵ (2 в степени 15) комбинаций на каждую категорию — миллионы потенциальных URL. Добавьте сортировки (?sort=price), пагинацию (?page=2), поиск, UTM-метки, сессии — и реальных товаров в индексе окажется меньше 1%. Это и есть index bloat: раздутие индекса техническим мусором.

Последствия каскадные:

  • робот тратит бюджет на мусор, новые карточки попадают в индекс с задержкой в недели;
  • дубли каннибализируют релевантность категорий, вес размывается между сотнями копий;
  • качество домена в глазах поисковика падает — алгоритмы оценивают долю бесполезных страниц в индексе.

Важно: в Google инструмент «Параметры URL» в Search Console удалён ещё в 2022 году — управлять параметрами можно только через robots.txt, canonical, noindex и редиректы. У Яндекса остаётся директива Clean-param, и её игнорирование — самая частая ошибка в СЕО-продвижении интернет магазинов.

Как измерить масштаб проблемы

  • Оператор site:example.com в Яндексе и Google — грубая оценка числа URL в индексе.
  • Search Console → «Страницы» → «Исключённые» — причины исключения: «Повторяющаяся страница без canonical», «Найдено, не проиндексировано», «Сканирование — без индексации».
  • Логи сервера (access.log за 30 дней): доля запросов роботов к страницам с параметрами, доля обхода 404/редиректов.
  • Screaming Frog: обход с учётом GET-параметров, отчёты по canonical, noindex, дублям Title/H1.

Практический порог: если «Исключённые» страницы в GSC превышают число индексируемых в 3–5 раз — индекс раздут, и поисковое продвижение интернет-магазина в поисковых системах буксует на уровне инфраструктуры, а не контента.

2. Оптимизация фильтров и фасеточного поиска

Матрица индексации фильтров: что закрывать, а что превращать в ЧПУ-посадочные

Открывать «все фильтры подряд» — путь к санкциям за качество индекса. Закрывать «все» — потерять сотни тысяч низкочастотных запросов вида «кроссовки 45 размера зелёные». Решение — матрица решений, привязанная к частотности и ёмкости страниц.

Тип фильтра Пример URL Индексация Логика решения
1 значение, частотный НЧ-ВЧ запрос /krossovki/nike/ Открывать, ЧПУ-посадочная Есть спрос, достаточно товаров (от 3–5), уникальный Title/H1/текст
2 частотных значения /krossovki/nike-kozhan/ Открывать при ёмкости Комбинация со спросом и 3+ товарами
3+ значения (длинная фасета) /nike-kozhan-45-zelen/ Закрывать (noindex/robots) Почти нулевой спрос, риск дублей
Служебные (со скидкой, новинки) /sale/, /new/ Открывать точечно Отдельные статические URL
Цена без других фильтров ?price=1000-5000 Закрывать Каннибализирует категорию
Пустой результат (0–2 товара) Любая комбинация Закрывать всегда Мусор и soft-404

Правило Калинин Студио: посадочную страницу из фильтра создаёт не сам URL, а контент — уникальный H1, Title, вводный текст, перелинковка на смежные фасеты, микроразметка. Если сгенерировать это не для чего (меньше 3 товаров) — страница не должна существовать для робота.

Ajax/JS-фильтрация: как не спрятать контент от робота

Фильтрация без перезагрузки страницы удобна пользователю и опасна для SEO, если реализована неверно. Требования к корректному Ajax-фильтру:

  • Каждое состояние фильтра должно менять URL (History API: pushState) — иначе комбинации недоступны по прямой ссылке и не могут стать посадочными.
  • Контент, доступный только после клика по фильтру, не должен быть единственным источником текстов категорий — базовый SEO-текст категории грузится в HTML.
  • Выбранные фильтры не должны скрывать текст категории от робота (текст рендерится в HTML, а не подгружается из JSON после JS).
  • При включении фильтра на «неиндексируемую» комбинацию — canonical на базовую категорию либо закрытие комбинации в robots.txt.

Лайфхак от Калинин Студио: соберите список «открытых» фасетов (спрос + ёмкость) и генерируйте их на стороне сервера как статические ЧПУ с собственными кластерами семантики. Всё остальное держите в Ajax-состояниях без URL либо закрывайте. Так вы получаете трафик с фильтров без риска на 100 000 мусорных URL.

Robots.txt и Clean-param: готовые правила

User-agent: *

Disallow: /*?*sort=

Disallow: /*?*order=

Disallow: /*?view=

Disallow: /*?limit=

Disallow: /*?display=

Disallow: /*search

Disallow: /*?s=

Disallow: /*?q=

Disallow: /*uid=

Disallow: /*sid=

Disallow: /*from=

Allow: /*?page=

Sitemap: https://example.com/sitemap.xml

User-agent: Yandex

Clean-param:

utm_source&utm_medium&utm_campaign&utm_content&utm_term&utm_referrer&yclid&gclid&_openstat&from&etag&ref

Что здесь важно. Disallow с масками /*?*sort= изолирует сортировки от индекса и экономит бюджет. Allow: /*?page= не пускает под раздачу пагинацию. Clean-param — директива только Яндекса: робот «склеит» URL с перечисленными параметрами с основным адресом и передаст ему накопленные сигналы. Google Clean-param игнорирует — там UTM и сессионные параметры закрываются canonical и запретами по маскам.

Риск: Disallow в robots.txt запрещает обход, но не гарантирует удаление из индекса — URL без контента может появиться в выдаче «виртуальной» строкой. Гарантию изоляции даёт связка: Disallow для бюджет-мусора + canonical/noindex для контентных дублей. И не используйте noindex в robots.txt — ни Google, ни Яндекс эту директиву не поддерживают.

Ваш каталог теряет позиции из-за скрытых дублей и пустых фасетов? Запросите комплексный аудит каталога и карточек товаров у специалистов Калинин Студио — с матрицей индексации фильтров под вашу CMS.

3. Ликвидация дублей категорий и карточек

Canonical vs robots.txt vs noindex: кто кого

Частая ошибка — считать canonical «директивой». И Google, и Яндекс официально трактуют rel="canonical" как рекомендацию: поисковик вправе выбрать другой канонический URL, если сигналы (внутренние ссылки, sitemap, контент) противоречат тегу. Поэтому canonical работает только в комплекте с согласованной архитектурой ссылок.

Метод Что делает Google Яндекс Когда применять
robots.txt Disallow Запрещает обход URL Да Да Сортировки, служебные параметры, бюджет-мусор
rel="canonical" Предлагает каноническую версию Рекомендация Рекомендация Дубли контента, вариации сортировки, дубли карточек
noindex (meta/X-Robots-Tag) Исключает из индекса, требует обхода Да Да Страницы, которые нужно обойти, но не индексировать
301 redirect Перенаправляет и склеивает сигналы Да Да Устаревшие URL, склейка зеркал версий
Clean-param Склеивает URL по параметрам Нет Да UTM, сессии, трекинг-параметры (Яндекс)

Правила комбинации, отработанные на каталогах 100 000+ SKU:

  • Никогда не ставьте canonical на страницу, закрытую Disallow: робот не сможет её обойти и не увидит тег.
  • Никогда не вешайте noindex на страницы, получающие внешние ссылки, — сигналы сгорят. Сначала 301, потом удаление из sitemap.
  • noindex используют для страниц «обходить можно, индексировать нельзя»: результаты поиска по сайту, карточки с концами стока на время решения.
  • canonical на саму себя (self-canonical) у категорий обязателен: без него категории с параметрами конкурируют между собой.

Типовые конфликты правил индексации

При внедрении правил чаще всего ломают связки: canonical указывает на URL, закрытый Disallow (робот не увидит тег); noindex стоит на странице, которая одновременно есть в sitemap.xml (противоречивые сигналы); цепочка 301 ведёт на страницу, которая сама редиректит дальше (потеря сигналов на каждом звене). Каждую связку проверяют краулером до выката на прод.

Пагинация, сортировки, поиск и UTM

2149271717.jpg

Пагинация: Google не использует rel="next"/rel="prev" с 2019 года — атрибуты официально выведены из поддержки. Рабочая схема: canonical каждой страницы пагинации на саму себя (не на ?page=1 — иначе робот проиндексирует только товары первой страницы и обесценит остальные), корректные ссылки prev/next для роботов и пользователей, уникальные Title «Категория — страница N». Быстрый способ: пагинацию с 2-й страницы закрыть в robots.txt, если товары первой страницы продублированы в HTML-ссылках дальше.

Сортировки (?sort=price, ?order=pop): Disallow + canonical на базовую категорию. Поиск по сайту (/search/?q=): Disallow + noindex — это мягкий 404 с бесконечным числом комбинаций. UTM-метки: canonical на целевой URL + Clean-param для Яндекса; Gclid/yclid автоматически распознаются, но лучше перечислить явно.

4. SEO-продвижение карточек товаров против категорий

Карточка против категории: сравнение стратегий

Параметр Категория (листинг) Карточка товара
Спрос ВЧ/СЧ («купить холодильник») НЧ-хвост, брендовые и модельные запросы
Конкуренция Высокая Низкая–средняя
Срок эффекта 3–9 месяцев 1–3 месяца при разметке
Риск каннибализации Конкуренция с ЧПУ-фильтрами Конкуренция с вариациями (цвет/размер)
Приоритет при ограниченном бюджете Первичный Автоматизация + разметка

Что качать: карточки или листинги

Категории собирают высоко- и среднечастотный спрос («купить холодильник»), карточки — низкочастотный хвост и брендовые запросы («холодильник LG GA-B509»). SEO-продвижение карточек товаров окупается, когда:

  • у карточки уникальные Title/H1/описание и характеристики (а не шаблон производителя);
  • есть микроразметка Product/Offer — CTR в выдаче растёт на 20–30%;
  • товар «живой»: цена, наличие, отзывы обновляются.

В Яндексе карточки исторически ранжируются лучше, чем в Google: товарные запросы часто выдают «колонку» карточек с ценами, и при хорошей разметке магазин получает несколько строк выдачи. Стратегия для больших каталогов: 20% усилий — категории и ЧПУ-фильтры (основной трафик), 80% автоматизации — карточки (масштаб).

Out-of-Stock: 404, 301 или скрывать

Ситуация Решение Обоснование
Товар вернётся (сезонный, поставка) Оставить страницу, метка «Нет в наличии», Offer с availability: OutOfStock Сохраняет накопленные сигналы и позиции
Товар снят с продажи навсегда, есть аналог 301 на категорию или карточку-аналог Передаёт сигналы, не создаёт soft-404
Товар снят, аналога нет 404/410 Честный ответ роботу; 410 быстрее удаляется из индекса
Массовое исчезновение (сотни SKU) noindex временно + план 301 Не роняет качество индекса одномоментно

Важно: Google расценивает пустые карточки как soft-404, если на странице нет контента и разметки. Оставляйте описание, характеристики, FAQ, кнопку «Сообщить о поступлении» и валидный Offer с availability — тогда страница остаётся полноценным документом.

Микроразметка: Product, Offer, AggregateRating, BreadcrumbList

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Холодильник LG GA-B509 CLSL",
  "image": "https://example.com/img/lg-b509.jpg",
  "description": "Холодильник с инверторным компрессором, 384 л, зона свежести.",
  "sku": "GA-B509CLSL",
  "brand": {"@type": "Brand", "name": "LG"},
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "127"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/holodilniki/lg-ga-b509/",
    "priceCurrency": "RUB",
    "price": "64990",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition"
  }
}

Плюс BreadcrumbList на категориях и карточках — хлебные крошки в сниппете улучшают CTR и подтверждают иерархию каталога. Проверяйте разметку в «Валидаторе микроразметки» Яндекса и Rich Results Test от Google — расхождение данных (цена в разметке ≠ цена на странице) = риск ручных санкций за структурированные данные.

5. AI SEO для интернет-магазина: автоматизация на 100 000 SKU

Ручное SEO при 50 000+ карточек невозможно экономически. AI SEO для интернет-магазина закрывает три класса задач.

Генерация Title/Description/H1 через LLM

Промпт-конвейер: на вход — выгрузка атрибутов товара (категория, бренд, характеристики, частотный кластер запроса), на выходе — Title до 70 символов с коммерческим маркером, Description до 160 с УТП, H1 с морфологической нормализацией. Ключевое — не «сгенерируй», а сгенерируй по шаблону с контролем: уникализация в пределах кластера, антидубли по shingles/Embedding, валидация длины и вхождений. Пример правила: Title = {Товар} {характеристика} — купить в {город}, цена {X} ₽ | {Бренд} + LLM-вариативность второго сегмента.

Нейрогенерация описаний без риска санкций

Риск спама возникает, когда тысячи карточек получают однотипный «водяной» текст. Контрольные точки:

  • Входные данные — структурированные характеристики, а не генерация «из воздуха» (галлюцинации в карточке = юр. риски и возвраты).
  • Проверка самоповторов внутри кластера: если 100 описаний совпадают более чем на 70% — шаблон перегенерируется.
  • Human-in-the-loop: выборочная ручная вычитка 5–10% партии.
  • Факты (цена, наличие) в карточку вставляет движок, а не модель.

Автоматическая группировка НЧ-фильтров

2148694488.jpg

LLM-кластеризация семантического ядра выделяет запросы вида «душевая кабина 90х90 с гидромассажем» и сопоставляет их фасетам. Скрипт считает ёмкость (сколько товаров на комбинации) и частотность — и отдаёт в матрицу индексации фильтров список комбинаций «открыть + сгенерировать посадочную». То, что раньше делал аналитик месяц, конвейер делает за ночь.

Риски: автоматически выгруженные мета-теги без контроля качества — быстрый способ получить «Малый/менее полезный контент» в Google и фильтр за дорвей в Яндексе. AI SEO — это конвейер с валидацией, а не кнопка «сгенерировать всё».

Хотите внедрить AI-автоматизацию и вывести в ТОП Яндекса тысячи категорий и карточек? Закажите комплексное SEO-продвижение интернет-магазина в Калинин Студио.

6. Чек-лист: 15 шагов E-commerce SEO-аудита

  1. Выгрузить все URL из Sitemap и сравнить с индексом (site:, GSC, Вебмастер).
  2. Построить карту GET-параметров: какие меняют контент, какие — нет.
  3. Закрыть сортировки, лимиты, отображения, поиск по сайту в robots.txt.
  4. Настроить Clean-param для Яндекса (UTM, сессии, трекинг).
  5. Проставить self-canonical категориям и карточкам.
  6. Собрать матрицу фильтров: спрос × ёмкость × потенциал ЧПУ.
  7. Сгенерировать ЧПУ-посадочные для приоритетных фасетов с уникальным контентом.
  8. Проверить пагинацию: canonical на саму себя, отсутствие дублей товаров между страницами.
  9. Назначить политику Out-of-Stock (таблица выше) и внедрить её в CMS.
  10. Проверить canonical/noindex-конфликты (noindex под Disallow, canonical на 404).
  11. Внедрить JSON-LD Product/Offer/AggregateRating/BreadcrumbList и проверить валидаторами.
  12. Провести лог-анализ: доля обхода мусора, страницы с нулевой глубиной обхода.
  13. Аудит дублей Title/H1 — приоритет категориям и ТОП-карточкам по трафику.
  14. Настроить генерацию мета-тегов через LLM-конвейер с контролем уникальности.
  15. Убрать из sitemap.xml все noindex и редиректы; проверить актуальность.

Вывод

SEO для интернет магазина — это в первую очередь инженерия: управление индексом, краулинговым бюджетом и структурой фасеточного поиска. Тексты и AI-генерация подключаются, когда каталог технически чист: robots.txt изолирует мусор, canonical склеивает дубли, матрица фильтров открывает только ёмкие посадочные, микроразметка поднимает CTR. Ожидаемый результат — рост видимости на 30–70% за счёт перераспределения бюджета роботов на коммерческие страницы без увеличения ссылочного.

Калинин Студио проводит технические аудиты каталогов от 1 000 до 500 000 SKU и внедряет AI SEO конвейеры под ключ. Запросите аудит каталога и карточек товаров или комплексное SEO-продвижение. Консультация по телефону: +7 (999) 770-30-18.

Часто задаваемые вопросы

Как открывать фильтры для индексации без риска из-за 100 000 мусорных URL?

Через матрицу: индексируются только комбинации со спросом и ёмкостью (3+ товара), оформленные как статические ЧПУ с уникальным H1/Title и текстом. Остальные комбинации закрываются в robots.txt по маскам и живут только как Ajax-состояния без URL.

Что делать с Out-of-Stock — 404, 301 или скрывать?

Смотреть на причину: временно нет — страница живёт с availability: OutOfStock; снят навсегда — 301 на аналог или категорию; снят без аналога — 404/410. Массовые случаи временно прикрывать noindex, чтобы не ронять качество индекса.

Как настроить canonical для вариативных товаров (размеры, цвета)?

Если вариации — отдельные URL с собственным спросом (цвет ищут по бренду и модели), каждая вариация self-canonical с собственной разметкой. Если вариации — дублёр контента, canonical всех на основную карточку. Важно: не склеивать размеры на «родителя», если у размера есть позиции.

В чём разница между SEO-продвижением карточек товаров и категорий в Яндексе?

Категории продвигаются по средне- и высокочастотным коммерческим запросам и держат основной трафик; карточки — по НЧ-хвосту и брендовым запросам, в Яндексе получают усиление через товарную галерею и цены при валидной разметке Product/Offer.

Как использовать AI SEO для интернет-магазина?

Три контура: генерация Title/Description/H1 по шаблонам с валидацией, нейрогенерация описаний из структурированных характеристик с антидубль-контролем, кластеризация НЧ-запросов для отбора фасетов. Обязательно human-in-the-loop и выборочная вычитка.

Как защитить краулинговый бюджет от сортировок и пагинации?

Disallow по маскам /*?*sort=, /*?*order= в robots.txt, Clean-param для трекинг-параметров Яндекса, canonical на базовую категорию для страниц с параметрами, исключение мусора из sitemap. Контроль — по лог-анализу через 30 дней.

autor

Александр Калинин

Большой опыт работы в сфере оптимизации и создания сайтов. Помогу с решением важных вопросов.

Комментарии

Популярные статьи

Может быть интересно

Оставьте номер телефона и мы поможем вам