Восемь проблем, которые нашли на старте и закрыли за период работ. Первые три — корневые:
пока они были живы, любая оптимизация контента упиралась в потолок.
Долгий отклик сервера
критичноКаталог отдавался медленно: тяжёлые листинги с фильтрами по памяти и цвету собирались на каждый запрос, кэша на уровне разделов не было. Робот тратил бюджет обхода на ожидание, переобход изменившихся карточек растягивался на недели, а на пиковых нагрузках часть страниц отдавала таймаут.
Профилировали TTFB по типам страниц, вынесли сборку листингов в кэш, разгрузили запросы к каталогу, отдали статику отдельно. Отклик и доступность держим на контроле через «Скорость сайта» в Вебмастере и логи сервера.
Технические дубли каталога
критичноМодификации памяти и цвета, GET-параметры фильтров, сортировок и пагинации плодили десятки почти одинаковых URL. Они конкурировали с основными посадочными и размывали релевантность: по одному запросу в выдаче оказывалась то категория модели, то подкатегория по памяти, то карточка товара.
Доработали админку: добавили постраничное управление meta robots — noindex / nofollow проставляются прямо в настройках раздела, без правок кода и без обращения к разработчикам. Закрыли параметрические, сортировочные и служебные страницы, оставили в индексе только целевые посадочные, привели в порядок canonical и правила robots.txt.
Каннибализация посадочных
высокийДо правок URL, которым поисковик отвечал на один и тот же запрос, менялся от съёма к съёму. Страница не накапливала сигналы: вес размазывался между категорией, подкатегорией и карточкой.
Составили карту «запрос → посадочная» на все 90 запросов, развели интенты между уровнями каталога, переписали Title, H1 и описания так, чтобы страницы не пересекались, и связали уровни перелинковкой. К последним срезам в Google посадочная по запросу перестала меняться вовсе.
Некуда было приземлять часть спроса
высокийСобранная семантика показала группы запросов, под которые на сайте не было отдельной страницы. Такой спрос приходилось отдавать общей категорией, где интент растворялся среди всего ассортимента: запрос либо не ранжировался вовсе, либо цеплялся случайной страницей, которая отвечала на него лишь частично.
На основе семантики достроили недостающие теговые посадочные — под каждую группу запросов свою страницу. Каждая новая посадочная сразу получала собственные теги, контент и место в карте «запрос → посадочная», чтобы не создать новых пересечений.
Метатеги — один шаблон на весь каталог
среднийTitle, Description и H1 генерировались единым правилом на весь каталог. Страницы разного типа и разного интента — категория модели, теговая посадочная, подкатегория, карточка товара — получали одинаково устроенные теги, а часть из них не заполнялась вовсе. Поиску нечем было отличить одну страницу ветки от другой.
Доработали теги точечно, а не одним правилом на всё: развели логику по типам страниц и отдельно прописали её для теговых посадочных. Приоритетные страницы заполняли вручную — через ту же админку, в которой появилось постраничное управление тегами.
Товары «нет в наличии» отдавали 404
среднийАссортимент Apple в рознице живёт волнами: модификация уходит из наличия и возвращается через недели. Страницы таких товаров отдавали 404 и выпадали из индекса вместе со всем накопленным весом, а после возврата всё начиналось заново.
Ввели правило жизненного цикла карточки: временно отсутствующий товар остаётся доступным с признаком «нет в наличии» и блоком аналогов, снятый с продажи — уходит 301-м редиректом на родительскую категорию. 404 остался только для несуществующих URL.
Нет данных о товаре в сниппете
среднийНи цены, ни наличия, ни хлебных крошек в результатах поиска — сниппет проигрывал маркетплейсам в выдаче, где по коммерческому запросу конкуренция идёт за клик, а не только за позицию.
Внедрили микроразметку Product, Offer, AggregateOffer и BreadcrumbList на карточках и листингах, вывели цену, наличие и город. Сниппеты стали показывать цену и доступность.
Тонкие листинги
среднийКатегории представляли собой голую сетку товаров: ни отличий модификаций, ни ответа на «сколько стоит», ни условий доставки и гарантии. По коммерческим запросам с уточнением поиску было нечего сопоставить с интентом.
Добавили на листинги смысловые блоки: чем отличаются модификации по памяти, что входит в комплект, гарантия, условия доставки и самовывоза по Санкт-Петербургу, рассрочка. Тексты писали под конкретный интент раздела, а не «для объёма».