SEO интернет-магазина на старте: фильтры, дубли, товары без остатка и другие технические вопросы каталога
Короткий ответ: SEO интернет-магазина начинается не с текстов, а с устройства каталога. Нужно заранее решить, какие страницы фильтров получают собственный адрес и попадают в поиск, а какие закрыты; как не плодить дубли из-за сортировок, параметров и одного товара в нескольких категориях; что показывать на месте закончившегося товара; и как передать поисковику цену и наличие через разметку и фид. Всё это закладывается в техзадание до вёрстки — переделывать адреса после запуска дороже и рискованнее. Позиций ни один подрядчик честно не обещает: техническая основа лишь даёт каталогу шанс быть найденным.
Чем SEO магазина отличается от SEO обычного сайта?
Масштабом и тем, что страницы рождаются сами. У сайта услуг двадцать страниц, и каждую делают руками. У магазина каталог из тысячи товаров, а фильтры и сортировки порождают десятки тысяч адресов. Главная задача — управлять тем, какие из них увидит робот.
Общую базу — robots.txt, sitemap.xml, одно главное зеркало, title и description, Вебмастер и Search Console — мы разбирали в статье «Что должно быть на сайте при запуске». Здесь — то, чего у обычного сайта нет:
- Фасетная навигация. Каждый фильтр меняет адрес, и сочетаний становится больше, чем товаров.
- Генерируемые title и H1. Их пишет не копирайтер, а шаблон: «Шубы из норки с капюшоном — купить в Москве, цена от…». Шаблон надо продумать так же, как текст.
- Живые данные. Цена и остаток меняются каждый день, и в поиске они должны совпадать с витриной.
- Скорость листинга. Страница категории с фильтрами — самая тяжёлая на сайте: она считает выборку, счётчики и сортировку на каждом запросе.
Отсюда главный совет заказчику: SEO-требования к каталогу должны появиться на брифе, рядом со списком категорий и свойств товаров. Тогда разработчик строит адреса, шаблоны и выборки сразу под них.
Какие страницы фильтров открывать для поиска?
Только те комбинации, под которые люди ищут отдельно и в которых есть товары. Обычно это категория плюс одно значимое свойство: материал, бренд, назначение, сезон. Такие страницы получают человекопонятный адрес, свой title, H1 и абзац текста. Остальные сочетания закрывают от обхода.
Как найти посадочные фильтры на практике:
- Выпишите свойства товаров, по которым покупатель фильтрует: размер, цвет, бренд, материал, цена.
- Проверьте спрос по каждому значению в связке с категорией в Вордстате: «шубы из норки», «шубы с капюшоном», «зимние шины 17 радиус». Где запросов заметно, там кандидат в посадочную.
- Отсейте значения с одним-двумя товарами: страница из одной позиции в поиске проигрывает самой карточке.
- Для каждой посадочной заранее задайте шаблон title и H1 и решите, кто напишет к ней короткий текст.
Остальные фильтры работают для покупателя, но не для робота. Google в справке по фасетной навигации первым способом называет запрет обхода адресов фильтров в robots.txt; canonical на нефильтрованную страницу там описан как менее действенный в долгую. Там же советы держать порядок фильтров в адресе постоянным, не допускать повторов и отдавать 404 на пустые, дублирующие и бессмысленные комбинации.
Пример из нашей практики — сайт шинного центра «Зелёная дорога». Покупатели ищут шины и диски под конкретную машину, поэтому кроме каталога сделан раздел «по марке автомобиля»: 56 марок с таблицами заводских размеров, у каждой подборки — свои позиции, факты и вопросы-ответы. Всего в картах сайта 1 432 страницы, для товаров — отдельная карта.
| Тип страницы | Пример адреса | Что делаем | Почему |
|---|---|---|---|
| Категория | /shuby/norka/ | Открыта, в карте сайта | Основная посадочная страница под запрос «шубы из норки» |
| Посадочный фильтр с отдельным спросом | /shuby/norka/s-kapyushonom/ | Открыта: свой адрес, свой title, H1 и абзац текста | Под эту комбинацию люди ищут отдельно, а выборка непустая |
| Комбинация из нескольких фильтров | ?color=black&size=48&len=midi | Закрыта от обхода в robots.txt или noindex | Спроса почти нет, а таких адресов тысячи |
| Сортировка | ?sort=price | Закрыта: noindex или Clean-param в robots.txt | Тот же набор товаров в другом порядке |
| Страница 2, 3… пагинации | ?page=2 | Открыта, canonical на саму себя | Через неё робот доходит до товаров в глубине категории |
| Пустая выборка | ?size=62 при пустом наличии | Ответ 404 или страница не создаётся | Пустая страница в индексе — мусор и лишний обход |
Как избежать дублей товаров и категорий?
У каждой страницы должен быть один адрес, а все варианты — сведены к нему. Дубли в магазине появляются из сортировок, UTM-меток, товара в двух категориях, вариантов цвета и размера на разных адресах и разной записи одного фильтра. Решение — правила адресов в ТЗ, canonical и Clean-param.
Главные источники дублей и что с ними делать:
- Товар в нескольких категориях. Адрес карточки не должен зависеть от пути: /product/shuba-norka-1045/, а не /zhenskoe/shuby/1045/ и /rasprodazha/1045/ одновременно. Если иначе нельзя, canonical ведёт на один основной адрес.
- Варианты одного товара. Цвета и размеры одной модели обычно живут на одной карточке с переключателем. Отдельный адрес варианту нужен, только если под него есть отдельный спрос, — тогда у него свои фото, title и canonical на себя.
- Сортировки и метки. ?sort=, ?utm_source=, ?from= не меняют набор товаров. Для Яндекса их описывают директивой Clean-param в robots.txt: робот сведёт такие адреса к одному. Для Google — noindex или запрет обхода.
- Разный порядок фильтров. ?color=black&size=48 и ?size=48&color=black — это два адреса с одним содержимым. Приложение должно всегда собирать параметры в одном порядке.
- Слеш, регистр, index.php. /Shuby, /shuby и /shuby/ должны сводиться 301-редиректом к одному варианту.
Отдельно о пагинации. Google больше не использует rel="next" и rel="prev" и в справке по пагинации в магазинах прямо советует не ставить canonical со второй страницы на первую: у каждой страницы свой адрес вида ?page=2 и свой канонический адрес. Бесконечная прокрутка без обычных ссылок на следующие страницы прячет товары из глубины каталога от робота.
Что делать с товарами, которых нет в наличии?
Не удалять страницу сразу. Если товар вернётся, карточка остаётся открытой с пометкой «нет в наличии» и разметкой OutOfStock. Если снят навсегда, решает трафик: при прямой замене — 301 на новую модель, без замены и трафика — ответ 404 или 410 и удаление из карты сайта и фида.
Частая ошибка — массовое удаление карточек при каждой выгрузке остатков из 1С. Страница пропала, ссылки из поиска и закладок ведут в никуда, через месяц товар вернулся под тем же артикулом — и его снова нужно индексировать. Правильно, когда обмен с учётной системой меняет статус, а не удаляет товар. Как устроен такой обмен, мы описывали в статье про магазин с обменом 1С.
Что ещё решить заранее:
- Показывать ли закончившиеся товары в листинге. Частый вариант — показывать, но в конце списка, и дать фильтр «в наличии».
- Что делать с товаром без цены. В кейсе AleksFurs товар без цены скрыт до загрузки цен — так на витрине не появится позиция с нулевой ценой.
- Как не потерять старые адреса при переезде. В том же кейсе 226 адресов старого сайта получили постоянную переадресацию на новые страницы: 159 карточек сопоставлены по артикулу, адреса продвигаемых страниц ведут в подходящие разделы.
| Ситуация | Что делать со страницей | Что видит покупатель |
|---|---|---|
| Временно нет, поставка ожидается | Страница остаётся, код 200, в разметке availability — OutOfStock или PreOrder | Пометку «нет в наличии» или «под заказ», кнопку «сообщить о поступлении», похожие товары |
| Снят с продажи, есть прямая замена | Постоянный 301-редирект на новую модель | Сразу новую карточку |
| Снят с продажи, замены нет, на страницу есть ссылки и трафик | Страница остаётся с пометкой «снят с продажи» и подборкой похожих или 301 в категорию | Объяснение и куда идти дальше |
| Снят навсегда, трафика и ссылок нет | Ответ 404 или 410, убрать из карты сайта и фида | Страницу ошибки со ссылками на каталог |
Зачем микроразметка и товарный фид?
Чтобы поисковик точно понял цену, валюту и наличие, а не угадывал их по вёрстке. Разметка Product из словаря Schema.org живёт в коде карточки; фид — отдельный файл со всем ассортиментом. Разметка влияет на вид сниппета, фид нужен для товарных сервисов поисковиков. Показ расширенного сниппета поисковик при этом не обещает.
По справке Google о разметке товаров обязательное поле — название, и к нему нужен хотя бы один из блоков: предложение с ценой, отзыв или рейтинг. Наличие передаётся полем availability: InStock, OutOfStock, PreOrder, Discontinued и другие значения. Там же совет выводить разметку в исходном HTML: разметку, которую достраивает скрипт в браузере, Google обходит реже и менее надёжно, а для меняющихся цен и наличия это критично. Отсюда практический вывод: разметку должно генерировать приложение из тех же данных, что и витрину, иначе цена в сниппете разойдётся с ценой на странице.
YML — формат товарного фида, который придумал Яндекс. Через него магазин передаёт ассортимент в Яндекс Товары: права на сайт подтверждаются в Вебмастере, фид загружается через интерфейс сервиса или API Вебмастера. Тот же файл часто нужен для рекламы и прайс-агрегаторов, поэтому его стоит строить приложением по расписанию, а не выгружать вручную. Как выгружать товарный фид для Яндекс Директа и ВК Рекламы и почему его отклоняют, мы разобрали отдельно.
Насколько важна скорость страниц каталога?
Очень: листинг с фильтрами — самая тяжёлая страница магазина, и её открывают чаще всего. Если выборка считается секундами, страдают и покупатели, и обход робота. Скорость закладывается архитектурой: где считаются фильтры, как устроены индексы базы, отдаёт ли сервер готовый HTML.
Что проверить у подрядчика:
- Фильтры и счётчики считаются на сервере, а страница категории приходит роботу готовым HTML со списком товаров, а не пустой оболочкой.
- Фото товаров ужимаются и отдаются в размере под экран, а не исходником с камеры.
- Время ответа страницы каталога измеряли на реальном объёме товаров, а не на десяти демо-позициях.
Для ориентира: в магазине AleksFurs страницы собираются на сервере, и в замере на объёме боевого каталога медиана ответа страницы каталога — 12 мс, карточки товара — 3 мс. Как проверить скорость самостоятельно, рассказано в статье «Скорость загрузки сайта».
Когда всё это не нужно и какие ошибки встречаются чаще всего?
Если товаров несколько десятков, а продажи идут через рекламу, маркетплейсы или повторных клиентов, сложная схема посадочных фильтров не окупит усилий. Хватит чистых адресов, уникальных карточек, разметки и карты сайта. Если же покупка всё равно идёт через менеджера, посмотрите на сайт-каталог с заявкой.
Ошибки, которые встречаются в каталогах чаще всего:
- Все комбинации фильтров открыты и попали в карту сайта: в индексе тысячи почти пустых страниц, а важные категории обходятся реже.
- Фильтры работают только скриптом в браузере, и у посадочной страницы нет собственного адреса — ей нечего показать в поиске.
- Canonical со всех страниц пагинации ведёт на первую.
- Описания товаров скопированы с сайта производителя один в один у всех продавцов. Хотя бы для ходовых позиций стоит дописать своё: опыт применения, комплектацию, ответы на частые вопросы.
- При редизайне сменили адреса и не настроили 301-редиректы. Если вы как раз выбираете между переделкой и новым сайтом, начните со статьи «Редизайн или новый сайт».
Чек-лист перед запуском
Пройдите этот список вместе с разработчиком на тестовой версии, до переключения домена. Каждый пункт проверяется за минуты в браузере, в Вебмастере или в инструменте проверки разметки, а исправить его до запуска намного проще, чем после.
- У категорий и посадочных фильтров человекопонятные адреса латиницей, без лишних параметров.
- Для посадочных страниц заданы шаблоны title, description и H1, у ключевых категорий есть свой текст.
- Параметры сортировки, меток и прочих фильтров закрыты: Clean-param для Яндекса, noindex или запрет обхода для Google.
- Порядок параметров в адресе всегда один; пустые выборки отдают 404.
- У страниц пагинации свои адреса, обычные ссылки на следующие страницы и canonical на себя.
- Карточка товара доступна по одному адресу независимо от категории.
- Закончившиеся товары не удаляются при обмене с учётной системой, а меняют статус.
- Разметка Product с ценой, валютой и наличием выводится в HTML и проходит проверку без ошибок.
- Карта сайта строится автоматически и не содержит закрытых, пустых и удалённых адресов.
- YML-фид собирается по расписанию из тех же данных, что и витрина.
- Старые адреса, если магазин переезжает, сведены 301-редиректами с новыми по таблице соответствия.
- Страница категории на реальном объёме товаров отвечает быстро и на телефоне.
Что из этого делаем при разработке магазина?
Технические правила каталога мы обсуждаем на брифе и записываем в техзадание вместе со списком категорий и свойств товаров. Интернет-магазин под ключ у нас — от 104 000 ₽ и от 5 дней; цену и срок фиксируем в договоре до старта.
Что важно знать заранее. Наполнение каталога сверх демо-примеров, тексты для посадочных страниц и фотосъёмка в базовую цену не входят и считаются отдельно. Одна связка с 1С, CRM или складом входит в тариф. Выгрузка на Wildberries и Ozon — отдельный тариф «Автоматизация маркетплейсов» от 40 000 ₽. После запуска — 14 дней бесплатной поддержки, затем поддержка и развитие от 7 900 ₽ в месяц: например, когда понадобятся новые посадочные фильтры под сезонный спрос. Продвижение — семантика, статьи, ссылки — в эту цену не входит; техническая основа нужна, чтобы любое продвижение потом не упиралось в устройство каталога.
Короткие ответы на частые вопросы
Нужно ли открывать для поиска все страницы фильтров?
Нет. Открывают только комбинации, под которые есть отдельный спрос и непустая выборка: обычно это категория плюс одно свойство, например материал, бренд или назначение. Остальные сочетания закрывают от обхода, иначе робот тратит время на тысячи почти одинаковых адресов.
Ставить ли на страницах пагинации canonical на первую страницу?
Google в своей справке прямо советует так не делать: у каждой страницы пагинации должен быть свой канонический адрес. Иначе товары с дальних страниц робот находит хуже.
Удалять ли карточку, если товар закончился?
Если товар вернётся — нет: оставьте страницу с пометкой и разметкой «нет в наличии». Если снят навсегда, решение зависит от трафика: при прямой замене — 301 на неё, без замены и трафика — ответ 404 или 410.
Сколько стоит интернет-магазин с проработанным каталогом?
Интернет-магазин у нас — от 104 000 ₽ и от 5 дней. Правила адресов, посадочные фильтры, разметку и фид записываем в техзадание на брифе, итоговую цену фиксируем в договоре до старта.
Можно ли поправить SEO каталога на уже работающем магазине?
Часто да: закрыть мусорные параметры, настроить canonical, разметку и редиректы можно без переделки витрины. Если адреса строятся платформой так, что их не изменить, выгоднее сравнить доработку с переездом.
Услуги и кейсы по теме: интернет-магазины · кейс «Зелёная дорога» · цены и сроки
Пришлите ссылку на текущий каталог или выгрузку товаров — разберём структуру категорий и фильтров и назовём цену и срок магазина после брифа.
Рассчитать проект →Оценку срока и цены по брифу делаем бесплатно, обычно отвечаем в течение часа в рабочее время. Типовой договор — посмотреть до оплаты.
