Коротко о результате. Украинский интернет-магазин косметики для волос вышел примерно на 100 продаж в месяц из органического поиска при среднем чеке 3 000–5 000 грн. Это 300–500 тыс. грн выручки ежемесячно из канала, которому не нужен рекламный бюджет. Главное было не «нарастить SEO», а остановить войну страниц сайта между собой. Ниже весь кейс SEO магазина косметики по шагам.
Название магазина не раскрываю, NDA. Зато ниша, цифры и каждый шаг в этом кейсе настоящие.
И честно, магии здесь нет. Это история о том, как сайт годами недозарабатывал из-за одной структурной ошибки, которую я встречаю в 8 из 10 интернет-магазинов.
Точка старта, где контента хватает, категорий много, а продаж мало
Магазин профессиональной косметики для волос. Шампуни, маски, масла, уход за окрашенными волосами. Больше 70 активных категорий на WooCommerce.
Прежний подрядчик жил по принципу «больше страниц, больше трафика» и под каждый запрос делал отдельную категорию с текстом.
На бумаге все выглядело солидно. Search Console показывал другое. Показы росли, а клики и продажи стояли на месте.
Категории-близнецы воевали за одни запросы
Открываю семантику и вижу классическую картину. «Шампунь для сухих волос» и «шампуни увлажняющие» существуют как две разные категории с почти одинаковыми текстами. С «масками для окрашенных волос» и «уходом за окрашенными волосами» то же самое.
Для человека это разные полочки. Google же видит дубли, которые претендуют на одну и ту же выдачу.
Это называется каннибализация. Google не понимает, какую страницу показывать, и обе ранжируются хуже, чем могла бы одна. Позиции «прыгают», сниппет подменяется, часть страниц вообще выпадает из выдачи.
Как это выглядело в цифрах. Возьмем одну пару категорий-близнецов. В Search Console обе страницы показывались по одному кластеру запросов, причем по очереди. Неделю в выдаче одна, неделю другая.
Средняя позиция у обеих плавала в пределах 8–15. Ни одна не закрепилась даже в топ-5, хотя контента и релевантности двух страниц вместе хватило бы на топ-3.
Умножьте эту картину на несколько десятков таких пар, и станет ясно, почему магазин с 70+ категориями собирал трафик как сайт с 20.
Решение развести страницы, а не убивать их
Обычно в таких случаях советуют закрыть «лишние» категории через noindex или удалить. Я принципиально этого не делал, и вот почему.
У каждой из этих категорий был собственный живой спрос. Закрыть ее значит добровольно отдать этот спрос конкурентам. Это ампутация там, где нужна хирургия.
Вместо этого каждой паре категорий-близнецов мы дали свой угол. Одна отвечает на запрос о проблеме («для сухих волос», симптомы и подбор ухода), другая о типе продукта («увлажняющие», составы, бренды, сравнение). Разный интент → разные тексты → разные запросы → ни одного конфликта.
На практике порядок был такой. Сначала полная карта запросов по всем 70+ категориям, кто с кем конфликтует и за что именно. Потом по каждому конфликту решали, какой угол отдаем каждой странице.
И только после этого тексты. Писать контент до карты значит идти тем же путем, которым сайт и пришел к каннибализации.
Переписывали мы партиями по 8–10 категорий, от самых конфликтных пар к самым спокойным. Так первые результаты появились уже в процессе, а не «когда-нибудь после завершения проекта».
Что именно было сделано
| Направление | Работа |
|---|---|
| Архитектура | Полная карта «запрос → страница» для 70+ категорий, каждая пара близнецов разведена по интенту без noindex и удалений |
| Контент | Новые тексты категорий партиями по жесткому правилу, никакие две страницы не отвечают на один запрос |
| Структурированные данные | JSON-LD для категорий и FAQ-блоки с разметкой под расширенные сниппеты и AI-выдачу |
| Доверие (E-E-A-T) | Страница «О магазине» и экспертные блоки как сигнал, что за сайтом стоит реальный продавец, а не дорвей |
Заметьте, в списке нет «закупили 200 ссылок» или «нарастили бюджет вдвое». Деньги здесь терялись не из-за нехватки SEO. Имеющийся контент работал против самого себя.
Кейс SEO магазина косметики и около 100 продаж в месяц
После разведения категорий Google перестал путаться, и каждая страница получила стабильную позицию по своему кластеру запросов.
Первые 6–8 недель позиции выравнивались без резких скачков. Дальше пошел стабильный рост кликов по коммерческим запросам.
Сегодня магазин стабильно делает около 100 продаж в месяц из органического поиска. При среднем чеке 3 000–5 000 грн это 300–500 тыс. грн ежемесячной выручки из канала, где не нужно платить за каждый клик.
Для сравнения, такой же трафик из рекламы в этой нише стоил бы десятки тысяч гривен в месяц, а поток прекращался бы в день, когда кончится бюджет. Подробную математику каналов я разбирал в статье о стоимости SEO продвижения.
Что это значит для вашего магазина
Три вывода, которые подойдут любому e-commerce.
- Если категорий много, а продаж мало, сначала ищите каннибализацию. Ее выдают «прыгающие» позиции, не та страница в выдаче и показы без кликов. На диагностику в Search Console хватит одного вечера.
- Не спешите удалять или закрывать страницы. Каждая категория с реальным спросом остается активом. Правильный вопрос звучит не «что убить», а «как развести по интентам».
- Новые деньги в SEO нужны не всегда. В этом кейсе SEO оптимизации интернет-магазина результат принес не больший бюджет, а порядок в том, что уже было создано и оплачено.
Похожая история с каннибализацией была и в немецком проекте, где 11 страниц конкурировали за одни ключи, но это уже другой кейс. Если у вас интернет-магазин и симптомы знакомы, посмотрите разбор типичных проблем на странице SEO для интернет-магазинов.
Подозреваете, что ваши категории воюют между собой?
Бесплатный аудит за 24 часа. Найду каннибализацию, покажу карту конфликтов и план разведения страниц. Получить бесплатный аудит →