SEO-просування інтернет-магазину: три технічні пастки, які тихо змінюють адреси товарів

SEO-просування інтернет-магазину: три технічні пастки, які тихо змінюють адреси товарів

Коротка відповідь: в інтернет-магазині адреса товару може змінитись без жодного рішення розробника чи SEO-фахівця. Достатньо, щоб контент-менеджер додав товар у ще одну категорію. Ми розбирали це на магазині з 6 560 активними товарами, і 234 з них стоять у кількох категоріях одночасно, тобто кожен мав шанс одного дня отримати нову адресу. Плюс дві менш очевидні пастки: допоміжні таблиці, у яких кирилиця тихо перетворилась на знаки питання, і порядок обробки редиректів, через який стара сторінка вела на технічну адресу з параметром.

Усе це не видно ні в адмінці, ні в звичайному аудиті. Видно в базі.

Пастка перша: адреса товару залежить від категорії

Магазин працює на OpenCart із модулем людиночитаних адрес, у яких шлях товару включає категорію. Тобто адреса виглядає як «розділ, підрозділ, товар».

Коли товар належить до кількох категорій, модуль має обрати одну. Він бере ту, що позначена головною. Якщо головної немає, база повертає першу, яку знайде, і цей вибір може змінитись, щойно товар додали в ще одну категорію, особливо зі старшим номером.

Типовий сценарій. Контент-менеджер додає куртку ще й у розділ «Новинки». Шлях товару змінюється, стара адреса тепер веде на 404 або на редирект, якого ніхто не налаштовував. Позиції, набрані за роки, губляться разом із нею.

Що ми зробили: для товарів у кількох категоріях проставили головну категорію явно, за поточною адресою. Резервна копія першого пакета змін, по одному розділу, містить 428 зв'язків «товар і категорія». Далі пішли решта розділів. Зараз із 234 товарів у кількох категоріях без головної лишився один.

Як перевірити свій магазин. Один запит до бази: товари, що мають більше однієї категорії і жодної позначеної головною. Якщо таких десятки, кожне додавання в нову категорію грає в рулетку з адресою.

Пастка друга: кирилиця, яка стала знаками питання

Ця пастка з'явилась через нашу ж обережність. Перед масовими правками ми робимо резервні копії потрібних рядків у допоміжні таблиці. Таблиці створювались найпростішою командою, без явного кодування. Сервер узяв кодування за замовчуванням, у якому кирилиці немає. Назви категорій у копії перетворились на знаки питання. Ми перевірили: у таблиці з назвами категорій зіпсовано 122 рядки зі 122.

Сама по собі зіпсована копія неприємна, але не смертельна. Гірше, що з таких таблиць ми рахували службові ключі для модуля фільтрів, які обчислюються з тексту значення. Ключ від знаків питання не збігається з ключем від справжньої назви, і посадкова сторінка фільтра посилається на значення, якого не існує.

Правило, яке ми з цього винесли. Кожна допоміжна таблиця створюється з явно вказаним кодуванням із підтримкою кирилиці. Ключі рахуються лише з вихідних колонок, а не з копій.

Пастки в базі магазину, яких не видно в адмінці.

Пастка третя: порядок редиректів

У магазині 1 788 посадкових сторінок фільтрів, наприклад «куртки чорні», і 2 380 правил переадресації для тих із них, які ми прибрали чи злили. Окремо ще 20 329 правил переадресації зі старих адрес.

Коли посадкову сторінку фільтра виводили з ужитку, вона мала переадресувати на категорію. Натомість переадресовувала на технічну адресу виду «сторінка фільтра з номером у параметрі». Причина виявилась у порядку обробників запиту: обробник людиночитаних адрес спрацьовував раніше за обробник переадресацій фільтрів і встигав перетворити стару адресу на технічну.

Виправлення зайняло один рядок у конфігурації: переадресації фільтрів мають оброблятись першими. Знайти цей рядок зайняло значно більше.

Бонус: дві мови на одній адресі

Ще одна деталь, яку варто знати, якщо магазин двомовний. Модуль розбирає адресу, не дивлячись на мову. Тому українська й російська версії можуть отримати однаковий фрагмент адреси для різних сторінок, і одна з них стане недосяжною. Ми знайшли це на розділах блогу, де фрагмент починався з мовного префікса, і прибрали префікси.

Що перевіряти в магазині раз на місяць

  1. Товари в кількох категоріях без головної. Має бути нуль.
  2. Допоміжні таблиці з кодуванням без кирилиці. Має бути нуль або лише ті, де кирилиці не буває.
  3. Вибірка старих адрес. Двадцять випадкових адрес із таблиці редиректів: кожна має вести одним кроком на живу сторінку, а не на 404 і не на адресу з параметром.
  4. Адреси нових товарів через тиждень після публікації. Чи не змінились вони після того, як товар додали в акції чи підбірки.

Чого ми не стверджуємо

Це один магазин на одній платформі з конкретними модулями. На іншому рушії адреса товару може не залежати від категорії взагалі, і перша пастка там не працює.

Ми не рахували, скільки трафіку магазин втратив через змінені адреси до виправлення. Даних «до» в потрібній розбивці немає.

І цифри зібрано 12 жовтня 2026 року, уже після більшої частини виправлень. Вони показують масштаб каталогу й ризику, а не стан до нашої роботи.

Часті питання

Чому адреса товару змінилась сама?

Найчастіше товар додали в ще одну категорію, а головна категорія не була позначена. Модуль обрав іншу.

Як цьому запобігти?

Позначити головну категорію для кожного товару в кількох категоріях і перевіряти це щомісяця.

Чи небезпечні редиректи в такій кількості?

Самі по собі ні. Небезпечні ланцюжки, редиректи на 404 і на технічні адреси з параметрами.

Що таке посадкова сторінка фільтра?

Окрема сторінка для поєднання значень фільтра, наприклад «куртки чорні», зі своєю адресою, заголовком і текстом.

З чого почати SEO інтернет-магазину на готовій платформі?

З перевірки, як формуються адреси товарів і категорій. Тексти й фільтри мають сенс лише тоді, коли адреси стабільні.

Підсумок

В інтернет-магазині адреса товару може змінитись від дії контент-менеджера. У нашому випадку 234 товари з 6 560 стояли в кількох категоріях, і без позначеної головної кожне нове додавання ставило адресу під ризик.

Дві інші пастки тихіші: допоміжні таблиці без кирилиці, де 122 рядки зі 122 стали знаками питання, і порядок обробників, через який прибрані сторінки фільтрів вели на технічні адреси.

SEO-просування магазину починається зі стабільних адрес. Перевіряти їх варто в базі, бо в адмінці жодна з цих пасток не видна.


Матеріал підготували Євгеній Чиж, засновник Chyzh Agency, і Костянтин Корягін, Backend-розробник.

Поділитися
У пошуках підрядника з SEO?
Заходьте до нашого online каталогу SEO агентств та вибирайте партнера за рядом критеріїв: бал, портфоліо, відгуки, кейси та статті. Або організуйте тендер в даному каталозі, вибравши компанії, що вам сподобалися.
Більше не потрібно шукати та обдзвонювати діджитал-агентства!
Створіть тендер та отримайте пропозиції від найкращих веб-студій України.
У каталозі 1700+ діджитал-агентств, які готові допомогти в реалізації ваших завдань. Вибирайте та економте до 30% свого часу та бюджету! Це безкоштовно та займе менше 3-х хвилин.
Створити тендер
Bug