Знакомая картина: разделы каталога понемногу поднимаются, по категорийным запросам есть показы, а карточки товаров как будто не существуют. В Вебмастере они в индексе, адреса открываются, но трафика на них нет. Причина почти всегда не в одной большой ошибке, а в наборе мелких, и чинятся они в определённом порядке.
Главная причина: карточке нечего показать
Если каталог приезжает обменом из 1С, описание товара берётся из поля учётной системы. А в учётной системе описание либо пустое, либо одно и то же на всю товарную группу — его там заполняли для накладной, а не для покупателя. В результате пятьсот карточек с одинаковым текстом на двести знаков.
Для поиска это тонкий контент: страница есть, уникального содержимого нет, причин показывать её выше чужой нет тоже. Яндекс в таких случаях оставляет карточки в индексе, но держит их внизу, а часть помечает как малоценные и выкидывает совсем.
Хорошая новость в том, что уникальный текст — не обязательно копирайтинг на каждую позицию. Карточку наполняют данными, которых у конкурента нет:
- Полная таблица характеристик — не пять строк, а все, что есть в учёте
- Габариты и вес с упаковкой, комплектация, что входит в поставку
- Наличие по складам и реальный срок поставки, а не «под заказ»
- Сопутствующие товары и расходники к этой конкретной позиции
- Документы: сертификат, паспорт, инструкция в PDF
- Вопросы и ответы по товару — живой текст, который пишут сами покупатели
Характеристики здесь важнее описания. Они дают уникальное наполнение, закрывают запросы вида «товар + параметр» и одновременно питают страницы фильтров. Один раз выстроенный справочник свойств работает на оба уровня каталога.
Заголовки и метатеги по шаблону
На тысячу карточек метатеги пишутся шаблоном, и шаблон надо собирать аккуратно. Рабочая схема для title: название товара, бренд, артикул по необходимости, затем короткий коммерческий хвост вроде «купить в [город]» или «цена, характеристики, доставка».
Где это ломается на практике:
- Название товара в учёте уже содержит бренд — в title он дублируется дважды
- Названия длинные, с артикулом и фасовкой, и title обрезается до бессмыслицы
- Шаблон добавляет категорию, а она в названии тоже есть: «Дрель дрель аккумуляторная»
- Description собран из первых символов описания, а описание пустое — выводится название магазина
Поэтому шаблон не ставят и забывают, а прогоняют по всему каталогу и смотрят результат глазами хотя бы на сотне случайных карточек. Дешевле один раз выгрузить получившиеся title в таблицу и отсортировать по длине, чем потом разбираться, почему в выдаче показывается обрезанный заголовок.
H1 — это название товара, и ничего больше. Не название плюс «купить», не название плюс город. Коммерческие добавки живут в title, а H1 читает человек.
Если шаблон метатегов невозможно собрать без дублей — проблема не в шаблоне, а в том, как заведена номенклатура. Это чинится в учёте, а не на сайте.
Разметка Product: что реально нужно
Микроразметка карточки — это schema.org/Product, в формате JSON-LD в теле страницы. Состав, который имеет смысл выводить:
- name — название товара, ровно то же, что в H1
- image — абсолютные адреса картинок, не относительные пути
- description — описание без HTML-тегов
- sku, mpn — артикул и код производителя
- brand — объект типа Brand с полем name, а не строка
- offers — объект Offer с price, priceCurrency со значением RUB и availability
- availability — InStock, OutOfStock или PreOrder; строго по фактическому остатку
Два места, где разметку делают неправильно почти всегда. Первое — price выводится с пробелами и символом рубля, как на витрине. В разметке это должно быть число с точкой как разделителем: 12990.00. Второе — availability прописывается константой InStock для всех товаров, потому что так проще. Разметка, которая расходится с содержимым страницы, в лучшем случае игнорируется, в худшем воспринимается как попытка обмануть.
Отдельно про aggregateRating. Блок с рейтингом даёт звёзды в выдаче, и из-за этого его очень хочется поставить всем товарам сразу. Делать так нельзя: рейтинг должен опираться на отзывы, которые физически есть на странице и которые видит человек. Разметка рейтинга без отзывов — прямое нарушение требований и к Яндексу, и к Google, и расплачиваются за него снятием всех расширенных сниппетов по сайту, а не только на этой карточке.
К разметке Product на карточке добавляется BreadcrumbList — цепочка хлебных крошек от главной до текущей категории. Это самая дешёвая и самая надёжно работающая разметка в каталоге: она меняет вид адреса в выдаче и помогает поиску понять структуру раздела.
Варианты товара: один адрес или много
Самый спорный вопрос в каталоге. Если у товара есть цвета, размеры или фасовки, у каждой комбинации может быть свой адрес — а может быть один общий с переключателем. Правильного ответа на все случаи нет, есть признаки.
Отдельные адреса оправданы, когда на вариант есть собственный спрос: люди ищут «кроссовки такие-то белые», а не просто «кроссовки такие-то». Тогда каждый вариант — своя посадочная со своим title, своей картинкой и своей ценой. Условие: у каждого варианта должно быть что показать, иначе получится набор страниц-клонов.
Один адрес с переключателем правильнее, когда вариант — технический параметр: длина кабеля, объём фасовки, размер крепежа. Спроса на отдельный вариант нет, страниц будет сотня, и все одинаковые.
Главное — не оказаться посередине. Типичная авария: движок генерирует адреса с параметрами вида ?color=red&size=l, поиск их индексирует, и на каждый товар появляется двадцать почти идентичных страниц. Лечится либо сведением на один адрес через rel="canonical", либо директивой Clean-param в robots.txt для Яндекса. Второе предпочтительнее: Яндекс склеивает адреса и не тратит обход на мусор.
Признак, что варианты разведены неправильно: в индексе товаров больше, чем позиций в прайсе. Это всегда означает дубли, даже если каждая страница по отдельности выглядит нормально.
Товар закончился: что делать с адресом
Вопрос, который в магазине встаёт каждую неделю, а решается обычно случайно. Разбор по ситуациям:
- Нет в наличии, но будет — страница остаётся с кодом 200, цена остаётся, availability меняется на OutOfStock, кнопка превращается в «сообщить о поступлении»
- Снят с производства, замены нет — страница остаётся с кодом 200 и пометкой, что товар больше не поставляется, со ссылкой на категорию
- Есть прямая замена — 301 на новую карточку, но только если это действительно та же позиция
- Товара никогда не было, адрес ошибочный — 404
Чего делать нельзя: удалять карточку и отдавать 404 на товар, который просто кончился. Страница уже набрала возраст и, возможно, внешние ссылки. Удалив её, вы теряете это и получаете растущее число ошибок в Вебмастере. Корректное поведение при обмене — скрывать из продажи, сохраняя страницу; это настройка на стороне сайта, и её стоит проверить до того, как учёт вычистит прайс.
Массовое 301-перенаправление всех отсутствующих товаров в категорию тоже плохая идея. Поиск видит, что множество адресов ведёт на одну страницу, и воспринимает это как мягкий 404 со всеми вытекающими.
Картинки и отзывы
Картинки карточек — отдельный источник трафика, про который забывают. Три вещи, которые имеет смысл сделать: осмысленное имя файла вместо GUID из выгрузки, заполненный alt по шаблону «название товара, бренд» и отдельная карта сайта для изображений. Это не даёт мгновенного эффекта, но поиск по картинкам приводит в магазин людей с коммерческим интентом.
Отзывы — самый дорогой элемент карточки и единственный, который нельзя сделать технически. Их нужно собирать: письмо через неделю после доставки, ссылка в личном кабинете, просьба при обращении в поддержку. Когда отзывы появляются, их размечают как Review внутри Product, и тогда же появляется законное право на aggregateRating. Пока отзывов нет, блок на странице лучше не показывать вообще, чем показывать пустым — пустой блок работает против доверия.
В каком порядке это чинить
- Проверить, сколько карточек в индексе и сколько позиций в прайсе — если расходится, сначала дубли
- Навести порядок в характеристиках: один справочник свойств, заполненные значения
- Собрать шаблоны title и description, прогнать по каталогу, проверить выборочно
- Поставить разметку Product и BreadcrumbList, проверить валидатором
- Определить правило для отсутствующих товаров и настроить его в обмене
- Заполнить alt и имена файлов картинок
- Запустить сбор отзывов — это долго, поэтому начинать надо раньше, чем кажется
Порядок именно такой: пока в индексе дубли, остальное улучшает страницы, которые конкурируют между собой. Сначала убирают конкуренцию внутри сайта, потом усиливают то, что осталось.
Мы занимаемся каталогами целиком: структура свойств, шаблоны метатегов, разметка, поведение при обмене, страницы фильтров. Что входит в работу, смотрите на странице SEO интернет-магазина. Если непонятно, с чего начинать и что именно сейчас мешает, начните с технического аудита — он показывает объём дублей и состояние разметки по факту. А если каталог ещё только собирается, всё перечисленное закладывается на этапе разработки интернет-магазина и обходится дешевле, чем переделка.