E-commerce та БізнесТехнічне SEO

Prom, Хорошоп чи OpenCart: що видно ззовні у 43 магазинах

15 вересня 2026 ми виміряли ззовні 43 магазини на Prom, Хорошопі та OpenCart. По дорозі знайшли дві пастки виміру: HEAD-запит, через який Prom здавався найшвидшим, і сторінку перевірки, яку 21 із 22 магазинів Хорошопу віддають клієнту без браузера.

15 вересня 2026 року ми виміряли ззовні 43 живі інтернет-магазини на трьох платформах: 22 на Хорошопі, 9 на Prom із власним доменом і 12 на OpenCart. Хотіли отримати просте порівняння: скільки думає сервер, чи є canonical, чи розмічений товар, що лежить у карті сайту.

Порівняння ми отримали, але спершу довелося розібратися з двома помилками самого виміру. Через першу Prom вийшов би найшвидшою платформою. Через другу вийшло б, що майже на всіх магазинах Хорошопу немає ні аналітики, ні canonical. Обидва висновки були б неправдою, і обидві пастки чекають на кожного, хто перевіряє сайт автоматичним інструментом.

Кого міряли і як

Вибірка не випадкова, і це треба сказати одразу. Хорошоп — це 22 магазини, відібрані здебільшого з публічного списку клієнтів платформи, які 15 вересня відповіли кодом 200. Два домени ми відкинули: один віддав порожню відповідь, другий не мав ознак платформи. Prom — 9 магазинів на власних доменах, знайдених як приклади в статті іншої агенції та пошуком. OpenCart — 12 магазинів із нашої серпневої вибірки, портфоліо однієї студії та пошуку. Жоден із 43 не є нашим клієнтом.

Платформу підтверджували за кодом сторінки, а не за назвою. У Prom це ресурси та шапка з доменів самої платформи. У Хорошопу — шаблон robots.txt і карта сайту в каталозі платформи. В OpenCart — шляхи до теми й скриптів движка.

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

Пастка перша: інструмент міряв відмову, а не сторінку

Наш скрипт зовнішнього аудиту знімає час першої відповіді запитом HEAD. Такий запит просить у сервера лише заголовки, без тіла сторінки. Для Prom скрипт видав медіану 138,7 мс. Це виглядало б як найкращий результат вибірки.

Насправді Prom на HEAD відповідає кодом 405, тобто «метод не дозволено». Сервер швидко відмовляє, і скрипт міряв саме цю відмову. Коли ми перейшли на звичайний GET кінцевої адреси (п'ять замірів на сайт, від кожного береться медіана), картина розвернулась: медіана по дев'яти магазинах Prom склала 713,8 мс.

16 вересня ми повторили перевірку на трьох магазинах Prom. HEAD повернув 405 за 0,16–0,32 с, а GET тієї самої адреси повернув 200 за 0,78–1,09 с.

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

Пастка друга: Хорошоп віддає не-браузеру сторінку перевірки

Друга проблема більша. На 21 із 22 магазинів Хорошопу запит без браузера отримує замість магазину крихітну сторінку з одним скриптом. Так 15 вересня відповідали і curl, і наш аудит. Розмір відповіді — від 295 до 778 байтів.

Скрипт на цій сторінці крутить порожній цикл 800 мс плюс випадкову добавку до 500 мс. Потім він ставить cookie challenge_passed строком на 30 хвилин і перезавантажує сторінку. Браузер проходить це сам і показує магазин. Клієнт, який не виконує JavaScript, бачить тільки скрипт.

Що наш інструмент «побачив» на 22 головних Хорошопу:

  • canonical на головній — у 1 магазину з 22;
  • лічильників аналітики немає — у 21 з 22;
  • розмітка Product на товарній сторінці — у 0 з 19, де вдалося відкрити товар.

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

16 вересня повторний прохід дав те саме: 21 із 22, розмір від 295 до 777 байтів. Того ж дня ми відкрили один із цих магазинів у Chrome через Playwright. Сторінка завантажилась одразу, cookie перевірки не з'явилась, canonical і hreflang на місці, а сама головна передалась розміром понад 50 КБ.

Що віддається без перевірки: robots.txt 16 вересня відкрився на всіх 22 магазинах. У 21 із них є рядок Content-signal: search=yes, ai-input=yes, ai-train=no. У магазинах Prom і OpenCart із вибірки такого рядка немає ні в одному.

Чого ми не знаємо. Чи отримують цю сторінку пошукові роботи й AI-асистенти, ми не перевіряли. Для цього довелося б підробити User-Agent робота, а цього ми не робимо. Чесна перевірка є лише у власника магазину, у Search Console (про неї нижче). Не знаємо ми й того, чи ввімкнена ця перевірка постійно: у нас є тільки два дні спостереження. Тому ми не стверджуємо, що Google бачить порожню сторінку. Ми стверджуємо лише одне: зовнішні аудити, сервіси моніторингу цін і будь-який інший клієнт без JavaScript у ці два дні отримували скрипт замість магазину.

Що вдалося виміряти

Показник (15.09.2026) Prom, 9 OpenCart, 12 Хорошоп, 22
Медіана першої відповіді, GET 713,8 мс 326,0 мс не виміряно
Найшвидший / найповільніший 569,6 / 864,3 мс 97,0 / 1 304,6 мс не виміряно
Canonical на головній 9 з 9 2 з 12 не виміряно
hreflang на головній 9 з 9 10 з 12 не виміряно
Product на товарній сторінці 7 з 8 5 з 9 не виміряно
robots.txt 9 з 9 12 з 12 22 з 22
Медіана адрес у карті сайту 1 604 (на 8) 9 298 (на 11) 1 472 (на 22)
PHP без підтримки в заголовках не видно 1 з 12 не видно

Prom у цій вибірці повільніший за OpenCart приблизно вдвічі за медіаною, зате рівний. Жоден не перейшов секунду за медіаною, але у трьох із дев'яти медіана вища за 800 мс. Canonical і hreflang є всюди, розмітка товару — на семи з восьми відкритих товарних сторінок. Сервер на орендованій платформі налаштовує платформа, а не власник магазину. Ще одна деталь: на всіх 9 головних стоїть той самий ідентифікатор Google Analytics 4, окремо від власного ідентифікатора магазину. Отже, цей тег додає платформа, а не власник. Які дані він збирає, ми не досліджували.

OpenCart дає найбільший розкид в обидва боки: від 97 мс до 1,3 с, canonical лише на двох головних із дванадцяти. На одному магазині карта сайту відповідає кодом 200 з порожнім тілом, і так було 15 і 16 вересня. Ще один показує в заголовках PHP 7.3. Вісім із дванадцяти магазинів OpenCart узяті з нашого серпневого виміру, тож розклад по нішах ми тут не повторюємо, він є в технічній базі ринку по 39 магазинах.

Хорошоп виміряний лише частково. robots.txt і карта сайту є на всіх 22, і карта оголошена в robots.txt у кожного. Усе, що читається з HTML, для 21 магазину ззовні недоступне.

І ще одне спостереження: медіанний каталог в OpenCart у цій вибірці в кілька разів більший, ніж у Prom, а сервер відповідав швидше. Тож розміром каталогу різницю в часі тут не пояснити.

Як перевірити свій магазин за 10 хвилин

1. Чи не міряє ваш інструмент відмову. Порівняйте код відповіді на HEAD і на GET:

curl -s -I -o /dev/null -w 'HEAD: %{http_code} %{time_starttransfer} с\n' https://ваш-магазин.ua/
curl -s -o /dev/null -w 'GET:  %{http_code} %{time_starttransfer} с\n' https://ваш-магазин.ua/

Якщо HEAD дає 405 або 403, а GET дає 200, то сервіси, які міряють через HEAD, показують вам неправдивий час. Для GET зніміть п'ять замірів і беріть медіану. Що означає сама цифра, ми розбирали в статті про швидкість сайту.

2. Що бачить клієнт без браузера.

curl -sL https://ваш-магазин.ua/ -o home.html
wc -c home.html
grep -c '<title' home.html

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

3. Що написано в robots.txt.

curl -s https://ваш-магазин.ua/robots.txt | head -20

Подивіться, чи є там Content-signal і які сигнали він оголошує.

4. Що отримує Google. У Search Console відкрийте перевірку URL, запустіть перевірку опублікованої адреси й перегляньте HTML, який отримав робот. Якщо там магазин, пошук бачить магазин, хоч би що показував curl. Цей крок може зробити тільки власник ресурсу, і це найпряміший спосіб дізнатися відповідь.

Що ми змінили і чого це не виправило

У зведенні вимірів ми замінили час першої відповіді для Prom і OpenCart на заміри через GET. Цифри скрипта для Prom позначили як недійсні. Для 21 магазину Хорошопу позначили недійсними всі поля, які читаються з HTML: час відповіді, canonical, лічильники, hreflang і розмітку. Правило, яке ми застосували: відповідь на кілька сотень байтів без заголовка сторінки — це «не виміряно», а не нуль.

Головної прогалини це не закрило. Порівняти HTML Хорошопу з двома іншими платформами ззовні ми досі не можемо, а обходити перевірку не будемо. Вибірки малі й не випадкові. Час відповіді знятий з однієї точки мережі за один вечір і тільки для головної, тобто це час сервера, а не швидкість, яку відчуває покупець.

Якщо ви думаєте про переїзд, перший крок — ваші власні заміри, а не наша таблиця. Для магазинів на Хорошопі ми описали, з чого починаємо, на сторінці про переїзд із Хорошопу. Повну перевірку всіх сторінок, а не лише головної, ми робимо в технічному аудиті.

Теги

E-commerceSEOPerformance

Вам сподобалась стаття?

Ваша думка допомагає нам створювати кращий контент

Поділіться з друзями

Знайшли щось корисне?

Допоможіть іншим дізнатись про це — поділіться статтею в соціальних мережах

Дякуємо, що допомагаєте нам рости

Засновник LIONEX

Владислав Чистяков

Пише про те, що робить руками: інтернет-магазини на OpenCart, застосунки на Next.js, інтеграції та швидкість сайтів. У статтях — заміри й перевірки, які читач може повторити на своєму проєкті, а не загальні поради. Комерційна розробка з 2015 року.

Питання

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

Відповіді на популярні питання по темі

Яка платформа виявилась найшвидшою у вашому вимірі?

Порівняти вдалося лише дві. За медіаною першої відповіді сервера на GET-запит головної OpenCart дав 326,0 мс на 12 магазинах, Prom — 713,8 мс на 9 магазинах, вимір 15 вересня 2026 року. Для Хорошопу цю цифру ззовні зняти не вдалося. Це час сервера на невипадковій вибірці з однієї точки мережі, а не швидкість, яку відчуває покупець.

Чому зовнішні інструменти показують мій магазин на Prom швидшим, ніж він є?

Якщо інструмент міряє час запитом HEAD, він може отримати швидку відмову з кодом 405 замість сторінки. Так було з нашим власним скриптом: для Prom він видав 138,7 мс, а звичайний GET дав 713,8 мс. Перевірте, який код відповіді стоїть поруч із цифрою часу.

Що бачить аудит або бот без браузера на магазині Хорошопу?

15 і 16 вересня 2026 року на 21 із 22 перевірених магазинів запит без браузера отримував крихітну сторінку зі скриптом перевірки замість магазину. Один із цих магазинів, відкритий 16 вересня у браузері, завантажився звичайно. Тому canonical, лічильники й розмітку ми для цих магазинів не виміряли і позначили як недійсні.

Чи бачить Google сторінку перевірки замість мого магазину на Хорошопі?

Ми цього не знаємо і не стверджуємо. Щоб перевірити ззовні, довелося б підробляти User-Agent пошукового робота, а цього ми не робимо. Власник магазину може перевірити це сам: у Search Console запустити перевірку опублікованої адреси й подивитися HTML, який отримав робот.

Як за кілька хвилин перевірити, що бачить зовнішній аудит на моєму сайті?

Порівняйте код і час відповіді на HEAD і на GET. Потім завантажте головну через curl і подивіться розмір файлу та чи є в ньому тег title: кілька сотень байтів без title означають сторінку перевірки чи захисту. Далі перегляньте robots.txt, а в Search Console — HTML, який отримав Google.

Отримуйте найкращі статті на пошту

Підпишіться на нашу розсилку та отримуйте корисні поради, інсайти та новини про веб-розробку, маркетинг та бізнес.

Ми поважаємо вашу приватність. Відписатись можна в будь-який момент.

Далі в блозі

Схожі статті

Одна літера в адресі: 76 перейменованих сторінок і шість днів 404Технічне SEO

Одна літера в адресі: 76 перейменованих сторінок і шість днів 404

19 серпня 2026 року ми перегенерували 76 російських адрес, бо в межах одного шляху співіснували дві транслітерації, — і майже шість днів старі адреси відповідали 404, бо механізм переїзду шукав сторінку лише за українським slug'ом. Через п'ять тижнів 12 старих адрес досі у видачі, а на юридичній сторінці сума за місяць і тижневі дані кажуть різне. Розповідаємо, чого з цього не випливає і як перевірити свій сайт.

Читати далі
Healthcheck дав 60 % запитів застосунку: що побачили в першу добу метрикВеб-розробка

Healthcheck дав 60 % запитів застосунку: що побачили в першу добу метрик

21 вересня 2026 року, у першу добу обліку запитів за маршрутами, службовий /api/health отримав 13 666 запитів — 60 % трафіку застосунку, і кожен ішов у спільну базу. Розповідаємо, які два налаштування це прибрали, яку ціну маємо за них і як перевірити свій healthcheck.

Читати далі
154 помилки типів, які викидала збірка: що в них знайшлосьВеб-розробка

154 помилки типів, які викидала збірка: що в них знайшлось

21 вересня 2026 року перевірка типів на нашому сайті показала 154 помилки, хоча збірка щоразу була зеленою: результат перевірки просто викидався. Усередині знайшлись нулі в статистиці посилань і в експорті аналітики, сортування, що не сортувало, і тести, які не запускались. Розповідаємо, як розбирали, що змінили і як перевірити свій проєкт.

Читати далі