# kelo.sk — Zulien Score 64/100 (známka C)

> Bezplatný audit e-shopu: 64/100 celkové skóre. Platforma: WooCommerce (WP 7.0.2). Firma: jachta.sk s.r.o.. 100+ kontrol v 7 kategóriách (výkon, SEO, bezpečnosť, mobil, AI pripravenosť, GDPR, zraniteľnosti).

- **Auditovaný:** https://kelo.sk/
- **Platforma:** WooCommerce (WP 7.0.2)
- **Firma:** jachta.sk s.r.o.
- **Dátum auditu:** 2026-08-03
- **Plná správa:** https://score.zulien.sk/cs/r/kelo.sk
- **JSON API:** https://euyszfecnvwsqpigioyx.supabase.co/functions/v1/api-v1/score/kelo.sk

## Zhrnutie auditu

Váš obchod funguje, ale má veľký priestor na zlepšenie. Okamžite pridajte meta popisy a H1 nadpisy na všetky produktové stránky — sú dôležité pre vyhľadávače a kupujúcich. Vaša bezpečnosť je na dobrej úrovni a serverová konfigurácia je funkcná.

## Skóre podľa kategórií

| Kategória | Skóre |
|---|---|
| Výkon | 71/100 |
| SEO | 64/100 |
| Bezpečnosť | 59/100 |
| Mobil | 67/100 |
| AI pripravenosť | 49/100 |
| GDPR | 60/100 |
| Zraniteľnosti | 70/100 |

## Detailné nálezy

### Výkon — 71/100

- **[CHYBA]** Total Page Weight — 4.7 MB, 80 requests — too heavy!
  - Riešenie: Critical: your page is over 3 MB. 1) Convert all images to WebP/AVIF, 2) Lazy load everything below the fold, 3) Remove unused plugins, 4) Combine and minify CSS/JS, 5) Enable brotli compression.
  - Dôkaz: PSI-lab
- **[CHYBA]** JavaScript Budget — 1414 KB — more than double the 600 KB budget
  - Riešenie: Audit what ships on a product page: split the bundle by route, defer every third-party tag until interaction or consent, and remove plugins whose bundle you cannot account for. Measure again after each removal.
  - Dôkaz: PSI-lab · 1414 KB JavaScript · istota: high
- **[CHYBA]** Unused Code (CSS + JS) — 897 KB wasted on unused code!
  - Riešenie: You're loading 897 KB of code that isn't used on this page. 1) Audit plugins and remove unused ones, 2) Use code-splitting for page-specific JS, 3) Run PurgeCSS on your stylesheets.
  - Dôkaz: PSI-lab
- **[CHYBA]** Script Loading Strategy — Only 24% of 37 scripts optimized — most are render-blocking
  - Riešenie: Add defer or async to all <script src='...'> tags. Render-blocking scripts are a leading cause of slow FCP. Defer maintains execution order, async does not.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** CSS File Count — 19 CSS files — too many!
  - Riešenie: Bundle your CSS files into 1-3 files maximum. Use a build tool (Webpack, Vite, Gulp) to concatenate and minify. Critical CSS should be inlined, the rest deferred.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Total Blocking Time (TBT) — 370ms (good: <200ms)
  - Riešenie: Reduce JavaScript execution: defer non-critical scripts, code-split large bundles, remove unused plugins. Third-party scripts (analytics, chat, ads) are often the biggest offenders.
  - Dôkaz: PSI-lab
- **[UPOZORNENIE]** Resource Hints (Preload/Preconnect)
  - Riešenie: Add resource hints: <link rel='preconnect' href='https://fonts.googleapis.com'> for third-party origins, <link rel='preload' as='image' href='hero.webp'> for critical resources.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Font Loading Strategy — Google Fonts detected without font-display
  - Riešenie: Add &display=swap to your Google Fonts URL, or add font-display: swap to your @font-face declarations.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Cache-Control Strategy — max-age=0, no-cache, no-store, must-revalidate
  - Riešenie: Set appropriate cache headers: static assets should have max-age=31536000 with versioned filenames. HTML pages can use max-age=0 with ETag for revalidation.
  - Dôkaz: HTTP-header
- **[UPOZORNENIE]** Font Preloading — Custom fonts detected without preload hints
  - Riešenie: Preload your primary font: <link rel='preload' href='/fonts/main.woff2' as='font' type='font/woff2' crossorigin>. For Google Fonts: preconnect to fonts.gstatic.com.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Critical CSS Strategy — 19 CSS files without critical CSS extraction
  - Riešenie: Extract critical above-the-fold CSS and inline it in <head>. Load remaining CSS asynchronously: <link rel='preload' href='styles.css' as='style' onload='this.rel="stylesheet"'>.
  - Dôkaz: PSI-lab
- **[INFO]** Third-party Services — Not measured — PageSpeed did not return the third-party audit for this URL
  - Dôkaz: PSI-lab
- **[INFO]** Render-blocking Resources — Not measured — PageSpeed did not return the render-blocking audit for this URL
  - Dôkaz: PSI-lab
- **[OK]** Server Response Time (TTFB) — 47ms
  - Dôkaz: PSI-lab
- **[OK]** First Contentful Paint (FCP) — 0.79s
  - Dôkaz: PSI-lab
- **[OK]** Largest Contentful Paint (LCP) — 1.80s — Core Web Vital ✓
  - Dôkaz: PSI-lab
- **[OK]** Cumulative Layout Shift (CLS) — 0.013 — Core Web Vital ✓
  - Dôkaz: PSI-lab
- **[OK]** Speed Index — 1.65s
  - Dôkaz: PSI-lab
- **[OK]** Request Budget — 80 requests — within the budget of 80
  - Dôkaz: PSI-lab · 80 requests · istota: high
- **[OK]** Text Compression (gzip/brotli) — All text resources properly compressed
  - Dôkaz: HTTP-header
- **[OK]** Lazy Loading — 48% of images use native lazy loading (14/29)
  - Dôkaz: HTML-heuristic
- **[OK]** HTTP/3 (QUIC) Support — HTTP/3 enabled via Alt-Svc header
  - Dôkaz: HTTP-header

### SEO — 64/100

- **[CHYBA]** Meta Description
  - Riešenie: Write a compelling meta description (120-160 chars) with a call-to-action. Include your target keyword naturally.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** H1 Heading
  - Riešenie: Add exactly one H1 tag containing your primary keyword. It should be the most prominent heading on the page.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Open Graph Tags
  - Riešenie: Add og:title, og:description, og:image (1200×630px), and og:type meta tags to every page.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Structured Data (JSON-LD)
  - Riešenie: Add JSON-LD structured data: Product (with price, availability, reviews), Organization, BreadcrumbList, and WebSite schemas.
  - Dôkaz: schema
- **[UPOZORNENIE]** Meta Title — 7 chars (optimal: 30-60)
  - Riešenie: Your title is very short. Add descriptive keywords and your brand name for better ranking signals.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Twitter/X Cards
  - Riešenie: Add <meta name='twitter:card' content='summary_large_image'>, twitter:title, and twitter:image tags.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Image Format Optimization — Only 14% next-gen formats — 10 legacy images remain
  - Riešenie: Convert remaining JPEG/PNG images to WebP (30-50% smaller) or AVIF (50-70% smaller). Use the <picture> element for browser fallback.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Empty/Dead Links — 9 dead links (1 empty, 8 hash-only, 0 javascript:void)
  - Riešenie: Replace empty href='', href='#', and href='javascript:void(0)' with actual URLs. If interactive, use <button> instead of <a>.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Product Schema Richness — Missing recommended: brand, aggregateRating, review, gtin
  - Riešenie: Add brand, aggregateRating, review, gtin to your Product schema. These fields enable rich snippets with star ratings, price, availability, and brand in search results.
  - Dôkaz: schema · https://kelo.sk/produkt/damsky-unisuit-x-tmavozeleny · istota: medium
- **[UPOZORNENIE]** Excessive Resource Requests — 37 JS + 19 CSS = 56 external requests
  - Riešenie: Reduce to under 50 external resources by bundling JS/CSS files, removing unused plugins, and consolidating third-party scripts.
  - Dôkaz: HTML-heuristic
- **[INFO]** Text-to-HTML Ratio — 2% ratio but 665 words — content is substantial; the low ratio is markup/inline-JS bloat, not thin content
  - Dôkaz: HTML-heuristic
- **[OK]** Content Structure (H2 Headings) — 10 H2 subheadings found
  - Dôkaz: HTML-heuristic
- **[OK]** Canonical URL — https://kelo.sk/
  - Dôkaz: HTML-heuristic
- **[OK]** robots.txt — Present, references sitemap
  - Dôkaz: file-probe
- **[OK]** XML Sitemap — Found with ~7+ URLs
  - Dôkaz: file-probe
- **[OK]** HTML Language Attribute — lang="sk-SK"
  - Dôkaz: HTML-heuristic
- **[OK]** Image Alt Attributes — 100% of 29 images have alt text
  - Dôkaz: HTML-heuristic
- **[OK]** Meta Robots Tag — max-image-preview:large
  - Dôkaz: HTML-heuristic
- **[OK]** Favicon — Favicon detected
  - Dôkaz: file-probe
- **[OK]** Semantic HTML Structure — 4/6 semantic elements: <article>, <header>, <footer>, <aside>
  - Dôkaz: HTML-heuristic
- **[OK]** Content Depth — 665 words — sufficient content
  - Dôkaz: HTML-heuristic
- **[OK]** Deep Heading Hierarchy — H2: 10, H3: 17 — well-structured content
  - Dôkaz: HTML-heuristic
- **[OK]** Internal Linking — 19 internal links — strong site navigation
  - Dôkaz: HTML-heuristic
- **[OK]** Accessibility Fundamentals — 3/4 a11y signals: 54 ARIA roles, 18 ARIA labels, lang="sk-SK"
  - Dôkaz: HTML-heuristic

### Bezpečnosť — 59/100

- **[CHYBA]** HSTS (Strict-Transport-Security)
  - Riešenie: Add header: Strict-Transport-Security: max-age=31536000; includeSubDomains; preload — then submit to hstspreload.org.
  - Dôkaz: HTTP-header
- **[CHYBA]** Content-Security-Policy (CSP)
  - Riešenie: Implement a CSP header. Start with: Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: — then gradually tighten.
  - Dôkaz: HTTP-header
- **[CHYBA]** Clickjacking Protection
  - Riešenie: Add X-Frame-Options: DENY (or SAMEORIGIN if iframes are needed). Better: use CSP frame-ancestors 'self'.
  - Dôkaz: HTTP-header
- **[UPOZORNENIE]** CAA DNS Record — No CAA records — any CA can issue certificates for this domain
  - Riešenie: Publish CAA TXT records pinning your CA. For Let's Encrypt: `0 issue "letsencrypt.org"`. For multiple CAs add additional `0 issue "..."` records. Add `0 iodef "mailto:security@yourdomain.tld"` for misissuance reports.
  - Dôkaz: DNS
- **[UPOZORNENIE]** X-Content-Type-Options
  - Riešenie: Add header: X-Content-Type-Options: nosniff
  - Dôkaz: HTTP-header
- **[UPOZORNENIE]** Referrer-Policy
  - Riešenie: Add header: Referrer-Policy: strict-origin-when-cross-origin — this is the best balance between functionality and privacy.
  - Dôkaz: HTTP-header
- **[UPOZORNENIE]** Permissions-Policy
  - Riešenie: Add: Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=() — disable APIs your site doesn't need.
  - Dôkaz: HTTP-header
- **[UPOZORNENIE]** security.txt (RFC 9116)
  - Riešenie: Create /.well-known/security.txt with Contact, Expires, and Preferred-Languages fields. See securitytxt.org for the generator.
  - Dôkaz: file-probe
- **[UPOZORNENIE]** CDN / WAF Protection
  - Riešenie: Add a CDN/WAF like Cloudflare (free tier), Sucuri, or Fastly. They provide DDoS protection, bot filtering, and SSL management.
  - Dôkaz: HTTP-header
- **[OK]** SSL/TLS Certificate — Valid HTTPS connection established
  - Dôkaz: SSL
- **[OK]** DNSSEC — Zone is DNSSEC-signed (DNSKEY published)
  - Dôkaz: DNS
- **[OK]** HTTP → HTTPS Redirect — HTTP properly redirects to HTTPS
  - Dôkaz: HTTP-header
- **[OK]** Cookie Security Flags — No cookies set on initial response
  - Dôkaz: HTTP-header
- **[OK]** Technology Disclosure — Server: openresty (no version)
  - Dôkaz: HTTP-header
- **[OK]** Subresource Integrity (SRI) — All cross-origin scripts are auto-updating provider scripts where SRI does not apply
  - Dôkaz: HTML-heuristic
- **[OK]** Server Version Disclosure — openresty — version hidden
  - Dôkaz: HTTP-header

### Mobil — 67/100

- **[UPOZORNENIE]** Mobile Performance Score — 61/100 (target: 90+)
  - Riešenie: Optimize for mobile: compress images to WebP, defer non-critical JS, reduce CSS file size. Mobile CPUs are several times slower than desktop — what's fast on desktop is slow on mobile.
  - Dôkaz: PSI-lab
- **[UPOZORNENIE]** Touch Target Size — Some tappable targets are too small or too close together (Lighthouse tap-targets audit)
  - Riešenie: Ensure ALL interactive elements (buttons, links, form fields) are at least 48×48px with 8px minimum spacing between them. Pay special attention to: navigation menus, filter buttons, product variant selectors, and footer links.
  - Dôkaz: PSI-lab · Some tappable targets are too small or too close together (Lighthouse tap-targets audit)
- **[UPOZORNENIE]** Font Size Readability — Some text renders below the 12px legibility threshold (Lighthouse font-size audit)
  - Riešenie: Google's font-size audit flags text under 12px. Find the small text (often footer fine-print, captions, or cookie notices) and raise it; aim for a 16px+ body base with relative units (rem/em) so all text scales legibly on mobile.
  - Dôkaz: PSI-lab · Some text renders below the 12px legibility threshold (Lighthouse font-size audit)
- **[UPOZORNENIE]** PWA Features
  - Riešenie: Consider adding Progressive Web App features: 1) Create manifest.json with app name, icons, and theme color, 2) Register a service worker for offline caching. This makes your store installable on mobile.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Theme Color
  - Riešenie: Add <meta name='theme-color' content='#your-brand-color'> to match your brand. Browsers use this to color the address bar, task switcher, and PWA chrome.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Mobile Navigation (Semantic)
  - Riešenie: Wrap your navigation in a <nav> element. This helps mobile screen readers offer 'skip to navigation' and improves voice navigation (e.g., 'Siri, show me the menu').
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Apple Mobile Web App — Missing: apple-mobile-web-app-capable, status-bar-style
  - Riešenie: Add: <meta name='apple-mobile-web-app-capable' content='yes'>, <meta name='apple-mobile-web-app-status-bar-style' content='default'>, <link rel='apple-touch-icon' href='/icon-180.png'>.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Mobile Sticky CTA — Add-to-cart button found but no sticky/fixed positioning detected
  - Riešenie: Add a sticky add-to-cart bar at the bottom of mobile screens. Use position: sticky or position: fixed with bottom: 0. The CTA should always be visible without scrolling.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Print Stylesheet — Order/invoice page without print styles
  - Riešenie: Add @media print CSS rules to hide navigation, ads, and non-essential elements. Ensure order details, prices, and company info are visible when printed.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Heading Hierarchy (WCAG 1.3.1) — Preskočené úrovne: h2→h4, h2→h5
  - Riešenie: Dodržuj poradie nadpisov h1 → h2 → h3 → h4 bez preskočenia. Screen readers používajú hierarchiu nadpisov na navigáciu. Ak potrebuješ menšie písmo ale rovnakú úroveň, použi CSS triedu, nie nižší heading tag.
  - Dôkaz: HTML-heuristic
- **[INFO]** Payment Methods Detected — Žiadna známa platobná brána nedetekovaná na homepage
  - Dôkaz: HTML-heuristic
- **[INFO]** Express Checkout (Apple Pay + Google Pay) — Apple Pay / Google Pay nedetekované na homepage — express checkout sa zvyčajne zobrazí až v košíku/checkoute
  - Dôkaz: HTML-heuristic
- **[INFO]** SK/CZ Local Payment Methods — Žiadna SK/CZ local payment metóda nedetekovaná na homepage — bankové tlačidlá/QR sa zvyčajne zobrazia až v checkoute
  - Dôkaz: HTML-heuristic
- **[OK]** Viewport Configuration — width=device-width, initial-scale=1
  - Dôkaz: HTML-heuristic
- **[OK]** Content Fits Viewport — No horizontal scrolling needed
  - Dôkaz: HTML-heuristic
- **[OK]** Responsive Design Techniques — Flexbox, CSS Grid, Media queries detected
  - Dôkaz: HTML-heuristic
- **[OK]** Responsive Images (srcset) — 26 image(s) use srcset for responsive sizing
  - Dôkaz: HTML-heuristic
- **[OK]** Form Input Types — Optimized: 4 search
  - Dôkaz: HTML-heuristic
- **[OK]** Form Input Labels (WCAG 3.3.2) — 4/4 inputs majú label
  - Dôkaz: HTML-heuristic
- **[OK]** Link Text Quality (WCAG 2.4.4) — Všetky odkazy majú popisný text
  - Dôkaz: HTML-heuristic

### AI pripravenosť — 49/100

- **[CHYBA]** Structured Data Foundation
  - Riešenie: Add JSON-LD structured data immediately. Priority order: 1) Organization, 2) Product (with offers), 3) BreadcrumbList, 4) WebSite+SearchAction, 5) FAQPage. Use JSON-LD format exclusively — not Microdata or RDFa.
  - Dôkaz: schema
- **[CHYBA]** Organization Schema + Entity Linking
  - Riešenie: Add Organization (or LocalBusiness for physical stores) schema with: name, logo, url, description, contactPoint, address, and sameAs linking to all your official profiles (LinkedIn, Facebook, Wikipedia if available).
  - Dôkaz: schema
- **[CHYBA]** Heading Hierarchy for AI — 0 H1, 10 H2, 17 H3 — poor structure
  - Riešenie: Use exactly 1 H1 (page title), then organize content with H2 sections and H3 subsections. Each heading should describe the content that follows. Never skip heading levels (H1→H3 without H2).
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Content Freshness Signals
  - Riešenie: Add dateModified and datePublished to your JSON-LD schema, and display a visible 'Last updated' date on the page. Update content quarterly at minimum. AI heavily favors fresh, maintained content.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Entity Clarity & Brand Signals
  - Riešenie: Your brand has weak entity signals. Add: 1) Complete OG meta tags, 2) Organization schema with sameAs linking to all official profiles, 3) Consistent NAP (Name, Address, Phone) across the web.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Common Question Coverage — Answers only 1/5 key shopper questions: shipping
  - Riešenie: Your page barely addresses core shopper questions. Add sections covering price, shipping (options + cost), returns/refunds, availability, and payment methods — as visible text, not just in schema. Link to a dedicated FAQ, Shipping, and Returns page.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Knowledge Graph Readiness
  - Riešenie: Build your Knowledge Graph entity: 1) Add @id to Organization JSON-LD, 2) Use identical brand name in title, schema, and OG, 3) Add sameAs to Wikipedia/Wikidata/LinkedIn, 4) Use multiple corroborating schema types.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Image Alt Text Quality for AI — Only 0% quality alt text — 0 missing, 2 poor
  - Riešenie: Audit all images: add descriptive alt text (3-15 words) to every <img>. Include product names, features, materials, colors. This is critical for visual AI search and accessibility compliance.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Content-to-Boilerplate Ratio — Only 20% in main content — mostly boilerplate
  - Riešenie: Wrap your primary content in <main> or <article> tags. AI extracts content from these semantic containers — without them, your product descriptions are mixed with navigation and footer text.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Product Schema Completeness — 71% complete — missing: brand, aggregateRating, itemCondition, gtin/mpn (sampled product page: https://kelo.sk/produkt/damsky-unisuit-x-tmavozeleny)
  - Riešenie: Add missing Product schema fields: brand, aggregateRating, itemCondition, gtin/mpn. Each field improves how AI presents your products. Especially add aggregateRating, since products with ratings show more prominently in AI shopping results.
  - Dôkaz: schema · https://kelo.sk/produkt/damsky-unisuit-x-tmavozeleny · istota: medium
- **[UPOZORNENIE]** FAQ Schema (Direct AI Answers)
  - Riešenie: Add FAQPage schema to every product page and category page. Include 3-5 Q&As per page covering: product specifications, shipping, returns, usage instructions. Format: question (full sentence) + answer (75-150 words).
  - Dôkaz: schema
- **[UPOZORNENIE]** Breadcrumb Schema
  - Riešenie: Add BreadcrumbList schema reflecting your category hierarchy: Home → Category → Subcategory → Product. Each item needs name and URL.
  - Dôkaz: schema
- **[UPOZORNENIE]** Site Search Schema (SearchAction)
  - Riešenie: Add WebSite schema with potentialAction: SearchAction. Define your search URL template so AI assistants and Google can search your store programmatically.
  - Dôkaz: schema
- **[UPOZORNENIE]** Answer-First Content Format — Content doesn't start with a strong summary paragraph
  - Riešenie: Place your most important information in the first 100 words of the page. Use the BLUF method (Bottom Line Up Front): start with what the product IS and why it matters, then elaborate.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Author Expertise Signals (E-E-A-T)
  - Riešenie: For content pages (blog, guides, about): add Article/BlogPosting schema with author property linking to Person schema. Include the author's jobTitle, credentials, and social profiles.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Product Feed (AI Commerce)
  - Riešenie: Create a Google Merchant Center / product feed (XML or CSV). Expose it at a consistent URL and reference it in your sitemap. AI shopping assistants and comparison engines use product feeds for catalog discovery. Tip: validate your Heureka / Zboží / Glami / Merchant feeds for free with Mergado's audit.
  - Dôkaz: file-probe · probed /feed/products.xml, /google-shopping.xml, /export/google-shopping.xml — none returned a product feed
- **[UPOZORNENIE]** Heureka XML Feed
  - Riešenie: Vygeneruj Heureka XML feed na /feed/heureka.xml (alebo /export/heureka.xml). PrestaShop má modul Heureka.cz, WooCommerce má pluginy. Štruktúra: <SHOP><SHOPITEM>...</SHOPITEM></SHOP> s ITEM_ID/PRODUCTNAME/URL/PRICE_VAT/CATEGORYTEXT (povinné) + EAN/PARAM/DELIVERY_DATE (highly recommended pre ranking).
  - Dôkaz: file-probe
- **[UPOZORNENIE]** Extractable Answer Blocks — 3 paragraphs, avg 6 words — too short for citation
  - Riešenie: Optimal paragraphs for AI citation are 40-80 words. Break long paragraphs into focused, self-contained answer blocks. Each should make one clear point that AI can extract and quote.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Statistics & Data Presence — No statistical data found in content
  - Riešenie: Add numbers: pricing comparisons, performance metrics, customer statistics, industry benchmarks. Specific data (e.g., '99.9% uptime', '4.8/5 rating from 2,400 reviews') is what AI quotes most.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Section Length Optimization — Avg section: 101 words — only 0% in 80-200 word optimal range
  - Riešenie: Restructure content into sections of 120-180 words between H2/H3 headings. Each section should cover one topic completely. Split sections over 300 words, expand sections under 80 words.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Q&A Format Headings
  - Riešenie: Add H2/H3 headings phrased as questions your customers ask: 'How much does shipping cost?', 'What sizes are available?', 'How do I return an item?' Follow each with a direct, concise answer.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Return Policy Schema
  - Riešenie: Add MerchantReturnPolicy schema with: returnPolicyCategory (e.g., MerchantReturnFiniteReturnWindow), merchantReturnDays, returnMethod, returnFees. Link it from Product/Offer via hasMerchantReturnPolicy.
  - Dôkaz: schema
- **[UPOZORNENIE]** Shipping Details Schema
  - Riešenie: Add OfferShippingDetails schema with: shippingRate, shippingDestination, deliveryTime (handlingTime + transitTime). AI agents deprioritize products without shipping info.
  - Dôkaz: schema
- **[UPOZORNENIE]** Expert Quotations & Citations
  - Riešenie: Add 2-3 expert quotes or data citations per major page. Use <blockquote> for quotes and link to authoritative sources (.gov, .edu, Wikipedia, industry reports).
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** WebMCP Agentic Readiness
  - Riešenie: WebMCP (W3C Community Group standard, Chrome 146+) lets pages declare structured tools for AI agents. Add toolname and tooldescription attributes to <form> elements, or include a <script type='application/webmcp+json'> manifest.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Trust Widget — Žiaden trust widget (Heureka / Trustpilot / AggregateRating) nedetekovaný
  - Riešenie: Pre SK/CZ shopy: inštaluj Heureka Ověřeno zákazníky widget (zadarmo pre overených predajcov — https://sluzby.heureka.sk). Alternatívne: Trustpilot, Google Reviews s AggregateRating schema. Trust widget na product + kategória + footer.
  - Dôkaz: HTML-heuristic
- **[INFO]** llms.txt (AI Site Descriptor) — Not present — not required for AI visibility
  - Dôkaz: file-probe
- **[INFO]** llms-full.txt (Complete AI Content) — Not present — not required for AI visibility
  - Dôkaz: file-probe
- **[INFO]** Variant Modelling (ProductGroup) — Variant selectors visible on the page — check whether variants are modelled as a ProductGroup
  - Dôkaz: schema · https://kelo.sk/produkt/damsky-unisuit-x-tmavozeleny · istota: medium
- **[INFO]** Reviews & Ratings Schema — No review schema on this homepage — review/rating schema typically lives on product pages
  - Dôkaz: schema
- **[INFO]** AI Plugin Manifest — Not present — not required (the ChatGPT-plugins manifest was retired in 2024)
  - Dôkaz: file-probe
- **[INFO]** GTIN/EAN Coverage — No product feed was sampled — GTIN/EAN coverage could not be verified
  - Dôkaz: HTML-heuristic
- **[INFO]** Speakable Content (Voice AI) — Not present — optional; SpeakableSpecification has limited assistant adoption
  - Dôkaz: HTML-heuristic
- **[INFO]** Delivery Promise — No delivery timing was found in the text of the sampled product page
  - Dôkaz: HTML-heuristic · https://kelo.sk/produkt/damsky-unisuit-x-tmavozeleny · istota: low
- **[INFO]** ai.txt (AI Permissions) — Not present — optional; AI-bot permissions are enforced via robots.txt, not ai.txt
  - Dôkaz: file-probe
- **[INFO]** Agent-Commerce Readiness — 54/100 — čiastočne pripravené (Prístup 100 · Porozumenie 17 · Objaviteľnosť 50 · Transakcia 50)
- **[INFO]** Agent: Prístup — dostane sa agent dnu — 100/100 (2 signály/-ov)
- **[INFO]** Agent: Porozumenie — rozumie produktom — 17/100 (3 signály/-ov)
- **[INFO]** Agent: Objaviteľnosť — nájde celý katalóg — 50/100 (3 signály/-ov)
- **[INFO]** Agent: Transakcia — vie konať (kôš/podmienky) — 50/100 (3 signály/-ov)
- **[OK]** AI Bot Access Policy — No AI bot restrictions (allowed by default)
  - Dôkaz: file-probe
- **[OK]** Content Accessibility for AI — 665 words in raw HTML (2.2% text ratio) — readable by AI crawlers without executing JS
  - Dôkaz: HTML-heuristic
- **[OK]** Content Depth for AI — 665 words — rich content for AI analysis and citation
  - Dôkaz: HTML-heuristic
- **[OK]** Semantic HTML Structure — 4/6 semantic elements: <article>, <header>, <footer>, <aside>
  - Dôkaz: HTML-heuristic
- **[OK]** Structured Content (Lists & Tables) — 10 lists + 10 tables — AI-friendly structured content
  - Dôkaz: HTML-heuristic
- **[OK]** Internal Link Density — 29 contextual internal links per 1,000 words — strong knowledge graph signal
  - Dôkaz: HTML-heuristic
- **[OK]** Canonical Tag for AI Deduplication — Self-referencing canonical — clean signal for AI
  - Dôkaz: HTML-heuristic
- **[OK]** Content Readability for AI — Flesch-Kincaid Grade 8 — appropriate for technical/B2B audience
  - Dôkaz: HTML-heuristic

### GDPR — 60/100

- **[CHYBA]** Cookie Consent Banner (CMP)
  - Riešenie: Install a certified consent management platform: Cookiebot, OneTrust, Usercentrics, or CookieYes. The CMP must block ALL non-essential cookies and scripts until explicit consent is given (opt-in, not opt-out).
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Consumer Dispute Resolution Links — No EU ODR platform or supervisory-authority link found
  - Riešenie: Add the EU ODR platform link (https://ec.europa.eu/consumers/odr) and your national authority (SK: Slovenská obchodná inšpekcia / soi.sk, CZ: Česká obchodní inspekce / coi.cz) to the footer and Terms & Conditions.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Terms & Conditions Page
  - Riešenie: Create Terms & Conditions (AGB) covering: ordering process, payment, delivery, returns, warranty, and dispute resolution. Link it from the footer and checkout.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Data Encryption (No Mixed Content)
  - Riešenie: Replace all http:// resource URLs with https://. Check images, scripts, stylesheets, and iframes. GDPR Article 32 requires 'appropriate technical measures' including encryption.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Right to Erasure (Data Deletion)
  - Riešenie: Provide a clear mechanism for users to request data deletion — either a dedicated page, a form, or explicit instructions in your privacy policy. Include a 'Delete my account' option in user settings.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Withdrawal of Consent Mechanism
  - Riešenie: Provide a clear way to withdraw consent: an 'unsubscribe' link in emails, a 'cookie settings' button in the footer, and a 'revoke consent' section in your privacy policy.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Withdrawal & Complaints Policy — Missing: right of withdrawal (odstúpenie od zmluvy)
  - Riešenie: Publish and footer-link a Withdrawal policy (14-day right of withdrawal + model withdrawal form) and a Complaints procedure (reklamačný poriadok / reklamační řád). Reference them at checkout.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Online Withdrawal Function — No online withdrawal function or withdrawal information detected
  - Riešenie: Add a clearly labelled withdrawal function to your online interface (SK label: 'odstúpiť od zmluvy tu'), easy to find and continuously available during the 14-day withdrawal window — e.g. in the customer account / order detail plus a footer link. A logged-in customer must be able to submit a withdrawal declaration without re-identifying.
  - Dôkaz: HTML-heuristic · istota: low
- **[UPOZORNENIE]** GPSR Manufacturer Info — No manufacturer/importer identification found on the sampled product page
  - Riešenie: On every product page state the manufacturer's name, postal address and an electronic contact (email or web form). For goods made outside the EU, also name the EU importer. Structured `manufacturer` in Product schema satisfies this cleanly and is machine-readable.
  - Dôkaz: HTML-heuristic · https://kelo.sk/produkt/damsky-unisuit-x-tmavozeleny · istota: low
- **[OK]** Tracking Scripts & Consent — No tracking scripts detected
  - Dôkaz: HTML-heuristic
- **[OK]** Privacy Policy Page — https://kelo.sk/zasady-osobnych-udajov-a-cookies
  - Dôkaz: HTML-heuristic
- **[OK]** Cookie Policy — Separate cookie policy detected
  - Dôkaz: HTML-heuristic
- **[OK]** Legal Contact / Imprint Page — https://kelo.sk/o-nas
  - Dôkaz: HTML-heuristic
- **[OK]** Third-party Data Sharing — 1 third-party domain(s)
  - Dôkaz: HTML-heuristic
- **[OK]** Data Protection Officer Contact — DPO / data protection contact found
  - Dôkaz: HTML-heuristic

### Zraniteľnosti — 70/100

- **[CHYBA]** CMS Version Disclosure — "WordPress 7.0.2" exposed in meta generator
  - Riešenie: Remove the meta generator tag entirely. In PrestaShop: remove from header.tpl. In WordPress: add remove_action('wp_head', 'wp_generator') to functions.php.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Form CSRF Protection — 4 form(s) without CSRF tokens
  - Riešenie: Add CSRF token validation to every form. Most CMS frameworks have built-in CSRF protection — make sure it's enabled on all forms, including search and newsletter signup.
  - Dôkaz: HTML-heuristic · istota: low
- **[CHYBA]** Suspicious Inline Script Patterns — Detected: Dynamic script injection
  - Riešenie: Review all inline scripts for obfuscated code. Magecart attackers inject payment skimmers disguised as analytics or GTM scripts. Compare your current HTML with a known-good version. Consider using CSP with strict nonces.
  - Dôkaz: file-probe
- **[UPOZORNENIE]** CMS Information Files — readme.html accessible — reveals version details
  - Riešenie: Delete or block access to readme.html. These files reveal your exact CMS version and update history.
  - Dôkaz: file-probe
- **[UPOZORNENIE]** Open Redirect Detection — URL redirect parameter found in page links
  - Riešenie: Validate all redirect URLs server-side against a whitelist. Never allow user-controlled redirect targets without validation.
  - Dôkaz: HTML-heuristic · istota: low
- **[UPOZORNENIE]** WordPress User Enumeration — /wp-json/wp/v2/users exposes user accounts
  - Riešenie: Restrict the REST API users endpoint. Add to functions.php: add_filter('rest_endpoints', function($endpoints) { unset($endpoints['/wp/v2/users']); return $endpoints; }); Or use a security plugin.
  - Dôkaz: file-probe
- **[UPOZORNENIE]** Cross-Origin Isolation
  - Riešenie: Add Cross-Origin-Opener-Policy: same-origin and Cross-Origin-Resource-Policy: same-origin headers. These protect against Spectre-type side-channel attacks.
  - Dôkaz: HTTP-header
- **[UPOZORNENIE]** Mixed Content Resources — 1 HTTP resource(s) on HTTPS page
  - Riešenie: Replace HTTP URLs with HTTPS: http://gmpg.org/xfn/11
  - Dôkaz: file-probe
- **[INFO]** BIMI Brand Indicators
  - Dôkaz: file-probe
- **[OK]** Sensitive Files Exposed — .env, .git, composer.json — all properly blocked
  - Dôkaz: file-probe
- **[OK]** Install Script Exposed — No /install/ or /setup/ paths accessible
  - Dôkaz: file-probe
- **[OK]** Directory Listing — Disabled — file structure hidden
  - Dôkaz: file-probe
- **[OK]** Admin Panel at Default URL — Not found at common paths (/admin, /wp-admin, /administrator, /backoffice)
  - Dôkaz: file-probe
- **[OK]** Debug Mode / Error Exposure — No debug indicators found in page output
  - Dôkaz: HTML-heuristic
- **[OK]** SPF Record (Email Security) — SPF configured: v=spf1 a mx include:_spf.m1.websupport.sk -all
  - Dôkaz: DNS
- **[OK]** DMARC Policy (Email Auth) — DMARC enforced: p=quarantine
  - Dôkaz: DNS
- **[OK]** DKIM Signing (Email Auth) — DKIM configured (selectors: selector1, selector2, mail)
  - Dôkaz: file-probe

### NIS2

- **[INFO]** NIS2 Compliance — Not in scope — your business is below NIS2 thresholds (Annex I/II sector + 50+ employees / €10M+ turnover).

### Prístupnosť

- **[INFO]** EAA Scope — Not legally required yet — the European Accessibility Act (SK 351/2022 Z. z. § 2 ods. 3, CZ 424/2023 Sb., Dir. 2019/882) exempts micro-enterprises (< 10 staff & ≤ €2M). Your registry data indicates a micro-enterprise, so accessibility is optional for now — but it still lifts SEO, conversions, and reaches the ~15% of shoppers with a disability.

---

Zulien Score je bezplatný automatizovaný heuristický audit pokrývajúci výkon (Core Web Vitals, TTFB, page weight), SEO (meta tagy, štruktúrované dáta, sitemap), bezpečnosť (SSL/TLS, HSTS, CSP), mobilnú použiteľnosť, AI pripravenosť, súlad s GDPR / ePrivacy a zraniteľnosti. Výsledky sú cache-ované na 6 hodín a re-skenovateľné na požiadanie.

[Zobraziť plnú interaktívnu správu na Zulien Score →](https://score.zulien.sk/cs/r/kelo.sk)
