Результат коротко: український інтернет-магазин косметики для волосся вийшов на ~100 продажів на місяць з органічного пошуку при середньому чеку 3 000–5 000 грн — це 300–500 тис. грн виручки щомісяця з каналу, який не потребує рекламного бюджету. Головна робота була не в «нарощуванні 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 — а через те, що наявний контент працював проти себе.
Результат: ~100 продажів на місяць з органіки
Після розведення категорій Google перестав плутатись: кожна сторінка отримала свою стабільну позицію по своєму кластеру запитів.
Динаміка виглядала так: перші 6–8 тижнів — вирівнювання позицій без різких стрибків, далі — стабільний ріст кліків по комерційних запитах.
Сьогодні магазин стабільно робить близько 100 продажів на місяць з органічного пошуку. При середньому чеку 3 000–5 000 грн це 300–500 тис. грн щомісячної виручки — з каналу, за трафік у якому не треба платити за кожен клік.
Для порівняння: щоб купити такий самий трафік у рекламі в цій ніші, довелося б витрачати десятки тисяч гривень щомісяця — і потік зупинявся б у день зупинки бюджету. Детальну математику каналів я розбирав у статті про вартість SEO-просування.
Що це означає для вашого магазину
Три висновки, які переносяться на будь-який e-commerce:
- Якщо категорій багато, а продажів мало — спершу шукайте канібалізацію. Симптоми: позиції «стрибають», у видачі з’являється не та сторінка, покази ростуть без кліків. Це діагностується за один вечір у Search Console.
- Не поспішайте видаляти чи закривати сторінки. Кожна категорія з реальним попитом — це актив. Правильне питання не «що вбити», а «як розвести за інтентами».
- Нові гроші в SEO не завжди потрібні. У цьому кейсі результат дав не більший бюджет, а наведення порядку в тому, що вже було створено й оплачено.
Схожа історія з канібалізацією була і в німецькому проєкті, де 11 сторінок конкурували за одні ключі — але то вже інший кейс. Якщо у вас інтернет-магазин і описані симптоми звучать знайомо — подивіться також розбір типових проблем на сторінці SEO для інтернет-магазинів.
Підозрюєте, що ваші категорії воюють між собою?
Безкоштовний аудит за 24 години: знайду канібалізацію, покажу карту конфліктів і план розведення сторінок. Отримати безкоштовний аудит →