SEO для интернет-магазина: фильтры, дубли, карточки и категории без потери индекса
Александр Калинин
20 Сентябрь 2026
18 мин.
Типичная ситуация для каталога на 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 работает только в комплекте с согласованной архитектурой ссылок.
| Метод | Что делает | Яндекс | Когда применять | |
|---|---|---|---|---|
| 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

Пагинация: 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% партии.
- Факты (цена, наличие) в карточку вставляет движок, а не модель.
Автоматическая группировка НЧ-фильтров

LLM-кластеризация семантического ядра выделяет запросы вида «душевая кабина 90х90 с гидромассажем» и сопоставляет их фасетам. Скрипт считает ёмкость (сколько товаров на комбинации) и частотность — и отдаёт в матрицу индексации фильтров список комбинаций «открыть + сгенерировать посадочную». То, что раньше делал аналитик месяц, конвейер делает за ночь.
Риски: автоматически выгруженные мета-теги без контроля качества — быстрый способ получить «Малый/менее полезный контент» в Google и фильтр за дорвей в Яндексе. AI SEO — это конвейер с валидацией, а не кнопка «сгенерировать всё».
Хотите внедрить AI-автоматизацию и вывести в ТОП Яндекса тысячи категорий и карточек? Закажите комплексное SEO-продвижение интернет-магазина в Калинин Студио.
6. Чек-лист: 15 шагов E-commerce SEO-аудита
- Выгрузить все URL из Sitemap и сравнить с индексом (site:, GSC, Вебмастер).
- Построить карту GET-параметров: какие меняют контент, какие — нет.
- Закрыть сортировки, лимиты, отображения, поиск по сайту в robots.txt.
- Настроить Clean-param для Яндекса (UTM, сессии, трекинг).
- Проставить self-canonical категориям и карточкам.
- Собрать матрицу фильтров: спрос × ёмкость × потенциал ЧПУ.
- Сгенерировать ЧПУ-посадочные для приоритетных фасетов с уникальным контентом.
- Проверить пагинацию: canonical на саму себя, отсутствие дублей товаров между страницами.
- Назначить политику Out-of-Stock (таблица выше) и внедрить её в CMS.
- Проверить canonical/noindex-конфликты (noindex под Disallow, canonical на 404).
- Внедрить JSON-LD Product/Offer/AggregateRating/BreadcrumbList и проверить валидаторами.
- Провести лог-анализ: доля обхода мусора, страницы с нулевой глубиной обхода.
- Аудит дублей Title/H1 — приоритет категориям и ТОП-карточкам по трафику.
- Настроить генерацию мета-тегов через LLM-конвейер с контролем уникальности.
- Убрать из 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 дней.
Комментарии
Поделитесь своим мнением