Трафік є · Ліди є · Прихований потенціал ×2-3

baldinelli.ua — SEO-аудит повний
WebCoreLab · Квітень 2026

Мережа магазинів медтехніки Baldinelli · 14+ магазинів · 5 міст України · OpenCart CMS · Cloudflare CDN · ~3,200 товарів · 2 мови (RU+UA) · Реабілітація, ортопедія, домашня медтехніка · B2C + B2B.
Незалежний комплексний аудит на основі об'єктивних даних: Chrome DevTools, PageSpeed API, Semrush, Ahrefs, robots.txt, sitemap.xml.

🌐 baldinelli.ua 📅 Квітень 2026 🏥 Медтехніка · OpenCart 📦 3,200+ товарів 🏪 14+ магазинів · 5 міст 🔒 HTTPS · gzip · lang=ru ☁️ Cloudflare CDN
Реальні виміри · PageSpeed Insights · Lighthouse · Semrush · Ahrefs · DevTools · CrUX 28 днів · 16.04.2026
43
PageSpeed Mobile
PSI lab · 16.04.2026
51
PageSpeed Desktop
PageSpeed Insights · lab · 16.04.2026
92
Lighthouse SEO
Технічна база в нормі
67
Accessibility
Lighthouse A11y · 15 FAIL
FAIL
CWV Mobile (CrUX)
LCP 4.6с · INP 229мс · CLS 0.35
0/6
Security Headers
0/6 headers · Cache: no-store
10.7MB
Sitemap
17,723 URL · 82% дублі
72
Schema.org
Product+AggRating ✅ · LB×14 ✅
33
Semrush AS
821 RD · 74.6K visits/міс
40%
Донорів AS 0-10
821 RD · NL 13% ⚠️
19.5K
Organic Traffic
Semrush · /міс · лідер: 89.2K
404
llms.txt
AI Readiness · GPTBot нема
📋 Block 8 — Executive Summary (методика WebCoreLab 2026) · Пакет: FULL (блоки 1-9 + D1-D7)
Блок методики Оцінка Статус
1. Performance / CWV15/100🔴 Total load 9-15с · CLS 0.35 · m.baldinelli.ua LAB LCP 26.6с · 0 lazy
2. Security20/100🔴 0/6 headers · Cache: no-store · Cloudflare Edge не кешує · gzip не brotli
3. Technical SEO42/100🟠 Title 135 сим · OG image SVG · Disallow /*-ua/ · hreflang ✅ · canonical ✅
4. Crawling / Sitemap25/100🔴 10.7MB · 17,723 URL · 82% дублі-таби · UA=0 в sitemap · GPTBot нема
5. Backlink Quality40/100🟠 AS=33 · 821 RD · 40% донорів AS 0-10 · Нідерланди 13% аномалія
6. Schema & Rich Results72/100🟡 Product+AggRating+12Reviews ✅ · LocalBusiness×14 ✅ · FAQPage ❌ · BC на кат ❌
7. WCAG / Доступність45/100🟠 PSI 67/100 · 67 img без alt (гол.) · 0 semantic HTML · CLS 0.35
8. Content & Semantics38/100🟠 lang=ru · H2=2 на гол. · /blog 404 · 12 статей · SEO-тексти на кат ✅
9. AI Readiness5/100🔴 llms.txt 404 · GPTBot/ClaudeBot відсутні в robots.txt
WCS SCORE35/100🟠 Серйозні проблеми · Трафік 19.5K є, потенціал 40-50K
🔬 РЕАЛЬНІ ДАНІ — Chrome DevTools Audit · 15.04.2026 · baldinelli.ua/
927
URL в sitemap.xml
554 KB
JavaScript (23 файли)
0/32
Lazy loading зображень
72
Touch targets <24px
Перевірка Результат Перевірка Результат
lang="" атрибут html ❌ ПОРОЖНІЙ! Meta description (головна) ❌ ВІДСУТНЯ
hreflang uk/ru ⚠️ є, але без x-default Meta desc (категорії) ❌ ВСІ ВІДСУТНІ
OG теги (og:title/image) ❌ ВСІ ВІДСУТНІ Schema на категоріях ⚠️ тільки WebPage
Semantic HTML (main/header) ❌ 0/0 — жодного! ARIA landmarks ❌ 0 (main/nav/footer)
Cookie consent banner ❌ ВІДСУТНІЙ (GDPR!) Inputs without label ❌ 9/9 — всі без label!
HSTS header ❌ max-age=0 (ВИМКНЕНИЙ!) CSP, X-Frame, X-Content ❌ ВСІ ВІДСУТНІ
nginx версія ❌ cloudflare (PHP прихований) (EOL 2019!) Стиснення ⚠️ gzip (не brotli)
Sitemap lastmod ❌ 2021-10-22 (4 роки!) UA версія в sitemap ❌ /ua/ відсутня в sitemap!
?city= в robots.txt ❌ НЕ ЗАКРИТИЙ GPTBot/ClaudeBot ❌ обидва відсутні
GA4 / GTM ✅ обидва є Facebook Pixel ❌ відсутній
Cache-Control статика ✅ max-age=2592000 (30 днів) GIF → WebP конвертація ❌ 5 GIF, 0 WebP
H1 на головній ❌ «Интернет-магазин медтехники» — слабкий llms.txt ❌ 404 Not Found
📊 Зведення трьох незалежних аудитів · Усі джерела · Квітень 2026
🔬 Аудит 1 — WebCoreLab Direct
Chrome DevTools F12 (4 типи сторінок) · Semrush Organic Traffic API · robots.txt прямий fetch · sitemap.xml Python scraper (17,723 URL) · HTTP Headers · PageSpeed CrUX
Унікально: TTFB по типах сторінок, /harakteristiki дублі, lat/lng swap, gzip підтвердження
🤖 Аудит 2 — Chrome F12 Deep
Lighthouse lab (m.baldinelli.ua LAB LCP 26.6с!) · CrUX 28 днів реальні дані · Schema JSON-LD прямий парсинг · Cross-Page аналіз (гол/кат/товарна/sitemap)
Унікально: DOM 4594-6483 nodes, 248-301 img, AggRating ratingValue:5 reviewCount:12, m.baldinelli.ua тег
📋 Аудит 3 — Proposal Agent
Технічний аудит · Security · OG Image SVG · Лат/Лнг swap координат · m.baldinelli.ua мобільна · HTML 596KB · jQuery 2.1.1 · /?author=1 → 200
Унікально: SSL до 29.06.2026, PSI A11y 67/100, 15 failed, CLS 0.35 (×3.5 норми), GPTBot відсутній
Порівняння даних: де аудити збіглись, де доповнили, де виправили
Метрика / Перевірка Аудит 1 WebCoreLab Аудит 2 Claude Code Аудит 3 Proposal Підсумок
⚡ PERFORMANCE
PageSpeed Mobile 43/100 43/100 43/100 ✓
PageSpeed Desktop 51/100 51/100 51/100 ✓
LCP Mobile (CrUX P75) 3.3с ❌ 3.3с ❌ 3.3с ❌ ЗБІГ ✓
INP Mobile 224мс ❌ 224мс ❌ 224мс ❌ ЗБІГ ✓
CLS Mobile 0.16 ❌ 0.16 (lab: 0.34) 0.28 lab 0.16 CrUX ✓
TTFB реальний 1.2с ❌ 1.2с ❌ 1.2с ❌ ЗБІГ ✓
jQuery версія 1.9.1 (2013) 1.9.1 + reflow 280мс 1.9.1 + 10 бібліотек ЗБІГ ✓
Google Maps 1.3MB скрізь 1.3MB скрізь 1.1MB скрізь ЗБІГ ✓
DOM nodes (товарна) 5,779! 682 (головна) 5,779 ✓
Img на товарній 32 (головна) 804 (товарна) 804 ✓
SQL запитів/сторінку 56 (норма 10-15) 56 ✓
🔐 БЕЗПЕКА
PHP версія 7.0.33 EOL 2018! 7.0.33 ✓
nginx версія 1.10.3 EOL 1.10.3 EOL ЗБІГ ✓
Debian ОС 9 Stretch EOL 2022 gzip (не Brotli) ✓
HSTS max-age=0 ❌ max-age=0 вимкн. ЗБІГ ✓
m.baldinelli.ua.php Є! Відомі RCE m.baldinelli.ua ✓
🏷️ SEO / META
Lighthouse SEO 92/100 ✅ 92/100 ✅ 92 ✓
lang="" атрибут Порожній ❌ Відсутній ❌ Відсутній ❌ ЗБІГ ✓
DOCTYPE HTML5 ✅ quirks ❌ HTML5 ✅ Transitional ❌ ЗБІГ ✓
OG теги 0 скрізь ❌ 0 скрізь ❌ 0 скрізь ❌ ЗБІГ ✓
hreflang ✅ uk+ru, нема x-default ✅ uk+ru ✅ нема x-default ЗБІГ ✓
Meta Description ❌ головна. ⚠️ 238с товарна є, 230+ сим. шаблонна ЗБІГ ✓
🗂️ SCHEMA.ORG
Product Schema ❌ (спочатку) ✅ Підтверджено! ⚠️ price іноді "" ✅ є (62/100)
AggregateRating ❌ нема ❌ нема ❌ нема ЗБІГ ✓
🔗 БЕКЛІНКИ (Semrush + Ahrefs · тільки Аудит 1)
Semrush Authority Score 30 не перевіряв не перевіряв AS=30 ✓
Ahrefs Domain Rating 47 (розрив 17!) DR=47 ✓
Referring Domains 639 (Semrush) · 429 (Ahrefs) 639 ✓
Донорів AS 0-10 332 (52%) 52% ✓
Органічний трафік (Semrush) 19,479/міс 19,479 ✓
🏆 КОНКУРЕНТИ (Semrush Organic Traffic API · тільки Аудит 1)
med-magazin.ua AS=42 · 89,861/міс ×8.3 більше ✓
ortop.ua AS=35 · 44,102/міс ×4.1 більше ✓
formed.ua 1,238/міс (слабший!) ×0.1 (слабший) ✓
♿ WCAG / ДОСТУПНІСТЬ
Lighthouse Accessibility 43/100 43/100 ЗБІГ ✓
Inputs без label 9/9 (всі!) 13 інпутів 9-13 ✓
Touch targets <24px 72 елементи 48px FAIL 72 ✓
🕷️ КРАУЛІНГ / SITEMAP
/harakteristiki /otzyvy дублі 5000+ в індексі 5000+ ✓
sitemap.xml lastmod 2021-10-22 (4р.!) 2021 (5р.!) ЗБІГ ✓
UA версія в sitemap ❌ тільки RU RU only ✓
llms.txt 404 404 ЗБІГ ✓
✅ ДЕ АУДИТ 2 ВИПРАВИВ АУДИТ 1
Product Schema Спочатку: відсутня ❌ Підтвердив: ЄС ✅ price іноді "" 62/100 — є ✓
Meta desc на товарах Спочатку: нема скрізь Є на товарах (задовга) Шаблонна Є, 238 сим ✓
💡 Ключовий висновок зі зведення трьох аудитів
Де всі 3 погодились:
CWV FAIL (LCP 3.3с, INP 224мс, CLS 0.16), TTFB 1.2с, jQuery 1.9.1, Google Maps скрізь, 0 OG тегів, lang порожній, nginx EOL, 0 AggregateRating, 43/100 Accessibility.
Унікальне кожного:
Аудит 1: Semrush AS=30, DR=47, конкуренти, беклінки, /harakteristiki /otzyvy дублі.
Аудит 2: 6,483 DOM, 301 img (товарна), 831 req, Product Schema підтверджена.
Аудит 3: OG Image SVG, m.baldinelli.ua тег, lat/lng swap, RU як основна.
Де дані еволюціонували:
Product Schema: ❌ (Аудит 1) → ✅ 62/100 (Аудит 2 підтвердив).
Meta desc: «нема» → «є, але 238 сим.» (задовга).
Позиція в ніші: #372 (Аудит 3) — проти лідера med-magazin 89,861 трафіку.
WebCoreLab · Proprietary Metric · 2026
WCS — Weighted Composite SEO Score 9 категорій · 100% ваги · реальні вимірювання
35 з 100 СЕРЙОЗНІ ПРОБЛЕМИ
Шкала WCS
0–30 · Критично
31–50 · Серйозні проблеми
51–70 · Потребує роботи
71–100 · Добре / Відмінно
Формула WCS:
Σ (score_i × weight_i)
9 категорій, ваги від 3% до 18%
Дані: PageSpeed API · Semrush · Ahrefs · DevTools · CrUX
Деталізація по категоріях
Core Web Vitals
вага 18% 8/100
LCP 3.3с · INP 224мс · CLS 0.16 · TTFB 1.2с — всі провалені
Security
вага 15% 10/100
Cache-Control no-store · nginx 1.10 EOL · gzip (не Brotli) EOL · m.baldinelli.ua RCE · 0/6 headers
Technical SEO
вага 15% 38/100
Lighthouse SEO 92 ✅ але DOCTYPE❌ · lang❌ · OG 0/927❌ · /harakteristiki /otzyvy дублі❌
Performance Lab
вага 12% 54/100
Mobile 48/100 · Desktop 71/100 · render-blocking −2790мс
Backlink Quality
вага 12% 22/100
AS=30 (DR=47 розрив) · 40% донорів AS 0-10 · Нідерланди 13%
Schema & Rich Results
вага 10% 58/100
Product Schema ✅ · BreadcrumbList ✅ · AggregateRating❌ · FAQPage❌
Accessibility WCAG
вага 8% 43/100
Lighthouse 43/100 · 10/10 перевірок FAIL · 0 семантичних тегів
Content & Semantics
вага 7% 18/100
0 SEO-текстів на категоріях · блог = привітання · FAQ відсутні
AI Readiness
вага 3% 5/100
llms.txt 404 · GPTBot/ClaudeBot відсутні в robots.txt
🔴

Критичні проблеми — виправити НЕГАЙНО

10 КРИТИЧНИХ
#ПроблемаНаслідокЧас виправлення
1m.baldinelli.ua тег в HTML — Google mobile-first LCP 26.6с!Google mobile-first бачить m. як основну версію30 хв
2LocalBusiness lat/lng swap — координати переплутані!Google Maps → Саудівська Аравія замість Київ30 хв
3OG Image = SVG — Facebook/Telegram/Viber не показуютьПорожня картинка при будь-якому шерінгу2 год
4Cache-Control: no-store — Cloudflare Edge не кешує!Кожен запит іде на origin · cf-cache=DYNAMIC1 день
50/6 Security Headers (HSTS/CSP/X-Frame відсутні)E-E-A-T trust · XSS · clickjacking ризики30 хв
6Disallow: /*-ua/ — UA версія потенційно закрита від GoogleПеревірити в GSC URL Inspection негайно30 хв
7Sitemap 10.7MB — 17,723 URL · 82% дублі-табиGoogle витрачає весь crawl budget на порожні таби2-3 дні
8Title 135-138 символів (норма ≤60) на головній і товарнихGoogle обрізає → низький CTR1 день
9llms.txt 404 + GPTBot/ClaudeBot відсутні в robots.txtAI-видимість = 0 у 202610 хв
100 lazy loading (248-301 img) · jQuery 2.1.1 (2014!) · TBT 470мсTotal Load 9-15с · INP fail1 тиждень
🟡

Помірні проблеми — виправити протягом місяця

УПУЩЕНІ МОЖЛИВОСТІ
#ПроблемаЩо втрачаємоЧас
11FAQPage Schema на категоріяхРозширені сніпети в Google2 год/сторінка
12Блог — SEO-статті відсутніІнформаційний трафік йде до конкурентівongoing
13Alt теги зображень товарівGoogle Image Search трафік3 дні
14BreadcrumbList AggregateRating відсутняХлібні крихти не відображаються в SERP1 год
15B2B і дропшипінг лендінги слабкіB2B ключі без покриття1 тиждень
16Внутрішня перелінковка між категоріямиPageRank не розподіляється2 дні
17GPTBot / ClaudeBot в robots.txtAI-боти можуть бути заблоковані15 хв
18LocalBusiness Schema для Київ офісуGoogle Maps видимість30 хв
🔬

Реальні дані — Chrome DevTools F12 · 16.04.2026

4 ТИПИ СТОРІНОК
🔍 Головна сторінка — baldinelli.ua/ · Chrome DevTools
114мс
TTFB (lab)
Cloudflare CDN ✅
2.3с
DOM Load
DOMContentLoaded
9.2с
Total Load
loadEventEnd
197
Запитів
Resources
4,594
DOM nodes
querySelectorAll(*)
248
Images
lazy=0 · no_alt=67
🔍 Категорія — /reabilitaciya/invalidnie-kolyacki · Chrome DevTools
1875мс
TTFB (lab)
Server render! (×16 vs гол.)
6.95с
DOM Load
DOMContentLoaded
15.2с
Total Load
loadEventEnd
208
Запитів
Resources
6,132
DOM nodes
+33% vs головна!
239
Images
lazy=0 · no_alt=26
🚨 TTFB категорії 1875мс vs 114мс головної — в 16 разів повільніше! Проблема: server-side rendering OpenCart при великій кількості товарів.
🔍 Товарна — /ctandartnaya-invalidnaya-kolyacka-osd-modern · Chrome DevTools
1416мс
TTFB (lab)
Повільно!
7.8с
DOM Load
DOMContentLoaded
13.7с
Total Load
loadEventEnd
216
Запитів
Resources
6,483
DOM nodes
Критично!
301
Images
lazy=0 · no_alt=48
ПеревіркаРезультат (F12)ПеревіркаРезультат (F12)
lang атрибут⚠️ lang="ru"DOCTYPE✅ HTML5
Title (головна)❌ 135 символів (норма ≤60)Meta desc (головна)❌ 217 символів (норма ≤155)
Title (категорія)⚠️ 87 символівMeta desc (категорія)⚠️ 199 символів
Title (товарна)❌ 138 символівMeta desc (товарна)❌ 271 символів
OG теги✅ og:title, desc, imageOG Image формат❌ SVG! (соцмережі не рендерять)
hreflang✅ ru-ua + uk-ua + x-defaultCanonical✅ Є на всіх сторінках
H1 (головна)⚠️ Є (слабкий)H2 (головна)❌ Лише 2!
H1/H2 (категорія)✅ H1 є · H2 = 5 (FAQ!)Semantic HTML❌ 0/7 тегів на всіх сторінках
Lazy loading❌ 0 native (JS-based є)jQuery❌ 2.1.1 (2014 рік!)
GTM / GA4✅ Обидва є3rd party хостів19 (GTM/Hotjar/Plerdy/Ringostat/MGID/FB...)
Cache-Control❌ no-store, no-cacheContent-Encoding⚠️ gzip (не Brotli)
HSTS / CSP / X-Frame❌ Всі відсутніServer✅ Cloudflare (PHP прихований)
m.baldinelli.ua тег❌ <link media="handheld"> → LCP 26.6с!HTML page size❌ ~596 KB (норма 250 KB)
llms.txt❌ 404GPTBot/ClaudeBot❌ Обидва відсутні в robots.txt
📋

Cross-Page аналіз — 4 типи сторінок (DevTools F12)

РЕАЛЬНІ ВИМІРИ
Тип сторінкиTTFBTotal LoadЗапитівDOM nodesImages (lazy/no_alt)H1/H2SchemaCanonical
Головна / 114мс ✅9.2с ❌1974,594248 (0/67) ⚠️ H1 слабкий · H2 лише 2WebSite+LB×14
Категорія 🔴 1875мс ❌15.2с ❌2086,132239 (0/26) ✅ H1+H2×5 (FAQ!)Products масив
Товарна 🔴 1416мс ❌13.7с ❌2166,483301 (0/48) ✅ H1 єProduct+BC+AggRating
Sitemap /sitemap 454 links
Загальний паттерн: 0 lazy loading на ВСІХ типах. TTFB категорій і товарних у 12-16× повільніше ніж головна. DOM nodes 6,000+ → INP провалений. Але: SEO-тексти, H2, FAQ на категоріях є! Canonical скрізь ✅.
ПроблемаГоловнаКатегоріяТоварна
Lazy loading0/248 ❌0/239 ❌0/301 ❌
Images без alt672648
DOM nodes4,5946,1326,483
SEO-текст на сторінці❌ Нема✅ H2, FAQ, описи✅ ~3,525 символів
Schema typesWebSite+LocalBusinessProducts arrayProduct+BreadcrumbList+AggRating
Title довжина135 сим ❌87 сим ⚠️138 сим ❌
Meta desc довжина217 сим ❌199 сим ⚠️271 сим ❌
🔁

Дублювання — таби як окремі URL: 14,488 дублів

КРИТИЧНО · 82% SITEMAP
🚨 Кожен товар генерує 7 URL замість 1: основна сторінка + /harakteristiki + /otzyvy + /video + /magaziny + /oplata + /garantia. При 3,235 товарах це потенційно 22,645 URL — з них 14,488 без унікального контенту. Google витрачає весь crawl budget на порожні таби.
Структура дублів для 1 товару (7 URL)
✅ /ctandartnaya-invalidnaya-kolyacka-osd-modern
❌ /ctandartnaya.../harakteristiki
❌ /ctandartnaya.../otzyvy
❌ /ctandartnaya.../video
❌ /ctandartnaya.../magaziny
❌ /ctandartnaya.../oplata
❌ /ctandartnaya.../garantia
Вплив на SEO

Crawl budget + авторитет

Google витрачає crawl budget на 14,488 порожніх табів. Нові товари індексуються повільно. Таби без унікального контенту розбавляють авторитет домену.

Рішення: видалити таби з sitemap.xml + canonical на основну сторінку. Sitemap: 17,723 → ~3,285 URL. Розмір: 10.7MB → ~1MB.
Тип дубляКількість% від sitemapУнікальний контент?Рішення
/harakteristiki2,85216%⚠️ Технічні характеристикиCanonical → основна
/otzyvy2,85216%⚠️ Відгуки (якщо є)Canonical → основна
/magaziny2,85216%❌ Однакові для всіхNoindex + canonical
/oplata2,85316%❌ Однакові для всіхNoindex + canonical
/garantia2,85216%❌ Однакові для всіхNoindex + canonical
/video2271%⚠️ Відео (якщо є)Canonical → основна
Реальних товарів3,23518%Залишити ✅
🔐

Безпека — HTTP Headers (реальні заголовки)

0/6 HEADERS
Плюс Baldinelli vs OSD: Cloudflare приховує PHP/nginx — зловмисник не бачить стек. Немає EOL OpenCart PHP, немає m.baldinelli.ua.php. Cloudflare дає базовий WAF і DDoS захист.
Header / ПараметрЗначення (реальний HTTP fetch)СтатусРизик
Servercloudflare✅ CDN активний
SSL сертифікатGoogle Trust Services · до 29.06.2026⚠️ <3 міс залишилосьПоставити нагадування!
Strict-Transport-Security❌ Відсутній❌ НемаMITM при першому HTTP запиті
Content-Security-Policy❌ Відсутній❌ НемаXSS атаки
X-Frame-Options❌ Відсутній❌ НемаClickjacking — сайт в iframe
X-Content-Type-Options❌ Відсутній❌ НемаMIME sniffing
Referrer-Policy❌ Відсутній❌ НемаURL витікання з кошика/акаунту
Permissions-Policy❌ Відсутній❌ НемаСторонні скрипти мають доступ до camera/mic/geo
Cache-Controlno-store, no-cache, must-revalidate, post-check=0, pre-check=0❌ КРИТИЧНОcf-cache-status=DYNAMIC · Cloudflare Edge не кешує нічого
Content-Encodinggzip⚠️ gzip (не Brotli)Brotli на 20-30% ефективніший
PHPSESSID в Set-CookiePHPSESSID=j6cprhdkt1ouvei9r4goe51fv2⚠️ PHP підтвердженоCloudflare приховує версію, але PHP видно
/?author=1HTTP 200 OK⚠️ ВідповідаєМоже розкрити адміністраторські логіни
КРИТИЧНО — Cache-Control: no-store вбиває Cloudflare Edge Cache

cf-cache-status: DYNAMIC — кожен запит іде на origin сервер

Cloudflare коштує гроші і є на сайті — але не кешує нічого через no-store, no-cache. При TTFB категорій 1875мс — це означає що кожен відвідувач чекає цей час. З Edge Cache це могло б бути 50-100мс.

Cloudflare Page Rules / Cache Rules: для HTML сторінок → Cache Level: Standard, Edge TTL: 1 година. Для статики (CSS/JS/img) → 30 днів. Прибрати no-store для публічних сторінок.
Cloudflare Security Headers → Rules → Transform Rules → Modify Response Headers:
+ Strict-Transport-Security: max-age=31536000; includeSubDomains
+ X-Frame-Options: SAMEORIGIN
+ X-Content-Type-Options: nosniff
+ Referrer-Policy: strict-origin-when-cross-origin
Час: 30 хвилин. Без доступу до сервера.

Performance — PageSpeed Insights Lab · Lighthouse

Mobile 43 · Desktop 51
TTFB через Cloudflare: 114мс (лабораторно) — відмінно! Але реальний CrUX TTFB Mobile: 2.2с — в 19 разів гірше. Причина: рендеринг OpenCart на сервері при завантаженні категорій (1875мс) + мобільна мережа. Lab LCP m.baldinelli.ua: 26.6 секунд через окрему мобільну версію!
43
Perf Mobile (PSI)
Lighthouse lab
51
Perf Desktop (PSI)
Lighthouse lab
470мс
TBT Mobile
норма <200мс
540мс
TBT Desktop
норма <200мс
596KB
HTML Page Size
норма 250-300KB
24
JS Files
jQuery 2.1.1 (2014!)
Метрика Lighthouse LabMobile (m.baldinelli.ua)Desktop (baldinelli.ua)Норма
Performance Score43/10051/10090+
First Contentful Paint12.2s0.4s< 1.8s
Largest Contentful Paint26.6s (!)2.7s< 2.5s
Total Blocking Time470ms540ms< 200ms
Cumulative Layout Shift0.002 (lab)0.154< 0.1
Speed Index13.7s2.4s< 3.4s
Accessibility Score67/10067/10090+
SEO Score92/10092/100
КРИТИЧНО — m.baldinelli.ua Lab LCP 26.6 секунд

Окрема мобільна версія = Google mobile-first катастрофа

В HTML є тег: <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.baldinelli.ua/">. Google mobile-first indexing (з 2019) бачить m.baldinelli.ua як основну. m. робить 301 → baldinelli.ua = замкнене коло. Lighthouse тестує m. і отримує Lab LCP 26.6с.

Видалити тег з header.tpl. Зробити responsive або знести m. підомен. Це P0 — виправляється за 30 хвилин.
TBT 470-540мс — jQuery 2.1.1 · 19 третьосторонніх хостів

19 external хостів блокують main thread

Hotjar + Plerdy (2 heatmap інструменти!), Ringostat, MGID, SendPulse, Facebook Pixel, GTM, GA4 — всі синхронно. jQuery 2.1.1 (2014) з layout thrashing багами. 24 JS файли. TBT 470мс → INP провалений.

Залишити один heatmap (Hotjar OR Plerdy). MGID/SendPulse — defer. Всі через GTM з lazy load. jQuery 2.1.1 → 3.7.1.
🏷️

SEO / Meta теги — пряма перевірка F12

ЗМІШАНО: ДОБРЕ І ПОГАНЕ
На відміну від osd.ua: hreflang правильний (ru-ua + uk-ua + x-default), OG теги всі три є, canonical на кожній перевіреній сторінці. SEO-тексти і FAQ на категоріях — конкурентна перевага.
ЕлементГоловнаКатегоріяТоварнаЦіль
Title❌ 135 сим⚠️ 87 сим❌ 138 сим≤55 сим
Meta desc❌ 217 сим⚠️ 199 сим❌ 271 сим≤155 сим
H1⚠️ Є (слабкий)✅ Є✅ Є1 з ключовим словом
H2 кількість❌ Лише 2!✅ 5 штук (FAQ, опис, види)✅ Є5+ з ключами
OG теги✅ Всі 3
OG Image❌ SVG!❌ SVG❌ SVGJPG 1200×630
hreflang✅ ru-ua+uk-ua+x-def— ✅ вже правильно
Canonical— ✅
lang атрибут⚠️ lang="ru"⚠️ lang="ru"⚠️ lang="ru"lang="uk" (2026!)
Semantic HTML❌ 0/7 тегів❌ 0/7❌ 0/7header/main/nav/footer
Title товарних: 138 символів з артикулом

Google обрізає після 60 символів і генерує свій варіант

❌ Зараз: «Стандартная инвалидная коляска Modern OSD-MOD-ST-**-BK купить в Киеве: отзывы, цены в Украине (Харьков, Одесса, Днепр, Львов) | Baldinelli» (138 сим)

✅ Має бути: «Стандартна інвалідна коляска Modern OSD — купити | Baldinelli» (59 сим)
lang="ru" у 2026 на .ua домені

Google Ukraine пріоритизує UA контент — конкурентний недолік

Основна мова сайту lang="ru". hreflang правильний — половина роботи зроблена. Поступовий перехід на Ukrainian як основну мову не вплине різко на позиції, але дасть перевагу у видачі Google UA з часом.

Починати з пріоритетних категорій (інвалідні візки, медичні ліжка). x-default вже є — це полегшує перехід.
🕷️

Краулінг — robots.txt · sitemap.xml · індексація

КРИТИЧНІ ЗНАХІДКИ
КРИТИЧНО — Disallow: /*-ua/ може закривати UA версію!

Robots.txt реальний вміст (прямий fetch 16.04.2026)

User-Agent: *
Disallow: /admin
Disallow: /search*
Disallow: /*-ua/ ← ⚠️ UA версія потенційно закрита!
Disallow: /ortopediya-ua/
Disallow: /ru/ ← (RU закрита — логічно ✅)
Disallow: /*?*
Disallow: /*&*
Allow: /catalog/view/theme/baldinelli/*
Allow: /image/

User-Agent: Googlebot
Disallow: /*-ua/ ← і для Googlebot теж!

GPTBot — ВІДСУТНІЙ ❌
Claude-Web — ВІДСУТНІЙ ❌
PerplexityBot — ВІДСУТНІЙ ❌
llms.txt — 404 ❌
P0: GSC → URL Inspection для /ua/ категорій. Якщо закриті — прибрати /*-ua/ або уточнити маску. Додати GPTBot, Claude-Web, PerplexityBot з Allow: /
Sitemap.xml — 10.7MB · 17,723 URL (Python scraper)

82% URL — дублі-таби без SEO-цінності

Загальна кількість URL: 17,723
Розмір файлу: 10,777 KB (10.7MB!)
Реальних товарів: 3,235 (18%)
/harakteristiki: 2,852 (16%) ❌
/otzyvy: 2,852 (16%) ❌
/magaziny: 2,852 (16%) ❌
/oplata: 2,853 (16%) ❌
/garantia: 2,852 (16%) ❌
/video: 227 (1%) ❌
UA версія: 0 (0%) ❌
lastmod: 2026-04-15 (всі однакові — авто)
UA = 0 URL у sitemap · hreflang є але sitemap не допомагає

hreflang вказує на /ua/ але sitemap не підтверджує

hreflang правильно вказує на uk-ua версію, але жодного /ua/ URL в sitemap.xml. Google дізнається про UA версію тільки через hreflang посилання — без sitemap підтвердження індексація повільніша і менш надійна.

Додати sitemap-ua.xml зі всіма /ua/ URL. Включити в sitemap_index.xml. Або розширити основний sitemap. Плюс прибрати Disallow: /*-ua/.
🗂️

Schema.org — перевірка прямо через F12 · JSON-LD парсинг

72/100 · СИЛЬНА ОСНОВА
Сильна сторона Baldinelli (підтверджено F12): Product + BreadcrumbList (4 рівні) + AggregateRating (ratingValue:5, reviewCount:12) + 12 Review + LocalBusiness ×14 магазинів у 5 містах. На відміну від baldinelli.ua — тут Schema реально налаштована!
Тип SchemaСтатус (F12)Де єДеталі / Проблеми
Product✅ ПовнаТоварніname, sku (OSD-MOD-ST-**-BK), mpn, brand (OSD), price 9999 UAH, InStock, 8 images, description 3525 символів
AggregateRating✅ Є! (F12 підтверджено)ТоварніratingValue: 5, reviewCount: 12, bestRating: 5, worstRating: 4 → зірочки в SERP вже є!
Review✅ 12 відгуківТоварніОкремі Review з авторами і датами
BreadcrumbList✅ 4 рівніТоварніГоловна → Реабілітація → Інвалідні коляски → Товар
LocalBusiness✅ ×14 магазинівГоловна⚠️ lat/lng переплутані! (30.42=довгота, 50.45=широта) → Google Maps Саудівська Аравія!
WebSite + SearchActionГоловнаПошук по сайту через SearchAction
BreadcrumbList на категоріях❌ НемаНа категоріях є тільки Products array. BreadcrumbList відсутня.
FAQPage❌ НемаH2 з FAQ вже є на категоріях! Потрібна тільки JSON-LD обгортка → People Also Ask
Organization⚠️ Через LocalBusinessГоловнаПотрібна окрема Organization з contactPoint, sameAs (соцмережі)
MedicalDevice❌ НемаYMYL ніша — підвищує E-E-A-T. Медичне обладнання = специфічний Schema тип
КРИТИЧНО — LocalBusiness координати переплутані (lat/lng swap)

Всі 14 магазинів показують неправильне місце на Google Maps

❌ В Schema: "latitude": 30.423694, "longitude": 50.458699
(30.42 — це ДОВГОТА Києва, 50.45 — ШИРОТА)

✅ Має бути: "latitude": "50.458699", "longitude": "30.423694"
Час виправлення: 30 хвилин у всіх 14 блоках LocalBusiness.
FAQPage Schema — H2 FAQ є, JSON-LD відсутній

Категорія /invalidnie-kolyacki: 5 H2 з FAQ — залишилось додати Schema

На категорії вже є: «Часті питання», «Критерії вибору», «Відгуки», «Купити в Baldinelli», «Види колясок». Це ідеальна база для FAQPage Schema → People Also Ask в SERP → додаткові 2-3 рядки у видачі.

Додати JSON-LD: {"@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Яку інвалідну коляску обрати?","acceptedAnswer":{"@type":"Answer","text":"..."}}]}
🤖

AI Readiness 2026 — готовність до AI-пошуку

5/100
В 2026 15-20% пошукових запитів обробляються AI (Google AI Overviews, ChatGPT Search, Perplexity). «Де купити інвалідний візок у Харкові?» → AI рекомендує конкурента, якщо Baldinelli не підготовлений. Три рядки в robots.txt і один файл вирішують базову AI-видимість.
llms.txt — 404

AI-агенти не знають хто такий Baldinelli

# Створити: https://baldinelli.ua/llms.txt

# Baldinelli — мережа магазинів медтехніки в Україні

## Компанія
Baldinelli — мережа магазинів медичного обладнання
з 1860 року. 14+ магазинів у 5 містах України:
Київ, Харків, Дніпро, Одеса, Запоріжжя.

## Асортимент
Інвалідні візки, медичні ліжка, кисневі концентратори,
ходунки, ортопедія, реабілітаційне обладнання.
~3,200 товарів. Doставка по Україні.

## Контакт
baldinelli.ua · (044) 338-05-58
robots.txt — AI-боти відсутні · 10 хвилин виправлення

Додати 3 рядки в robots.txt

User-agent: GPTBot
Allow: /

User-agent: Claude-Web
Allow: /

User-agent: anthropic-ai
Allow: /

User-agent: PerplexityBot
Allow: /
Ефект: ChatGPT і Claude починають включати Baldinelli в рекомендації по запитах медтехніки. Безкоштовно і швидко.
E-E-A-T для YMYL — медична тематика

12 статей · нема авторів · нема медичного дисклеймера

Медтехніка = YMYL (Your Money or Your Life). Google особливо вимогливий до E-E-A-T в цій ніші. 12 статей — мало (конкурент med-magazin.ua має 200+). Нема авторів-експертів на статтях, нема медичних дисклеймерів, нема сторінки "Про нас" з досвідом компанії (162 роки!).

1) Додати автора до кожної статті (ім'я + посада + фото). 2) Медичний дисклеймер на товарних. 3) Розширити "Про нас" — 162 роки Baldinelli це потужний E-E-A-T сигнал.

Доступність WCAG 2.2 — PSI Lighthouse + DevTools F12

67/100 · 15 FAILED

Baldinelli продає товари для людей з інвалідністю та хронічними захворюваннями — і сайт недоступний для цієї ж аудиторії. PSI Accessibility: 67/100 (15 failed audits в Lighthouse).

КритерійРезультат (F12 + PSI)Деталі
Images alt text❌ Масово відсутніГоловна: 67/248 без alt · Категорія: 26/239 · Товарна: 48/301
Semantic HTML❌ 0/7 тегівheader=0, main=0, nav=0, footer=0, article=0, section=0 на всіх типах сторінок
Form labels❌ 6 inputs без label19 inputs / 13 labels — пошук, фільтри, підписка без підпису
lang атрибут⚠️ lang="ru"Є, але основна мова для .ua сайту спірна у 2026
Touch targets⚠️ ПеревіритиМобільний аудит — мінімум 44px
Color contrast⚠️ ПеревіритиПотрібна ручна перевірка — мінімум 4.5:1
CLS 0.35 (CrUX mobile)❌ Контент зсуваєтьсяButtons зсуваються при завантаженні → користувачі натискають мимо
DOCTYPE HTML5HTML5 DOCTYPE ✅ (на відміну від osd.ua де XHTML Transitional — quirks mode)
OG Image SVG❌ Screen readersSVG без title/desc — assistive technology не розуміє
Keyboard navigation⚠️ ПеревіритиSkip link відсутній, focus indicators треба перевірити
🖥️

UX / Юзабіліті — конверсія і зручність

ПРОБІЛИ В КОНВЕРСІЇ
Головна сторінка

H2 лише 2 · H1 слабкий · нема trust-блоків

H1: «Интернет-магазин медтехники Baldinelli в Украине» — без УТП, без цифр. H2 всього 2 штуки. Немає секції «Чому Baldinelli?» з 162 роками досвіду, 14 магазинами. Немає trust-блоків (відгуки, сертифікати, лічильники).

Додати H2-секцію «Переваги Baldinelli» + лічильники. Це також допоможе E-E-A-T для YMYL ніші.
Товарна сторінка

Нема «Схожих товарів» · URL з параметром · 2 heatmap

Нема блоків «Схожі товари» і «З цим купують» — знижує середній чек. URL редіректить на ?wheelchair-width=45 — параметризований URL в аналітиці. 2 heatmap інструменти (Hotjar + Plerdy) — дублювання і зайвий JS.

Пошук по сайту

multisearch.io — зовнішній сервіс

DevTools підтвердив: plugin.multisearch.io завантажується. Пошукові запити користувачів ідуть на зовнішній сервер — privacy ризик і залежність.

CLS 0.35 · Total Load 9-15с

53% мобільних йдуть якщо сторінка >3с

CLS 0.35 — контент "стрибає" при завантаженні. На мобільних натискають мимо кнопки. Total Load 9-15с → критична втрата конверсії на мобільних.

UX елементСтанРекомендація
Trust-сигнали (роки, клієнти)❌ Відсутні на головній162 роки Baldinelli + 14 магазинів + N клієнтів на головній
Пов'язані товари❌ Відсутні«Схожі товари» і «З цим купують» → середній чек ×1.3
CTA на категоріях⚠️ СлабкийSticky кнопка «Підібрати за параметрами» / «Консультація»
Breadcrumb навігація✅ Є + Schema ✅
Пагінація SEO⚠️ Без rel=next/prevДодати розмітку пагінації для категорій
Два heatmap інструменти⚠️ Hotjar + PlerdyЗалишити один — зменшить навантаження JS і TBT
📊

Core Web Vitals — CrUX реальні дані, 28 днів

ВСІ 5 МЕТРИК MOBILE FAILED
CrUX Field Data — реальні Chrome користувачі (P75 · 28 днів · 16.04.2026)
4.6с
LCP Mobile
норма ≤2.5с ❌
229мс
INP Mobile
норма ≤200мс ❌
0.35
CLS Mobile
норма ≤0.1 ❌ (×3.5!)
3.1с
FCP Mobile
норма ≤1.8с ❌
2.2с
TTFB Mobile
lab: 114мс ❌ (реальний)
CrUX Desktop — частково краще:
2.1с
LCP Desktop
≤2.5с · ⚠️ близько
63мс
INP Desktop
≤200мс ✅
0.30
CLS Desktop
≤0.1 ❌ теж провал
1.5с
FCP Desktop
≤1.8с ✅
0.6с
TTFB Desktop
≤0.8с ✅
МетрикаMobile CrUXDesktop CrUXLab MobileLab DesktopНормаСтатус
LCP4.6s2.1s26.6s (m.)2.7s< 2.5sFAIL
INP229ms63ms470ms TBT540ms TBT< 200msFAIL mob
CLS0.350.300.0020.154< 0.1FAIL обидва
FCP3.1s1.5s12.2s0.4s< 1.8sFAIL mob
TTFB2.2s0.6s114мс~200ms< 0.8sFAIL mob
⚠️ Парадокс TTFB: Lab TTFB = 114мс (Cloudflare CDN ✅) але CrUX TTFB Mobile = 2.2с. Різниця: lab тестує з дата-центру на швидкому з'єднанні, CrUX — реальні мобільні на 3G/4G де OpenCart рендерить категорії 1875мс server-side. CLS 0.35 в 3.5× перевищує ліміт — слайдери і банери без зарезервованого місця.
🔑

Семантика — кластерний аналіз ніші (з /sitemap)

12 СТАТЕЙ VS 200+ У ЛІДЕРА
19,479
Organic Traffic
Semrush /міс
12
Статей
конкурент: 200+
4
Топ-категорії
Реаб·Медтех·Краса·Ортопедія
85
Унікальних шляхів
з /sitemap аналізу
baldinelli.ua/ (структура з /sitemap · 454 посилання)
├── reabilitaciya/ (інвалідні коляски, ліжка, ходунки, матраци, підйомники...)
├── domashnyaya-medtexnika/ (пульсоксиметри, тонометри, небулайзери...)
├── kracota-i-zdorov-e/ (масажери, ортопедичні подушки...)
├── ortopediya/ (корсети, бандажі, ортопедія)
├── articles/ ← 12 статей (МАЛО! конкурент: 200+)
├── blog → 404 ❌ (битий URL!)
├── news/ (є контент)
├── for-business/ · for-medical-institutions/ · our-partners/
├── about-us/ · reviews/ · contact/
└── shops/ (14 магазинів) ← LocalBusiness Schema вже є!
Тип контентуСтан BaldinelliКонкурент med-magazin.uaПотенціал трафіку
SEO-тексти на категоріях✅ Є (H2, FAQ, опис)✅ Є + більшеВже працює!
Гайди "як вибрати"❌ Відсутні✅ 50+ статей+3,000-5,000/міс
Порівняння товарів❌ Відсутні✅ Є+1,000-2,000/міс
Геолендінги (5 міст)⚠️ /shops/ є але без SEO-тексту❌ Немає мережі+2,000-4,000/міс (унікальна перевага!)
Блог / Новини❌ /blog 404 · 12 статей✅ 200+ статей+5,000-10,000/міс
Відгуки клієнтів⚠️ /reviews є, без Schema✅ З AggRatingCTR +20%
Унікальна перевага — мережа у 5 містах

Геолендінги = Baldinelli може отримати трафік який конкурент не може

Жоден конкурент не має мережі магазинів у 5 великих містах з підтвердженим LocalBusiness Schema. «Медтехніка Харків», «Медтехніка Дніпро», «Медтехніка Одеса» — низькоконкурентні запити з тисячами пошуків. LocalBusiness Schema вже є — залишилось контент на геолендінги.

📋

Сніпети в Google SERP — як виглядає зараз vs ціль

CTR МОЖНА ПОКРАЩИТИ
❌ Зараз — слабкий сніпет (головна)

135-символьний title обрізається · OG Image SVG

Baldinelli – интернет-магазин медтехники в Украине: ку...
baldinelli.ua
Сеть магазинов Baldinelli — купить медтехнику...(Google генерує сам)

❌ Title обрізається після 60 сим
❌ Description 217 сим — Google бере своє
❌ H2 на головній лише 2
✅ Як має виглядати

Чіткий title + оптимізований опис + УТП

Baldinelli — медтехніка в Україні | 14 магазинів
baldinelli.ua
3200+ товарів для реабілітації. Інвалідні візки, ліжка, ходунки. Київ, Харків, Дніпро, Одеса, Запоріжжя. З 1860 року.

✅ 47 символів — повністю відображається
✅ 152 символи desc — не обрізається
✅ 5 міст + бренд + 162 роки = УТП
Товарна — зірочки ВЖЕ є!

AggregateRating підтверджена F12 → зірочки в SERP

Стандартна інвалідна коляска Modern OSD — Baldinelli
baldinelli.ua
★★★★★ 5.0 (12 відгуків) · Ціна: 9 999 грн

✅ AggRating вже є в Schema!
⚠️ Але title 138 сим — обрізається
→ Скоротити title = більше видно
FAQ People Also Ask — H2 є, Schema відсутня

Потрібна тільки JSON-LD обгортка

Питання: «Як обрати інвалідний візок?»
baldinelli.ua › reabilitaciya › invalidnie-kolyacki
Критерії: ширина сидіння, тип коліс, вага коляски...

H2 «Критерії вибору» вже є!
→ Додати FAQPage Schema = People Also Ask
🏆

Конкуренти — Semrush Organic Traffic API · 16.04.2026

РЕАЛЬНІ ДАНІ
СайтAS (Semrush)Organic Traffic/міс×більше від BaldinelliКлючова перевага
med-magazin.ua 🥇4289,175×4.6200+ SEO статей · гайди · AggRating · контент-хаби
ortop.ua 🥈3544,041×2.3Порівняння · прокат · гайди по вибору
baldinelli.ua (ВИ) 🥉3319,479LocalBusiness×14 · AggRating ✅ · Cloudflare CDN · hreflang
osd.ua3010,819×0.56 (слабший)Офіційний виробник OSD · B2B
formed.ua~251,237×0.06 (набагато слабший)
📊 Ключовий висновок: Baldinelli AS=33 vs лідер AS=42 — різниця 9 пунктів. Але трафік у 4.6× менший. Це підтверджує: проблема не в беклінках — виключно в технічних гальмах і відсутності контент-стратегії. При тому що Schema, LocalBusiness і hreflang у Baldinelli кращі ніж у osd.ua, трафік вищий в 1.8×. Технічна оптимізація + блог = реалістично 35-45K за 6 місяців.
Що робить med-magazin.ua для ×4.6 трафіку

200+ статей + гайди по вибору + порівняння = інформаційний трафік

Лідер має контент-хаби: «Як вибрати інвалідний візок», «Кращі тонометри 2026», «Протипролежневий матрац для лежачого хворого». Кожна стаття = 100-500 відвідувачів/міс. 200 статей × 200 серед = 40,000 — це і є різниця в трафіку. Baldinelli має базу (SEO-тексти на категоріях) — потрібно масштабувати на блог.

📱

Mobile — окрема мобільна версія m.baldinelli.ua

КРИТИЧНО · LAB LCP 26.6с
🚨 Сайт використовує підхід 2012-2015 рр: окремий підомен m.baldinelli.ua для мобільних. Google mobile-first indexing (з 2019) бачить m.baldinelli.ua як ОСНОВНУ версію. Lighthouse тестує саме її — Lab LCP 26.6 секунд і FCP 12.2с. Це не бюджетна проблема — це архітектурна проблема яка вирішується за 30 хвилин.
Знайдено в HTML головної (DevTools F12)

Тег який говорить Google "мобільна версія — ось тут"

<link rel="alternate"
media="only screen and (max-width: 640px)"
href="https://m.baldinelli.ua/">

При зверненні: m.baldinelli.ua → 301 redirect → baldinelli.ua
(замкнене коло для Googlebot!)
Виправлення: Видалити цей рядок з header.tpl (або де він є в шаблоні OpenCart).
Опціонально: зробити 301 redirect з m.baldinelli.ua на baldinelli.ua якщо є прямі посилання.
Час: 30 хвилин. Ефект: Google mobile-first переключиться на основний сайт з LCP 2.7с замість 26.6с.
CLS 0.35 на мобільних (CrUX реальний)

Контент зсувається при завантаженні

CLS 0.35 — в 3.5× перевищує ліміт 0.1. Слайдери і банери без зарезервованого місця. При CLS 0.35 на мобільних — клієнти натискають не на ту кнопку і йдуть.

width і height для всіх img. Резервувати місце для слайдерів. Уникати dynamic injection вище fold.
Мобільна оптимізація: що вже добре

Responsive після видалення m. тегу буде в нормі

Основний сайт baldinelli.ua adaptive (перевірено). Cloudflare CDN дає хороший TTFB навіть на мобільних (114мс lab). Після видалення тегу m. — Google mobile-first буде тестувати основний адаптивний сайт.

📝

Контент — блог, статті, SEO-тексти

12 СТАТЕЙ vs 200+ У ЛІДЕРА
12 статей на весь магазин з 3200+ товарами. Для YMYL тематики (медтехніка) Google чекає авторитетного контенту. Конкурент med-magazin.ua має 200+ статей — це і є причина їх 89K трафіку. Але Baldinelli має унікальну перевагу яку конкурент не може скопіювати: 14 магазинів у 5 містах = геолендінги!
12 статей · /blog → 404

Інформаційний трафік = 0

«Як вибрати інвалідний візок», «Кисневий концентратор для дому», «Протипролежневий матрац» — тисячі пошуків. SEO-тексти на категоріях вже є (H2, FAQ, описи) — це добра база. Але блог/статті відсутні. /blog повертає 404.

Виправити /blog → 404. Запустити блог з 10 стартових статей по пріоритетних категоріях. Кожна стаття = 100-500 відвідувачів/міс + E-E-A-T.
lang=ru · двомовність · перехід на UA

Google Ukraine пріоритизує UA контент у 2026

lang="ru" як основна мова на .ua домені — конкурентний недолік. hreflang правильний (x-default вже є) — половина роботи зроблена. Поступовий перехід на UA не вплине різко на позиції. Статті тільки UA — для RU аудиторії контенту нема.

Унікальна перевага — мережа у 5 містах

Геолендінги: «Медтехніка Харків», «Медтехніка Дніпро» тощо

LocalBusiness Schema вже є для кожного магазину. Запити «медтехніка [місто]» — тисячі пошуків/міс. Жоден конкурент не має такої мережі. Потрібно: 1 landing page на місто з адресою, годинами, фото, відгуками клієнтів саме цього магазину. Плюс Google Business Profile оптимізація × 14 магазинів.

🗺️

Roadmap — пріоритизований план · P0→P3

18 ПУНКТІВ
P0 (тиждень 1): усуваємо критичні ризики що втрачають трафік і лідів прямо зараз. P1 (тижні 2-3): технічні покращення з вимірюваним ефектом на трафік. P2 (місяць 2): контент і Schema. P3 (місяці 3+): авторитет і масштаб.
#ЗавданняПріор.ВпливСкладність
1Видалити <link media="handheld"> → m.baldinelli.ua
LCP 26.6с → 4-6с · Google mobile-first покращення
P0Критичний30 хв
2LocalBusiness lat/lng swap → виправити всі 14 магазинів
Google Maps: Саудівська Аравія → Київ/Харків/Дніпро/Одеса/Запоріжжя
P0Критичний30 хв
3OG Image: SVG → JPG 1200×630
Facebook/Telegram/Viber/LinkedIn: порожня картинка → нормальне превью
P0Соцмережі CTR2 год
4Cache-Control: no-store → public max-age=3600
Cloudflare Edge Cache активується · TTFB категорій 1875мс → 50-100мс
P0Performance1 день
5Security Headers через Cloudflare Rules (6 headers)
HSTS + X-Frame + X-Content + CSP + Referrer + Permissions
P0Безпека E-E-A-T30 хв
6llms.txt + GPTBot/ClaudeBot/PerplexityBot в robots.txtP0AI visibility 202610 хв
7Перевірити Disallow: /*-ua/ у GSC URL Inspection
Якщо UA версія закрита → прибрати маску
P0UA індексація30 хв
8Title: 135-138 → ≤55 символів (головна + товарні)P1CTR +15-20%1 день
9Sitemap: 17,723 → 3,235 (видалити 6 типів табів)
Розбити на sitemap-products/categories/pages.xml
P1Crawl budget ×3Середня
10Додати UA URLs в sitemapP1UA індексаціяСередня
11lazy loading: 0/248-301 → всі img нижче foldP1LCP · Total Load1 день
12Alt теги: 67+26+48 зображеньP1SEO + A11y1 день
13FAQPage Schema (H2 FAQ вже є!)
Додати JSON-LD обгортку → People Also Ask в SERP
P1SERP розширенняНизька
14jQuery 2.1.1 → 3.7.1 · TBT 470мс → <200мсP1INP PerformanceСередня
15CLS 0.35: width/height для всіх img · резервування місцяP2CWV fixСередня
16Блог: виправити /blog 404 · 10-15 статейP2Трафік ×1.5Середня
17Геолендінги для 5 міст (LocalBusiness вже є!)P2Local SEO ×2Середня
18Disavow токсичних + лінкбілдинг медичні порталиP3AS зростанняСередня
Before / After — прогноз 6 місяців
WCS Score35/10075+/100
PageSpeed Mobile4375+
CWV AssessmentFAILEDPASSED
Google Maps точністьСаудівська АравіяПравильно ✅
Security Headers0/66/6
Sitemap URLs17,723~3,500
Organic Traffic19,47935-45K
AI Readiness5/10070+/100
👨‍💻

Dev Guide — конкретні завдання для розробника

ЩО РОБИТИ · ЯК · ДЕ

🔴 P0 · День 1 — Без доступу до сервера (Cloudflare + HTML)

ЗавданняДеКонкретна зміна
Видалити тег мобільної версіїheader.tpl OpenCartЗнайти і видалити: <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.baldinelli.ua/">
OG Image SVG → JPGOpenCart SEO налаштуванняЗамінити logo_mob_ru.svg на og-image.jpg (1200×630, до 300KB)
llms.txtКорінь /llms.txtНовий файл — шаблон в секції AI Readiness
robots.txt: AI-боти/robots.txtДодати блоки GPTBot, Claude-Web, anthropic-ai, PerplexityBot з Allow: /

🟠 P0 · Cloudflare Dashboard (без доступу до сервера!)

ЗавданняДе в CloudflareЗначення
HSTSSSL/TLS → Edge Certificates → HSTSEnable, max-age=31536000, includeSubDomains
Security HeadersRules → Transform Rules → Modify Response HeadersAdd: X-Frame-Options: SAMEORIGIN · X-Content-Type-Options: nosniff · Referrer-Policy: strict-origin-when-cross-origin
Cache RulesRules → Cache RulesДля HTML: Cache Level Standard, Edge TTL 1h. Для CSS/JS/img: 30 днів. Видалити no-store
BrotliSpeed → Optimization → BrotliEnable (зараз gzip)

🟡 P1 · OpenCart PHP (потрібен доступ до шаблонів)

ЗавданняВпливОпис змін
LocalBusiness lat/lng swapGoogle Maps!У всіх 14 LocalBusiness JSON-LD: поміняти місцями latitude і longitude. Зараз: lat=30.42, lng=50.45 → навпаки.
lazy loading imgLCP · PerformanceУ шаблонах product.tpl і category.tpl: loading="lazy" для всіх img нижче fold. Першим 2-3: fetchpriority="high".
FAQPage Schema на категоріяхPeople Also AskH2 FAQ вже є! Додати JSON-LD: {"@type":"FAQPage","mainEntity":[{"@type":"Question",...}]}
Sitemap генераторCrawl budgetВиключити з sitemap.xml URL типу /*/harakteristiki, /*/otzyvy, /*/video, /*/magaziny, /*/oplata, /*/garantia.
Alt тегиSEO + A11yproduct.tpl: alt="{product_name}". Категорії: alt="{category} {brand}".
Semantic HTMLSEO сигналиheader.tpl → <nav>, content.tpl → <main>, footer.tpl → <footer>. Без впливу на дизайн.
jQuery 2.1.1 → 3.7.1TBT/INPЗамінити підключення. Перевірити сумісність плагінів. TBT: 470мс → <200мс.
Title шаблонCTR +15%SEO шаблон title в OpenCart: видалити артикул і список міст → [назва] — купити в Baldinelli | [категорія].
width/height для imgCLS 0.35Всі img мають мати явні width і height атрибути → CLS 0.35 → <0.1.
🏆

WCL 272-Framework — наш внутрішній audit-стандарт

РЕАЛЬНИЙ · ZERO EXCLUSIONS
ℹ️ Це не вигаданий чек-лист. Це наш внутрішній audit pack що крутиться на webcorelab.com: site_level.sh + smoke_all.py + page_level.py. Ми проходимо ним власний сайт щомісяця (остання зйомка 22.04.2026 · WCS 98/100). Та сама методика застосовується до сайту клієнта — з тими самими назвами чеків і тим самим форматом proofs. Нижче — РЕАЛЬНИЙ перелік з останнього прогону по webcorelab.com як зразок того, що отримаєте ви.
Структура 272-framework

3 шари перевірок

Шар 1 · Site-level infra — 50 ключових параметрів (SSL/TLS, 8 security headers, 11 sensitive files, WP hardening, robots/sitemap, TTFB×3, DNS/SPF/DMARC, well-known)

Шар 2 · Per-URL smoke — 7 перевірок × усі URL зі sitemap (на webcorelab: 253 URL × 7 = 1771 окремих probes)

Шар 3 · Deep archetype — 40 вимірів × 15 типів сторінок (600 deep probes)

Бонус · Applied fixes log (18) + Ops/Observability (8) + Zero-exclusion cleanup (4) + WCS score breakdown (6 categories)

Baseline на webcorelab.com (22.04.2026)

Що ми показуємо коли приходимо до клієнта

WCS 98/100 · A+
URLs 200 OK: 253/253
HTML pages без H1/schema/canonical: 0/0/0
TTFB avg: 138ms
Security headers: 8/8
Sensitive файлів у відкритому доступі: 0/11
DMARC: p=quarantine pct=25
CSP / HSTS / XFO / XCTO / XSS / Referrer / Permissions / X-Robots — ✓

Ми не радимо те чого у нас самих немає.

🧱

Шар 1 · Site-Level Infrastructure — 50 параметрів

site_level.sh / site_level.json
ℹ️ Реальний JSON-дамп з 22.04.2026. Кожен рядок — ключ з site_level.json з реального прогону. У sample колонка "Значення" — наше (webcorelab.com). На адаптації під ваш сайт: зберемо той самий JSON з вашого домену, покажемо рядки де є delta від benchmark.
#JSON-ключПеревіркаЗначення (webcorelab.com)Статус
1ssl_http2HTTP/2 negotiationHTTP/2 200PASS
2ssl_cert_expiresSSL cert expiryJul 1 2026PASS
3ssl_cert_issuerSSL issuerGoogle Trust Services · WE1PASS
4ssl_protocolTLS protocol negotiatedTLSv1.3PASS
5ssl_cipherCipher suiteTLS_AES_256_GCM_SHA384PASS
6hdr_strict-transport-securityHSTSmax-age=31536000; includeSubDomainsPASS
7hdr_x-frame-optionsX-Frame-OptionsSAMEORIGINPASS
8hdr_x-content-type-optionsX-Content-Type-OptionsnosniffPASS
9hdr_x-xss-protectionX-XSS-Protection (legacy)1; mode=blockPASS
10hdr_referrer-policyReferrer-Policystrict-origin-when-cross-originPASS
11hdr_permissions-policyPermissions-Policygeolocation=(), camera=(), mic=()…PASS
12hdr_content-security-policyCSPdefault-src 'self'; script-src 'self'…PASS
13hdr_x-robots-tagX-Robots-Tag (server-level)index, followPASS
14cookie_flagsCookie Secure/HttpOnly/SameSite(агрегований чек по Set-Cookie)PASS
15file_.envSensitive file /.envHTTP 403PASS
16file_.git/configSensitive file /.git/configHTTP 403PASS
17file_wp-config.phpSensitive /wp-config.phpHTTP 403PASS
18file_wp-config.php.bakBackup /wp-config.php.bakHTTP 403PASS
19file_phpinfo.php/phpinfo.phpHTTP 403PASS
20file_.DS_StoremacOS metadata leakHTTP 404PASS
21file_debug.log/debug.logHTTP 404PASS
22file_xmlrpc.phpWP /xmlrpc.phpHTTP 403PASS
23file_readme.htmlWP /readme.htmlHTTP 403PASS
24file_license.txtWP /license.txtHTTP 403PASS
25file_wp-admin/install.phpWP installerHTTP 404PASS
26wp_version_in_headWordPress версія у <head>(clean)PASS
27wp_generatorGenerator meta tag(clean)PASS
28wp_rest_api_exposed/wp-json/ accessHTTP 403PASS
29wp_users_enum?author=1 author enumerationHTTP 403PASS
30robots_sizerobots.txt size (bytes)1203PASS
31robots_has_sitemapSitemap: directive у robots1PASS
32robots_ai_botsAI-bot rules (GPTBot, Claude, …)6PASS
33sitemap_statussitemap_index.xml HTTP status200PASS
34sitemap_url_countURL count у sitemap253PASS
35sitemap_sub_countSub-sitemaps у індексі5PASS
36ttfb_try1TTFB try 1 (curl -w)134msPASS
37ttfb_try2TTFB try 2138msPASS
38ttfb_try3TTFB try 3142msPASS
39proxy_cache_statusX-Proxy-Cache responseHITPASS
40dns_aA-запис172.67.205.26 (Cloudflare)PASS
41dns_aaaaAAAA-запис IPv62606:4700:3035::ac43:cd1aPASS
42dns_mxMX-записroute3.mx.cloudflare.netPASS
43dns_txt_spfSPF TXTv=spf1 include:…google.com ~allPASS
44dns_dmarcDMARC policyp=quarantine; pct=25; rua=…PASS
45wellknown_llms.txt/llms.txt (AI routing)HTTP 200PASS
46wellknown_llms-full.txt/llms-full.txtHTTP 404WARN
47wellknown_security.txt/security.txtHTTP 404WARN
48wellknown_.well-known/security.txt/.well-known/security.txtHTTP 404WARN
49wellknown_humans.txt/humans.txtHTTP 404N/A
50wellknown_ads.txt/ads.txtHTTP 404N/A
⚠️ Типові delta на adult-e-com сайтах (наш досвід): рядки 6-13 (security headers) зазвичай 2-4 з 8 замість 8/8 · рядок 14 (cookie flags) часто HttpOnly/SameSite відсутні · рядки 15-25 (sensitive) — 2-3 файли реально відкриті (найчастіше /readme.html + /xmlrpc.php) · рядки 26-29 (WP hardening) — 3 з 4 FAIL типово · рядок 32 (AI bots) = 0 бо ще не додавали · рядки 36-39 (TTFB) — 300-800ms без cache layers · рядок 44 (DMARC) — p=none у 80% клієнтів.
🔬

Шар 2 · Per-URL Smoke — 7 перевірок × усі URL зі sitemap

smoke_all.py / smoke_FINAL_ZERO2.json
ℹ️ Кожен URL зі sitemap проходить 7 перевірок. На webcorelab.com: 253 URL × 7 = 1771 окремих probes. Non-HTML ресурси (наприклад /locations.kml) коректно класифікуються як kind=kml і для HTML-only чеків повертають N/A (це не exclusion — це коректна класифікація по Content-Type).
#ПеревіркаФормулаBenchmark webcorelab.comСтатус
1HTTP 200 OKcurl -o /dev/null -w '%{http_code}'253/253PASS
2Has H1 (HTML pages only)regex <h1[^>]*>252/252PASS
3Has JSON-LD schema (HTML)regex application/ld\+json252/252PASS
4Has canonical (HTML)regex rel="canonical"252/252PASS
5No accidental NOINDEXregex meta robots / X-Robots-Tag252/252PASS
6Title ≤70ch (after entity decode)html.unescape(title); len()252/252PASS
7Has <title>regex <title>(.+?)</title>252/252PASS
🚨 Типовий adult e-com на smoke 7×N: № 2 (H1) — 20-40% сторінок без H1 (WooCommerce shortcodes) · № 3 (JSON-LD) — 30-50% без schema (category/search/cart) · № 4 (canonical) — 50-70% без canonical на filter-URLs · № 5 (NOINDEX) — leak через X-Robots-Tag (staging → prod) · № 6 (title) — 10-15% довше 70 chars. Саме ці типові «7×X failures» і розраховують drop у SERP.
📐

Шар 3 · Deep Archetype — 40 вимірів × усі унікальні типи сторінок

page_level.py / page_level_ZERO.json
ℹ️ На webcorelab.com — 15 archetypes × 40 = 600 probes. Для кожного типу сторінки (home / about / services / portfolio / case / blog-list / blog-post / ai-home / terms / sitemap / …) знімаємо 40 вимірів. Для e-commerce adult-сайту archetypes будуть: home, category, product, product-variant, blog-list, blog-post, search, filter, cart, checkout, account, 404, sitemap, utility, policy.
#JSON-ключЩо міряємоHome (webcorelab.com/) · реальне значення
1statusHTTP status code200
2size_bytesPayload bytes300,371
3content_typeContent-Type headertext/html; charset=UTF-8
4cache_controlCache-Controlpublic, max-age=600, s-maxage=21600, swr=…
5x_proxy_cacheX-Proxy-CacheHIT
6content_encodingCompressiongzip
7is_htmlHTML detectedTrue
8kindKind classifierhtml
9title<title> valueWebCoreLab — AI-Powered Digital Agency | Toronto
10title_lengthTitle length (entity-decoded)48
11meta_descriptionMeta descriptionAI-first digital agency: business automation…
12meta_desc_lengthDescription length134
13h1_countКількість H11
14h1_firstТекст першого H1(non-empty)
15h2_countКількість H216
16canonicalrel=canonical URLhttps://webcorelab.com/
17canonical_selfCanonical = selfTrue
18meta_robotsMeta robots valueindex, follow, max-image-preview:large, …
19has_noindexNOINDEX detectedFalse
20og_og_titleog:titleWebCoreLab — AI-Powered Digital Agency | Toronto
21og_og_descriptionog:descriptionAI-first digital agency: business automation…
22og_og_imageog:image URL…/wp-content/themes/wcl-ai/img/og-banner…
23og_og_typeog:typewebsite
24og_og_urlog:urlhttps://webcorelab.com/
25og_twitter_cardtwitter:card(empty — WARN, recommend 'summary_large_image')
26hreflang_countHreflang tag count0 (single-language site)
27html_langhtml[lang]en-US
28schema_countSchema blocks count3
29schema_typesSchema types listOrganization, WebSite, ProfessionalService
30img_countTotal <img>119
31img_missing_altImages без alt0
32img_lazyloading="lazy"49
33img_with_dimensionsw+h attributes15 (WARN — рекомендується 100%)
34link_countTotal <a href>117
35external_linksExternal domain links18
36form_count<form> count1
37input_count<input> count9
38input_unlabeledInputs без label (a11y)9 (WARN — всі є hidden)
39inline_script_countInline <script>11
40external_script_count + external_css_count + has_viewport + has_charset + has_favicon + preconnect_count + dns_prefetch_countResource-hints + meta basics (агрегат)5 JS · 5 CSS · viewport ✓ · charset ✓ · favicon ✓ · 3 preconnect · 4 dns-prefetch
💡 Навіщо deep по 40 вимірах × archetype: дає можливість порівняти однакові типи сторінок між собою (усі продуктові vs усі категорії) — якщо меtrick різняться в 2-3 рази, значить є шаблонна проблема (наприклад WooCommerce product-variations рендериться без H1). Це найшвидший шлях до root-cause drop трафіку на конкретному архетипі.
🔧

Applied Fixes Log · 18 фіксів з останнього прогону

P0·P1·P2
ℹ️ Це реальний лог із 22.04.2026 на webcorelab.com — показує як виглядає cycle "знайшли → виправили → перевірили". Це те ж саме ми робимо на сайті клієнта: знаходимо → документуємо у форматі (Priority, Fix, Metric change, Artifact) → deploy → повторюємо замір.
PriFixMetric changeArtifact / файл
P0H1 injection MU-plugin120 → 0 pages без H1wcl-h1-injector.php v2 (ob_start + template_redirect)
P0Schema enhancement2 → 6 typeswcl-schema-enhancer.php (ProfessionalService додано)
P0Security headers батч1 → 8/8 headerssnippets/wcl-security-headers.conf (nginx)
P0X-Robots-Tag leaknoindex → index,followproxy_hide_header у nginx (прибрали staging header leak у prod)
P0WebP pipeline172.7 → 22.1 MB (-87%)nginx map + cwebp q82 -m6 batch
P05 cache layersTTFB 468 → 143msOPcache + Redis + fastcgi + proxy_cache + CF edge
P1Redis LRU limitnoeviction → 256MB allkeys-lruCONFIG REWRITE persisted
P1MariaDB slow logOFF → ON (long_query_time=1s)/etc/mysql/mariadb.conf.d/99-slow-log.cnf
P1DMARC quarantinep=none → p=quarantine pct=25Cloudflare DNS API update
P1Auto-alt MU-plugin8 → 0 pages без altwcl-auto-alt.php (filename→alt)
P2/terms/ повний SEO upgradeдодали JSON-LD + canonical + OG + Twitter + favicon/var/www/webcorelab.com/terms/index.html rewrite
P2Content-Type classifier.kml = N/A (було false-FAIL)smoke_all.py kind detector (html/kml/xml/other)
P2Title entity decode27 "long" (рахувались символи entities) → 0 realhtml.unescape() перед len-check
P2Blogname shortened"WebCoreLab — AI-Powered Digital Agency" → "WebCoreLab"wp option update blogname
P2Yoast title templates compactpost/page/category коротшіwpseo_titles option patch
P2Per-post title rewrites6 critical + 14+14 suffix-stripwp post update + update_post_meta _yoast_wpseo_title
P2Category News description(empty) → filledupdate_term_meta _yoast_wpseo_metadesc
P2Band-aid removalwcl-title-shortener.php DELETEDroot-cause fix замість 128-line ob_start truncator
💡 Принцип "Zero band-aids": жоден з 18 фіксів — не hotfix-milyankh. Навіть wcl-title-shortener.php що працював як runtime-truncator був ВИДАЛЕНИЙ, а titles переписані в source на шаблонному рівні (Yoast templates + per-post rewrites). У вашому аудиті буде така ж дисципліна: видимі band-aids (hook на каждый запит, cron-гарячі фікси) будемо замінювати на source-level виправлення.
📡

Ops & Observability · Stack який крутиться на webcorelab.com

PROMETHEUS · LOKI · GRAFANA
ℹ️ Стек 24/7 моніторингу з реального прогону 22.04.2026. Ми пропонуємо його ж налаштувати для клієнта (опціональна фаза після аудиту) — щоб drop помічати за 15 хв а не за 2 тижні у GSC.
🏆

WCS Score Breakdown · 5 категорій (реальна формула)

ВАГОВА ОЦІНКА
ℹ️ Це та сама формула що дала 98/100 на webcorelab.com. Ваги підібрані щоб відображати реальний impact на органічний трафік e-commerce-сайтів.
CategoryWeightScore webcorelab.comDetail
Infrastructure2525/25HTTP/2 · 8/8 headers · 0/11 sensitive · WP-hardening 4/4 · cache HIT · TTFB 138ms · AI-bots 6+
SEO — усі HTML2525/250 no-title · 0 no-H1 · 0 no-schema · 0 no-canonical · 0 noindex leak · 0 long-title
Quality (Deep archetypes)2018/2014/14 viewport · 14/14 alt · schema avg 2.36 types/page · OG partial 6/14
DNS & Email1515/15A · AAAA · MX · SPF · DMARC quarantine pct=25
Ops (backups, monitoring, caches)1515/15Prometheus+Loki+Grafana · daily backups 1.9GB · 5 cache layers
TOTAL10098/100 · A+Production-grade · 0 exclusions · 0 band-aids
💡 Benchmark типового adult e-com до аудиту: Infrastructure 8-14/25 · SEO 10-17/25 · Quality 8-14/20 · DNS/Email 5-10/15 · Ops 3-8/15 · Total = 34-63/100 · D-/C+. Мета після 3 місяців engagement: 85+/100 (A). Досяжно, якщо клієнт готовий до контенту і ми маємо доступи.
🔞

Adult-niche overlay · 8 перевірок, яких нема у стандартному 272-framework

ПІД НІШУ
🚨 272-framework універсальний. Для adult-e-com додаємо 8-пунктовий overlay — речі, які не з'являються у звичайному Screaming Frog / Semrush звіті, але часто є реальним джерелом drop у вашій ніші.
#ПеревіркаМетодЧому важливо для adultТиповий drop-тригер
1SafeSearch behaviorsearch-тест з UA Googlebot і клієнтським UA, 3-5 IP (EU/US/UA), SafeSearch ON/OFFGoogle може ховати сайт у SafeSearch=ON навіть якщо технічно все окSafeSearch=strict, Google агресивніше фільтрує у 2025-2026
2Age-gate vs Googlebotcurl -A "Googlebot/2.1" — чи бачить бот контент без age-gateЯкщо age-gate = JS-редирект для всіх → Googlebot бачить тільки заглушку → деіндексація каталогуНовий age-gate без Googlebot bypass = deindex усього каталогу за 2-4 тижні
3GSC adult categoryGSC → Settings → class "Adult"Класифікація впливає на тип показу у видачі + обмеження adsНевірна категорія → Google вважає сайт "dual purpose" і фільтрує сильніше
4YMYL / E-E-A-T overlayAuthor / Expert review блоки · політики повернення · вікова перевірка · medical-disclosureAdult + товари для здоров'я попадають у YMYL — E-E-A-T сигнали критичніHelpful Content Update (HCU) збив позиції через відсутність expert-author
5Payment processor compliancecheckout flow · PSP list (adult restrictions) · HTTPS + PCI-DSSОбмежена кількість PSP. Якщо checkout ламається → PSP деактивованийStripe/PayPal deactivated → checkout 500 → Google Safe Browsing signal
6Adult backlink landscapeAhrefs/Semrush кластеризація доменів-донорів · % adult-themed RD · toxic scoreAdult donors менш охочі линкувати, критично оцінювати "gray-hat"Раптовий приріст toxic donors → Penguin-like filter
7Google Shopping policyMerchant Center status · політика restrictionsAdult заборонено у Google Shopping → organic трафік ще важливішийMerchant-акаунт suspend → product-feed freshness сигнали падають
8Age-verification impact на crawllog-analysis Googlebot UA · % request що зустрічають age-modal · robots.txt Googlebot allowAge-verify через cookie може блокувати Googlebot без cookiesAge-verify cookie required → Googlebot 403 → деіндекс за 2-4 тижні
Топ-5 реальних причин drop у adult-e-com (наш досвід)

Ранжування за частотою

1. Age-gate блокує Googlebot (п.2, 8) — №1 причина раптового drop
2. Helpful Content Update / Core Update (YMYL) — повільний drop
3. Crawl budget зжерли filter-params (дивись Шар 2 · smoke №5 NOINDEX)
4. Backlink profile — куплені gray-hat посилання з минулого, Penguin-like
5. Checkout broken через PSP → Google сигнали про якість сайту падають

Наш підхід до вашої ніші

11+ років з e-commerce · adult досвід окремо

Ми вже робили SEO у 3 adult-суміжних нішах (wellness · toys · herbal supplements). Знаємо: (1) SafeSearch тестування по 3-5 регіонах; (2) GSC coverage audit з фільтром на adult-слова; (3) age-gate "Googlebot-friendly" (пустити бота без gate, користувача — з gate); (4) PSP migration план якщо поточний відвалив.

💼

Пропозиція — план робіт WebCoreLab

4 ФАЗИ
WebCoreLab × baldinelli.ua · Квітень 2026
Від WCS 35/100 до 75+/100 за 3 місяці
Ми вже зробили повний аудит безкоштовно — і це 3 незалежних аудити з різними інструментами. Нижче — конкретний план на основі реальних DevTools вимірів. Чесно: 80% проблем вирішуються за перші 2 тижні. Решта — контент і авторитет.
Фаза 1 — Тижні 1-2: P0 критично і швидко

Зупинити втрати. Виправити те що б'є по позиціях і трафіку прямо зараз.

  • Видалити <link media="handheld" href="m.baldinelli.ua"> — Google mobile-first LCP 26.6с!
  • LocalBusiness lat/lng swap — виправити координати всіх 14 магазинів (зараз Google Maps = Саудівська Аравія)
  • OG Image: SVG → JPG 1200×630 (Facebook/Telegram/Viber не показують SVG)
  • Cache-Control: no-store → public max-age=3600 (Cloudflare Edge Cache не працює!)
  • Security Headers через Cloudflare Rules — 6 headers за 30 хвилин
  • llms.txt + GPTBot/ClaudeBot/PerplexityBot в robots.txt (10 хвилин)
  • Перевірити Disallow: /*-ua/ у GSC — потенційно закрита UA версія
  • Title 135-138 → ≤55 символів на головній і товарних
Фаза 2 — Тижні 3-4: SEO, Sitemap, Schema

Збільшити видимість в пошуку. Очистити crawl budget.

  • Sitemap: 17,723 → 3,235 URL (видалити 6 типів табів: harakteristiki/otzyvy/video/magaziny/oplata/garantia)
  • Додати UA URLs в sitemap (зараз 0 з 17,723)
  • lazy loading: 0 → всі img нижче fold (248/239/301 зображень без lazy)
  • Alt теги: 67 (головна) + 26 (категорія) + 48 (товарна) без alt
  • FAQPage Schema — H2 FAQ вже є на категоріях! Тільки JSON-LD обгортка
  • BreadcrumbList Schema на категоріях (зараз тільки Products array)
  • Meta desc: 199-271 → ≤155 символів
Фаза 3 — Тижні 5-8: Performance і CWV

Total Load 9-15с → 3-4с. CWV: FAILED → PASSED.

  • jQuery 2.1.1 (2014!) → 3.7.1 · TBT 470мс → <200мс
  • CLS 0.35: width/height для всіх img · резервувати місце для слайдерів
  • HTML 596KB: defer/lazy модалок і popup'ів
  • 2 heatmap (Hotjar + Plerdy) → залишити один
  • MGID/SendPulse → defer або видалити
  • Brotli увімкнути в Cloudflare (зараз gzip)
  • CLS 0.30 Desktop — також виправити
Фаза 4 — Місяці 3-6: Контент і авторитет

Ріст трафіку 19.5K → 35-45K. Перемога над конкурентами.

  • Blog: виправити /blog 404 · 10-15 статей по пріоритетних категоріях
  • lang=ru → UA як основна мова (поступово, без різкого падіння)
  • Геолендінги для 5 міст (LocalBusiness Schema вже є — потрібен контент)
  • Google Business Profile оптимізація ×14 магазинів
  • Пов'язані товари на товарних сторінках
  • Disavow токсичних беклінків (NL 13%, RU 6%, EE 4%)
  • Якісний лінкбілдинг: медичні портали, реабцентри, лікарні України
  • E-E-A-T: автори на статтях, медичний дисклеймер на YMYL сторінках
  • Щомісячний моніторинг CWV і позицій
Before / After — прогноз на 6 місяців
МетрикаЗаразЧерез 6 міс.
WCS Score35/10075+/100
PageSpeed Mobile43/10075+/100
CWV AssessmentFAILED (всі 5 mobile)PASSED
Security Headers0/66/6
Sitemap URLs17,723~3,500
Organic Traffic19,479/міс35-45K/міс
Total Load (гол.)9.2с2-3с
Google Maps точністьСаудівська Аравія ❌Всі 14 міст ✅
AI Readiness5/10070+/100
Alt text coverage~70%95%+
Портфоліо WebCoreLab — релевантний досвід
ПроєктНішаЩо зробилиРезультат
osd.uaМедтехнікаПовний SEO аудит, технічна оптимізація22 критичні проблеми, WCS аудит (для порівняння в цьому звіті)
BPI GroupБудівництвоРестайл 51 сторінки, SEO-архітектураПовна оптимізація структури і контенту
cle.in.uaОсвітаSEO чек: robots, JSON-LD, Schema suiteТехнічна SEO-інфраструктура з нуля
webcorelab.comАгентствоAI-сторінки, proxy архітектура, SEOPageSpeed 95+, Schema Suite
E-commerce шиниАвто1,500+ SKU, PageSpeed оптимізаціяTTFB 1.2с → 0.3с, PageSpeed 92+

«Вперше бачу спеціаліста, який реально розуміє не тільки SEO але і як це пов'язано з бізнес-результатами. Після аудиту команда нарешті зрозуміла що конкретно потрібно змінювати.» — клієнт, e-commerce медтехніки

📋

Бриф — що нам потрібно від вас

5 ХВИЛИН · ТОЧНА ОЦІНКА

Ми вже знаємо технічний стан сайту. Тепер потрібно зрозуміти вашу бізнес-ситуацію і отримати доступи для повноцінної роботи. Заповнення займе 5-7 хвилин.

🔑 Блок 1 — Технічні доступи (для старту роботи)

Без цих доступів ми можемо тільки аналізувати. З доступами — реально виправляти проблеми.

1.1 Google Search Console (обов'язково — реальні позиції, помилки, CWV по URL)
1.2 Google Analytics 4 (для аналізу поведінки і конверсій)
1.3 Серверний доступ / хостинг (критично для PHP, nginx, безпеки — Фаза 1)
1.4 CMS — хто розробник і чи є доступ до коду?
1.5 Домен і DNS (для налаштування редиректів, hreflang, CDN)

💼 Блок 2 — Бізнес-модель і канали продажів

Щоб правильно розставити пріоритети — нам важливо розуміти звідки зараз приходять клієнти і гроші.

2.1 Основні канали продажів зараз (орієнтовно в % від виручки)
2.2 Хто ваш основний клієнт?
Яка частка B2B vs B2C приблизно?
2.3 Що зараз дає найбільше продажів? (яка категорія товарів)
2.4 Сезонність — є піки продажів?
2.5 Є регіональні пріоритети? (Київ, всі обласні центри, вся Україна?)

🔍 Блок 3 — Поточний стан SEO і підрядники

3.1 Чи є/був поточний SEO-підрядник? Що він робить?
3.2 Чи відстежуєте позиції в Google? За якими запитами хочете бути в ТОП?
3.3 Є конкуренти яких ви хочете обігнати?

⚙️ Блок 4 — Технічні рішення і обмеження

4.1 Серверне оновлення — готові? (OpenCart PHP → 8.2 це пріоритет безпеки #1)
4.2 Мовна версія — яка стратегія?
4.3 Система відгуків (критично для AggregateRating — зірочки в SERP)
4.4 Google Business Profile (Google Maps)
4.5 Хто зараз пише контент? (важливо для плану SEO-текстів на категорії)

🎯 Блок 5 — Пріоритети і очікування

5.1 Що для вас важливіше прямо зараз? (оберіть 1-3)
5.2 Коли хочете побачити перші результати?
5.3 Орієнтовний бюджет на місяць (щоб ми запропонували реалістичний обсяг)
5.4 Контакт по проєкту
5.5 Є щось що ми пропустили? Що турбує найбільше?

Наступний крок — розмова 15-30 хвилин

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

📧 webcorelab.com  ·  🌐 Toronto, Canada · Українське підрозділення  ·  💬 Telegram: @webcorelab