# 4home.sk — Zulien Score 58/100 (známka C)

> Bezplatný audit e-shopu: 58/100 celkové skóre. 100+ kontrol v 7 kategóriách (výkon, SEO, bezpečnosť, mobil, AI pripravenosť, GDPR, zraniteľnosti).

- **Auditovaný:** https://4home.sk
- **Dátum auditu:** 2026-07-29
- **Plná správa:** https://score.zulien.sk/cs/r/4home.sk
- **JSON API:** https://euyszfecnvwsqpigioyx.supabase.co/functions/v1/api-v1/score/4home.sk

## Zhrnutie auditu

Váš web potrebuje zlepšenia v bezpečnosti a dostupnosti. Ihneď pridajte HSTS zabezpečenie do svojho servera. Pozitívne je vaša SEO pripravená a rady na AI technológie.

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

| Kategória | Skóre |
|---|---|
| Výkon | 53/100 |
| SEO | 65/100 |
| Bezpečnosť | 55/100 |
| Mobil | 64/100 |
| AI pripravenosť | 66/100 |
| GDPR | 63/100 |
| Zraniteľnosti | 62/100 |
| Prístupnosť | 36/100 |

## Detailné nálezy

### Výkon — 53/100

- **[CHYBA]** First Contentful Paint (FCP) — 3.54s (good: <1.8s)
  - Riešenie: Critical: enable full-page caching, eliminate render-blocking resources, preload critical CSS, defer all non-essential JS, and compress images.
  - Dôkaz: PSI-lab
- **[CHYBA]** Speed Index — 8.08s (good: <3.4s)
  - Riešenie: Your page loads very slowly visually. Prioritize critical rendering path: inline critical CSS, defer non-essential JS, preload hero image, and use a CDN.
  - Dôkaz: PSI-lab
- **[CHYBA]** Total Page Weight — 4.5 MB, 204 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]** Unused Code (CSS + JS) — 737 KB wasted on unused code!
  - Riešenie: You're loading 737 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 18% of 11 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
- **[UPOZORNENIE]** Server Response Time (TTFB) — 246ms (optimal: <200ms)
  - Riešenie: Optimize server response: enable opcode caching (OPcache), add Redis/Memcached for database caching, use a CDN. Check slow database queries.
  - Dôkaz: PSI-lab
- **[UPOZORNENIE]** Largest Contentful Paint (LCP) — 3.84s (good: <2.5s) — Core Web Vital
  - Riešenie: Optimize your largest element (usually hero image or product image): preload it with <link rel='preload'>, use WebP/AVIF format, set explicit width/height, and serve from CDN.
  - Dôkaz: PSI-lab
- **[UPOZORNENIE]** Total Blocking Time (TBT) — 584ms (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
- **[INFO]** Render-blocking Resources — Not measured — PageSpeed did not return the render-blocking audit for this URL
  - Dôkaz: PSI-lab
- **[OK]** Cumulative Layout Shift (CLS) — 0.000 — Core Web Vital ✓
  - Dôkaz: PSI-lab
- **[OK]** Text Compression (gzip/brotli) — All text resources properly compressed
  - Dôkaz: HTTP-header
- **[OK]** Lazy Loading — 0% of images use native lazy loading (5/1307)
  - Dôkaz: HTML-heuristic
- **[OK]** CSS File Count — 3 CSS file(s) — well consolidated
  - Dôkaz: HTML-heuristic
- **[OK]** Critical CSS Strategy — Critical CSS / async CSS loading detected
  - Dôkaz: PSI-lab

### SEO — 65/100

- **[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 Image Format — og:image returned text/html
  - Riešenie: Make sure the og:image URL returns an image (Content-Type: image/png or image/jpeg). Common cause: returning HTML or JSON from a broken redirect.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Image Alt Attributes — Only 18% of 1307 images have alt text
  - Riešenie: 1077 images lack alt text. Write unique, descriptive alt text for each product image. Include product name and key details.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Internal Linking — Only 2 internal link(s) — orphaned page
  - Riešenie: This page has very few internal links. Add links to related products, categories, guides, and your main navigation. Orphaned pages rank poorly.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Meta Title — 23 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]** Meta Description — 185 chars (optimal: 120-160)
  - Riešenie: Trim your meta description to 120-160 characters. Place the most important information and CTA in the first 120 chars.
  - 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 — 0% next-gen formats — 1231 JPEG, 26 PNG images
  - Riešenie: Convert all images to WebP format. Most CMS platforms have plugins for automatic WebP conversion. Use AVIF for even better compression.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Canonical URL Consistency — Canonical points to different URL: https://www.4home.sk
  - Riešenie: Your canonical URL doesn't match the current page URL. Ensure the canonical points to the preferred version (with or without trailing slash, www vs non-www). Inconsistent canonicals confuse search engines.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Accessibility Fundamentals — 1/4 a11y signals — missing: ARIA roles, ARIA labels, skip navigation link
  - Riešenie: Add: ARIA landmark roles (role='navigation', role='main'), aria-label on interactive elements, a 'Skip to content' link, and lang attribute on <html>.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Color Contrast Signal — 6 very light text colors found — potential contrast issues
  - Riešenie: Ensure text has a minimum 4.5:1 contrast ratio against its background (WCAG AA). Use tools like WebAIM Contrast Checker. Light gray text on white is the most common violation.
  - Dôkaz: HTML-heuristic
- **[INFO]** Text-to-HTML Ratio — 3% ratio but 5532 words — content is substantial; the low ratio is markup/inline-JS bloat, not thin content
  - Dôkaz: HTML-heuristic
- **[OK]** Content Structure (H2 Headings) — 14 H2 subheadings found
  - Dôkaz: HTML-heuristic
- **[OK]** Open Graph Tags — og:title, og:description, og:image
  - Dôkaz: HTML-heuristic
- **[OK]** Canonical URL — https://www.4home.sk
  - Dôkaz: HTML-heuristic
- **[OK]** Structured Data (JSON-LD) — 1 block(s): Organization, WebSite, SearchAction, EntryPoint
  - Dôkaz: schema
- **[OK]** JSON-LD Validity — 1 block(s) parse cleanly
  - Dôkaz: HTML-heuristic
- **[OK]** robots.txt — Present, references sitemap
  - Dôkaz: file-probe
- **[OK]** XML Sitemap — Found with ~35+ URLs
  - Dôkaz: file-probe
- **[OK]** HTML Language Attribute — lang="sk"
  - Dôkaz: HTML-heuristic
- **[OK]** Favicon — Favicon detected
  - Dôkaz: file-probe
- **[OK]** Semantic HTML Structure — 4/6 semantic elements: <article>, <nav>, <header>, <footer>
  - Dôkaz: HTML-heuristic
- **[OK]** Content Depth — 5532 words — sufficient content
  - Dôkaz: HTML-heuristic
- **[OK]** Deep Heading Hierarchy — H2: 14, H3: 28 — well-structured content
  - Dôkaz: HTML-heuristic
- **[OK]** Empty/Dead Links — 1 minor dead link(s) — acceptable
  - Dôkaz: HTML-heuristic

### Bezpečnosť — 55/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]** Permissions-Policy
  - Riešenie: Add: Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=() — disable APIs your site doesn't need.
  - Dôkaz: HTTP-header
- **[UPOZORNENIE]** Cookie Security Flags — 3 cookie(s): 3 missing Secure, 3 missing HttpOnly, 3 missing SameSite
  - Riešenie: Set all cookies with: Secure (HTTPS only), HttpOnly (no JS access), SameSite=Lax or Strict (CSRF protection). Session cookies MUST have all three.
  - Dôkaz: HTTP-header
- **[UPOZORNENIE]** Technology Disclosure — Server: Microsoft-IIS/10.0, X-Powered-By: ASP.NET
  - Riešenie: Hide server version: set ServerTokens Prod (Apache) or server_tokens off (Nginx). Remove X-Powered-By header completely.
  - Dôkaz: HTTP-header
- **[UPOZORNENIE]** Subresource Integrity (SRI) — Only 0/2 SRI-eligible third-party scripts have integrity hashes
  - Riešenie: Add integrity='sha384-...' and crossorigin='anonymous' to version-pinned third-party <script> tags (use srihash.org). Auto-updating provider scripts (analytics, payment SDKs, consent tools) are correctly excluded — they can't use SRI.
  - Dôkaz: HTML-heuristic
- **[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
- **[UPOZORNENIE]** Iframe Sandboxing — 1/1 unknown iframe(s) without sandbox attribute
  - Riešenie: Add a sandbox attribute to non-provider <iframe> elements. Use sandbox='allow-scripts allow-same-origin' for third-party embeds. Trusted media/payment embeds (YouTube, Maps, Stripe, reCAPTCHA) are correctly excluded — they need full privileges to work.
  - Dôkaz: HTML-heuristic · istota: low
- **[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]** Referrer-Policy — no-referrer-when-downgrade
  - Dôkaz: HTTP-header
- **[OK]** Server Version Disclosure — Microsoft-IIS/10.0 — version hidden
  - Dôkaz: HTTP-header
- **[OK]** Password Field Security — 1 password field(s) — allow password manager autofill
  - Dôkaz: HTTP-header

### Mobil — 64/100

- **[UPOZORNENIE]** Mobile Performance Score — 59/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]** Responsive Design Techniques
  - Riešenie: Implement responsive CSS with @media queries for key breakpoints: 480px (small mobile), 768px (tablet), 1024px (laptop). Use Flexbox and CSS Grid for fluid layouts.
  - Dôkaz: HTML-heuristic
- **[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]** Form Input Types — phone fields use type='text' instead of type='tel'
  - Riešenie: Use semantic input types: type='email' for email (shows @ keyboard), type='tel' for phone (shows number pad), type='search' for search (shows search button). These trigger optimized mobile keyboards.
  - 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]** Text Overflow Handling — No word-break/overflow-wrap CSS detected
  - Riešenie: Add 'overflow-wrap: break-word' to your body or main content container. Without it, long URLs, product SKUs, or German compound words can break mobile layouts.
  - 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]** Express Checkout (Apple Pay + Google Pay) — Iba Apple Pay detekovaný — chýba Google Pay
  - Riešenie: Pridaj Google Pay cez Stripe, Adyen alebo Mollie. Mobile conversion rate rastie keď je express checkout dostupný.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Form Input Labels (WCAG 3.3.2) — 220/225 inputs má label (98%)
  - Riešenie: 5 input elementov nemá <label for="id">, aria-label, aria-labelledby alebo title. Placeholder nie je dostatočný (WCAG 3.3.2). Pridaj <label for="email">Email</label><input id="email"> alebo <input aria-label="Email">.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Heading Hierarchy (WCAG 1.3.1) — Preskočené úrovne: h2→h4
  - 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
- **[UPOZORNENIE]** Link Text Quality (WCAG 2.4.4) — 1 odkazov má generický text ("click here", "more", "tu"...)
  - Riešenie: Nahraď 'Click here' / 'Read more' / 'Viac' popisným textom: 'Prečítaj si viac o GDPR', 'Pozri cenník modulov'. Screen readers čítajú odkazy mimo kontextu — samostatné 'viac' nemá význam.
  - 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]** Theme Color — theme-color meta tag present
  - Dôkaz: HTML-heuristic
- **[OK]** Mobile Navigation (Semantic) — <nav> element present — proper navigation landmark
  - Dôkaz: HTML-heuristic
- **[OK]** Responsive Images (srcset) — 27 image(s) use srcset for responsive sizing
  - Dôkaz: HTML-heuristic
- **[OK]** Payment Methods Detected — 1 method(s): Apple Pay
  - Dôkaz: HTML-heuristic

### AI pripravenosť — 66/100

- **[CHYBA]** Heading Hierarchy for AI — 0 H1, 14 H2, 28 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]** Internal Link Density — Almost no internal links in content
  - Riešenie: Add contextual internal links throughout your content: link to related products, categories, guides, and FAQs. Use descriptive anchor text (not 'click here'). Target 3-5 links per 1,000 words.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Image Alt Text Quality for AI — Only 3% quality alt text — 1077 missing, 190 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
- **[UPOZORNENIE]** Structured Data Foundation — 2 distinct schema types (BusinessEntity, WebSite) — add more for comprehensive AI coverage
  - Riešenie: Expand your structured data with genuinely different types: Organization, Product, BreadcrumbList, WebSite with SearchAction, and FAQPage. Adding synonyms of the same entity (Store + LocalBusiness + Organization) does not help — variety of meaning does.
  - Dôkaz: schema
- **[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]** Structured Content (Lists & Tables) — 222 lists found — consider adding comparison tables
  - Riešenie: Add comparison tables to your content. Use <ul>/<ol> for feature lists, specifications, and benefits. Use <table> for product comparisons, pricing tiers, and specifications. AI extracts structured content much faster than paragraphs.
  - 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 — 21 paragraphs, avg 251 words — too long for AI snippets
  - 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]** Section Length Optimization — Avg section: 197 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]** Canonical Tag for AI Deduplication — Canonical points to different URL: https://www.4home.sk
  - Riešenie: Verify this canonical is intentional. AI models cluster near-duplicate URLs and choose one representative page. If canonical points to a different URL, AI will only index that target URL, not this page.
  - 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]** Content Readability for AI — Grade 20 — too complex for broad AI citation
  - Riešenie: Simplify sentences (target 15-20 words average), use common words, break complex ideas into shorter paragraphs. AI extracts content for general audiences — if it's too academic, AI skips it.
  - Dôkaz: HTML-heuristic
- **[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]** Customer Reviews — Aggregate — 1 source: Heureka Ověřeno
  - Riešenie: Single review source detected without published reviewCount. Add AggregateRating JSON-LD (ratingValue + reviewCount + bestRating) so the count is machine-readable, and add a second source (Heureka Ověřeno + Trustpilot is the SK/CZ standard).
  - 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]** Product Schema Completeness — No Product schema on this homepage — Product schema lives on product detail pages, which this single-URL scan didn't visit
  - Dôkaz: schema
- **[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]** Speakable Content (Voice AI) — Not present — optional; SpeakableSpecification has limited assistant adoption
  - Dôkaz: HTML-heuristic
- **[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 — 73/100 — čiastočne pripravené (Prístup 100 · Porozumenie 75 · Objaviteľnosť 67 · Transakcia 50)
- **[INFO]** Agent: Prístup — dostane sa agent dnu — 100/100 (2 signály/-ov)
- **[INFO]** Agent: Porozumenie — rozumie produktom — 75/100 (2 signály/-ov)
- **[INFO]** Agent: Objaviteľnosť — nájde celý katalóg — 67/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 — 5532 words in raw HTML (2.8% text ratio) — readable by AI crawlers without executing JS
  - Dôkaz: HTML-heuristic
- **[OK]** Organization Schema + Entity Linking — Organization found with 2 sameAs links — strong entity identity
  - Dôkaz: schema
- **[OK]** Site Search Schema (SearchAction) — WebSite SearchAction configured — AI can search your store
  - Dôkaz: schema
- **[OK]** Content Depth for AI — 5532 words — rich content for AI analysis and citation
  - Dôkaz: HTML-heuristic
- **[OK]** Answer-First Content Format — First paragraph: 59 words — good content density above the fold
  - Dôkaz: HTML-heuristic
- **[OK]** Semantic HTML Structure — 4/6 semantic elements: <article>, <nav>, <header>, <footer>
  - Dôkaz: HTML-heuristic
- **[OK]** Entity Clarity & Brand Signals — OG tags complete + 2 sameAs links: Facebook, YouTube
  - Dôkaz: HTML-heuristic
- **[OK]** Statistics & Data Presence — 45 data points found — strong citation magnet
  - Dôkaz: HTML-heuristic
- **[OK]** Common Question Coverage — Answers 4/5 key shopper questions: price, shipping, availability, payment
  - Dôkaz: HTML-heuristic
- **[OK]** Knowledge Graph Readiness — 3/4 entity signals — strong Knowledge Graph presence
  - Dôkaz: HTML-heuristic
- **[OK]** Content-to-Boilerplate Ratio — Semantic content containers found
  - Dôkaz: HTML-heuristic
- **[OK]** Heureka Ověřeno Widget — Heureka trust widget detected
  - Dôkaz: HTML-heuristic

### GDPR — 63/100

- **[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]** Cookie Policy
  - Riešenie: Create a separate cookie policy page listing every cookie by: name, provider, purpose, category (necessary/analytics/marketing), and expiration. Most CMPs auto-generate this.
  - 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]** Newsletter Consent — Newsletter signup found without visible consent checkbox
  - Riešenie: Add an unchecked consent checkbox to your newsletter form: 'I agree to receive marketing emails and have read the Privacy Policy [link].' Pre-checked boxes are not valid consent under GDPR.
  - 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]** Age Verification — Age-restricted content detected without age gate
  - Riešenie: Implement age verification for alcohol, tobacco, gambling, or adult content. Use a date-of-birth check or age confirmation modal before accessing the site.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Omnibus Price Disclosure (30-day low) — Discounts shown without a visible 'lowest price in last 30 days' reference
  - Riešenie: Whenever you advertise a price reduction, display the lowest price applied in the 30 days before the discount, next to the new price. In PrestaShop add a 30-day price-history anchor (e.g. our zu_pricehistory module) so every sale label is compliant automatically.
  - Dôkaz: HTML-heuristic · istota: low
- **[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
- **[INFO]** Cookie Consent Banner (CMP) — No CMP in server HTML, but GTM is present — consent banner may be injected at runtime (not verifiable server-side)
  - Dôkaz: HTML-heuristic · 1 GTM container(s) detected · istota: low
- **[OK]** Tracking Scripts & Consent — No tracking scripts detected
  - Dôkaz: HTML-heuristic
- **[OK]** Privacy Policy Page — /clanky/ochrana-osobnych-udajov/
  - Dôkaz: HTML-heuristic
- **[OK]** Legal Contact / Imprint Page — /clanky/o-nas/
  - Dôkaz: HTML-heuristic
- **[OK]** Terms & Conditions Page — /clanky/hlavne-obchodne-podmienky/
  - Dôkaz: HTML-heuristic
- **[OK]** Third-party Data Sharing — 2 third-party domain(s)
  - Dôkaz: HTML-heuristic
- **[OK]** Data Protection Officer Contact — DPO / data protection contact found
  - Dôkaz: HTML-heuristic

### Zraniteľnosti — 62/100

- **[CHYBA]** Form CSRF Protection — 6 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]** Payment Page Security — Payment page missing: No HSTS, No CSP, No X-Content-Type-Options, No clickjacking protection
  - Riešenie: CRITICAL: Your payment page is missing security headers: No HSTS, No CSP, No X-Content-Type-Options, No clickjacking protection. PCI DSS Requirement 6.5 mandates protection against common vulnerabilities on pages handling card data.
  - Dôkaz: file-probe
- **[CHYBA]** Clickjacking on Sensitive Page — Login/payment page without X-Frame-Options or CSP frame-ancestors
  - Riešenie: URGENT: Add X-Frame-Options: DENY and CSP frame-ancestors 'none' to pages with login forms or payment fields. Attackers can overlay your page in a transparent iframe.
  - Dôkaz: file-probe
- **[UPOZORNENIE]** X-Powered-By Header — ASP.NET
  - Riešenie: Remove the X-Powered-By header. PHP: add 'expose_php = Off' to php.ini. Express.js: app.disable('x-powered-by').
  - Dôkaz: file-probe
- **[UPOZORNENIE]** DMARC Policy (Email Auth) — DMARC set to p=none (monitoring only, no enforcement)
  - Riešenie: Upgrade DMARC policy from p=none to p=quarantine or p=reject. p=none only monitors — it doesn't block spoofed emails. Start with quarantine, then move to reject after verifying legitimate emails pass.
  - Dôkaz: DNS
- **[UPOZORNENIE]** DKIM Signing (Email Auth)
  - Riešenie: Configure DKIM signing through your email provider (Google Workspace, Microsoft 365, Mailchimp, SendGrid). Publish the DKIM public key as a TXT record at <selector>._domainkey.yourdomain.com.
  - Dôkaz: file-probe
- **[UPOZORNENIE]** Mixed Content Resources — 2 HTTP resource(s) on HTTPS page
  - Riešenie: Replace HTTP URLs with HTTPS: http://cdn.4home.cz/8885b095-2506-4278-8f4c-c19ade2f7604/b2b.png, http://obchody.heureka.sk/4home-sk/recenze
  - Dôkaz: file-probe
- **[UPOZORNENIE]** Login Form Security — Login form blocks password manager autofill
  - Riešenie: Remove autocomplete='off' from login forms. Password managers improve security by enabling unique, complex passwords per site.
  - Dôkaz: file-probe
- **[OK]** CMS Version Disclosure — No generator tag — CMS identity hidden
  - Dôkaz: HTML-heuristic
- **[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.mail4eshop.com include:_spf.quanti.cz include:Spf.prote
  - Dôkaz: DNS

### NIS2

- **[INFO]** NIS2 Compliance — Scope undetermined — IČO/company enrichment unavailable for this domain.

### Prístupnosť — 36/100

- **[CHYBA]** Image Alt Text — 1077 of 1307 images have no alt attribute
  - Riešenie: Add descriptive alt text to every meaningful image; use alt="" for purely decorative ones so screen readers skip them.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Heading Structure — The page has no <h1> heading
  - Riešenie: Add exactly one <h1> describing the page, then use <h2>/<h3> in order without skipping levels.
  - Dôkaz: HTML-heuristic
- **[CHYBA]** Landmark Regions — No <main> landmark region found
  - Riešenie: Wrap the primary content in <main> and use <nav>, <header>, <footer> for the page regions.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Form Labels — 5 of 225 form inputs missing a label
  - Riešenie: Add a <label for> or aria-label to the remaining inputs.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Skip Link — No skip-to-content link detected
  - Riešenie: Add a visually-hidden "Skip to content" link as the first focusable element, targeting <main id="main">.
  - Dôkaz: HTML-heuristic · istota: low
- **[INFO]** EAA Legal Basis — In scope for the European Accessibility Act (in force 28.6.2025): SK zákon 351/2022 Z. z., CZ zákon 424/2023 Sb., Dir. (EU) 2019/882 — assessed against EN 301 549. Inger provides EAA remediation audits.
- **[OK]** Page Language — <html lang="sk"> is set
  - Dôkaz: HTML-heuristic
- **[OK]** Link Text — Links use descriptive text
  - Dôkaz: HTML-heuristic · istota: low
- **[OK]** Zoom & Scaling — Pinch-zoom is not disabled
  - Dôkaz: HTML-heuristic

---

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/4home.sk)
