# hetzner.truckershop.sk — Zulien Score 79/100 (známka B)

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

- **Auditovaný:** https://hetzner.truckershop.sk/
- **Platforma:** PrestaShop
- **Firma:** Auto-Piko, s.r.o.
- **Dátum auditu:** 2026-07-29
- **Plná správa:** https://score.zulien.sk/sk/r/hetzner.truckershop.sk
- **JSON API:** https://euyszfecnvwsqpigioyx.supabase.co/functions/v1/api-v1/score/hetzner.truckershop.sk

## Zhrnutie auditu

Váš web je v dobrom stave, ale má priestor na zlepšenie v bezpečnosti. Najskôr pridajte XML Sitemap pre lepšiu viditeľnosť v Google. Výborná správa: Váš web je už optimalizovaný pre prístupnosť a SEO.

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

| Kategória | Skóre |
|---|---|
| Výkon | 69/100 |
| SEO | 89/100 |
| Bezpečnosť | 82/100 |
| Mobil | 67/100 |
| AI pripravenosť | 84/100 |
| GDPR | 80/100 |
| Zraniteľnosti | 79/100 |
| Prístupnosť | 89/100 |

## Detailné nálezy

### Výkon — 69/100

- **[CHYBA]** Largest Contentful Paint (LCP) — 4.86s (good: <2.5s) — Core Web Vital FAILING
  - Riešenie: Urgent: your largest content element loads too slowly. 1) Preload hero image, 2) Convert to WebP/AVIF, 3) Serve from CDN, 4) Remove render-blocking JS before it, 5) Consider lazy loading all other images.
  - Dôkaz: PSI-lab
- **[CHYBA]** Total Page Weight — 7.0 MB, 183 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) — 653 KB wasted on unused code!
  - Riešenie: You're loading 653 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 25% of 4 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]** 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 — no-store, no-cache, 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
- **[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) — 25ms
  - Dôkaz: PSI-lab
- **[OK]** First Contentful Paint (FCP) — 1.12s
  - Dôkaz: PSI-lab
- **[OK]** Total Blocking Time (TBT) — 122ms
  - Dôkaz: PSI-lab
- **[OK]** Cumulative Layout Shift (CLS) — 0.057 — Core Web Vital ✓
  - Dôkaz: PSI-lab
- **[OK]** Speed Index — 1.99s
  - Dôkaz: PSI-lab
- **[OK]** Text Compression (gzip/brotli) — All text resources properly compressed
  - Dôkaz: HTTP-header
- **[OK]** Resource Hints (Preload/Preconnect) — 0 preload, 3 preconnect hint(s)
  - Dôkaz: HTML-heuristic
- **[OK]** Lazy Loading — 86% of images use native lazy loading (187/218)
  - Dôkaz: HTML-heuristic
- **[OK]** HTTP/3 (QUIC) Support — HTTP/3 enabled via Alt-Svc header
  - Dôkaz: HTTP-header
- **[OK]** CSS File Count — 2 CSS file(s) — well consolidated
  - Dôkaz: HTML-heuristic

### SEO — 89/100

- **[CHYBA]** XML Sitemap
  - Riešenie: Generate an XML sitemap at /sitemap.xml listing all important pages. Exclude noindex pages, filters, and duplicate URLs. Reference it in robots.txt.
  - Dôkaz: file-probe
- **[UPOZORNENIE]** Image Format Optimization — Only 13% next-gen formats — 189 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 — 10 dead links (7 empty, 3 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]** Broken Image Sources — 1 image(s) with empty src attribute
  - Riešenie: Fix images with empty src=''. Either add proper URLs or use loading='lazy' with valid data-src for lazy-loaded images.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Sitemap Host Consistency — robots.txt Sitemap points to truckershop.sk (page is hetzner.truckershop.sk)
  - Riešenie: Update the Sitemap: line in robots.txt to your canonical host. A staging/dev hostname (new., staging., dev.) leaks pre-production to Google and feeds crawlers URLs that 404 or duplicate the live site.
  - Dôkaz: HTML-heuristic
- **[INFO]** Text-to-HTML Ratio — 3% ratio but 2722 words — content is substantial; the low ratio is markup/inline-JS bloat, not thin content
  - Dôkaz: HTML-heuristic
- **[OK]** Meta Title — 47 chars — "TRUCKERSHOP.SK - Vybavenie pre nákladnú dopravu"
  - Dôkaz: HTML-heuristic
- **[OK]** Meta Description — 157 chars
  - Dôkaz: HTML-heuristic
- **[OK]** H1 Heading — "TRUCKERSHOP.SK – Vybavenie, doplnky a náhradné diely pre kam…"
  - Dôkaz: HTML-heuristic
- **[OK]** Content Structure (H2 Headings) — 7 H2 subheadings found
  - Dôkaz: HTML-heuristic
- **[OK]** Open Graph Tags — og:title, og:description, og:image, og:type
  - Dôkaz: HTML-heuristic
- **[OK]** Open Graph Image Format — image/jpeg
  - Dôkaz: HTML-heuristic
- **[OK]** Twitter/X Cards — Card type: summary_large_image
  - Dôkaz: HTML-heuristic
- **[OK]** Canonical URL — https://hetzner.truckershop.sk/
  - Dôkaz: HTML-heuristic
- **[OK]** Structured Data (JSON-LD) — 6 block(s): Organization, ImageObject, WebPage, WebSite
  - Dôkaz: schema
- **[OK]** JSON-LD Validity — 6 block(s) parse cleanly
  - Dôkaz: HTML-heuristic
- **[OK]** robots.txt — Present, references sitemap
  - Dôkaz: file-probe
- **[OK]** HTML Language Attribute — lang="sk-SK"
  - Dôkaz: HTML-heuristic
- **[OK]** Image Alt Attributes — 100% of 218 images have alt text
  - Dôkaz: HTML-heuristic
- **[OK]** Favicon — Favicon detected
  - Dôkaz: file-probe
- **[OK]** Semantic HTML Structure — 5/6 semantic elements: <article>, <nav>, <main>, <header>, <footer>
  - Dôkaz: HTML-heuristic
- **[OK]** Content Depth — 2722 words — sufficient content
  - Dôkaz: HTML-heuristic
- **[OK]** Deep Heading Hierarchy — H2: 7, H3: 6 — well-structured content
  - Dôkaz: HTML-heuristic
- **[OK]** Internal Linking — 307 internal links — strong site navigation
  - Dôkaz: HTML-heuristic
- **[OK]** Accessibility Fundamentals — 3/4 a11y signals: 125 ARIA roles, 175 ARIA labels, lang="sk-SK"
  - Dôkaz: HTML-heuristic

### Bezpečnosť — 82/100

- **[UPOZORNENIE]** DNSSEC — No DNSKEY records — zone is unsigned
  - Riešenie: Enable DNSSEC at your DNS host (most modern registrars offer 1-click activation: Cloudflare, Route 53, Google Cloud DNS, web.sk, websupport.sk). Verify via dnsviz.net afterwards.
  - Dôkaz: DNS
- **[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]** Content-Security-Policy (CSP) — Present but uses 'unsafe-inline' and 'unsafe-eval'
  - Riešenie: Remove 'unsafe-inline' by using nonces or hashes for inline scripts. Remove 'unsafe-eval' by eliminating eval() calls. These exceptions weaken CSP significantly.
  - Dôkaz: HTTP-header
- **[UPOZORNENIE]** Subresource Integrity (SRI) — Only 0/2 SRI-eligible third-party scripts have integrity hashes (1 auto-updating provider script(s) excluded — SRI not applicable)
  - 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]** 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
- **[INFO]** Iframe Sandboxing — 1 trusted provider embed(s) without sandbox — expected (sandbox would break YouTube/Maps/Stripe/reCAPTCHA)
  - Dôkaz: HTML-heuristic · istota: low
- **[INFO]** Cookie Prefix Security — 2 session cookie(s) already have Secure + HttpOnly + SameSite; adding the __Host- prefix is a cosmetic hardening nicety
  - Dôkaz: HTTP-header · 2 session cookie(s), all with Secure+HttpOnly+SameSite · istota: low
- **[OK]** SSL/TLS Certificate — Valid HTTPS connection established
  - Dôkaz: SSL
- **[OK]** HTTP → HTTPS Redirect — HTTP properly redirects to HTTPS
  - Dôkaz: HTTP-header
- **[OK]** HSTS (Strict-Transport-Security) — max-age=31536000, includeSubDomains
  - Dôkaz: HTTP-header
- **[OK]** Clickjacking Protection — X-Frame-Options: SAMEORIGIN
  - Dôkaz: HTTP-header
- **[OK]** X-Content-Type-Options — nosniff
  - Dôkaz: HTTP-header
- **[OK]** Referrer-Policy — strict-origin-when-cross-origin
  - Dôkaz: HTTP-header
- **[OK]** Permissions-Policy — geolocation=(), microphone=(), camera=()
  - Dôkaz: HTTP-header
- **[OK]** Cookie Security Flags — 2 cookie(s) — all have Secure, HttpOnly, SameSite
  - Dôkaz: HTTP-header
- **[OK]** Technology Disclosure — Server identity hidden
  - Dôkaz: HTTP-header
- **[OK]** security.txt (RFC 9116) — Present at /.well-known/security.txt
  - Dôkaz: file-probe

### Mobil — 67/100

- **[UPOZORNENIE]** Mobile Performance Score — 57/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]** 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]** 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]** Heading Hierarchy (WCAG 1.3.1) — Preskočené úrovne: h1→h3
  - 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]** 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 — Media queries detected
  - 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) — 56 image(s) use srcset for responsive sizing
  - Dôkaz: HTML-heuristic
- **[OK]** Payment Methods Detected — 1 method(s): Stripe
  - Dôkaz: HTML-heuristic
- **[OK]** Form Input Labels (WCAG 3.3.2) — 31/31 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ť — 84/100

- **[UPOZORNENIE]** Structured Data Foundation — 3 distinct schema types (near-duplicate entity types merged from 4) (BusinessEntity, WebPage, 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) — 96 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 — 51 paragraphs, avg 16 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]** Section Length Optimization — Avg section: 116 words — only 18% 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]** 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 (technical threshold: 14)
  - 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
- **[INFO]** llms.txt (AI Site Descriptor) — Present (4000 chars, H1, summary) — informational; no engine consumes it for citation
  - Dôkaz: file-probe
- **[INFO]** llms-full.txt (Complete AI Content) — Present (4 KB) — informational; no engine consumes it for citation
  - 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]** 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 — Explicitly allowed: GPTBot, ChatGPT-User, anthropic-ai, ClaudeBot, PerplexityBot
  - Dôkaz: file-probe
- **[OK]** Content Accessibility for AI — 2722 words in raw HTML (3.2% text ratio) — readable by AI crawlers without executing JS
  - Dôkaz: HTML-heuristic
- **[OK]** Organization Schema + Entity Linking — Organization found with 4 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 — 2722 words — rich content for AI analysis and citation
  - Dôkaz: HTML-heuristic
- **[OK]** Answer-First Content Format — First paragraph: 159 words — good content density above the fold
  - Dôkaz: HTML-heuristic
- **[OK]** Heading Hierarchy for AI — Proper structure: 1 H1 → 7 H2s → 6 H3s — clear content outline
  - Dôkaz: HTML-heuristic
- **[OK]** Semantic HTML Structure — 5/6 semantic elements: <article>, <nav>, <main>, <header>, <footer>
  - Dôkaz: HTML-heuristic
- **[OK]** Content Freshness Signals — Schema dates found + visible date on page
  - Dôkaz: HTML-heuristic
- **[OK]** Entity Clarity & Brand Signals — OG tags complete + 4 sameAs links: Facebook, Instagram, YouTube
  - Dôkaz: HTML-heuristic
- **[OK]** Reviews & Ratings Schema — AggregateRating/Review data found — social proof for AI
  - Dôkaz: schema
- **[OK]** Statistics & Data Presence — 6 data points found — strong citation magnet
  - Dôkaz: HTML-heuristic
- **[OK]** Q&A Format Headings — 3 question-format headings — excellent for AI Q&A extraction
  - Dôkaz: HTML-heuristic
- **[OK]** Common Question Coverage — Answers 4/5 key shopper questions: shipping, returns/refunds, availability, payment
  - Dôkaz: HTML-heuristic
- **[OK]** Internal Link Density — 113 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]** Knowledge Graph Readiness — 4/4 entity signals — strong Knowledge Graph presence
  - Dôkaz: HTML-heuristic
- **[OK]** Image Alt Text Quality for AI — 88% quality alt text (192/217 images) — strong visual search signal
  - Dôkaz: HTML-heuristic
- **[OK]** Content-to-Boilerplate Ratio — 67% of text in <main>/<article> — clean content signal
  - Dôkaz: HTML-heuristic
- **[OK]** AggregateRating Schema — Review aggregate rating schema present
  - Dôkaz: schema
- **[OK]** Customer Reviews — Aggregate — 1 source: AggregateRating schema — ★ 4.9 · 123 reviews
  - Dôkaz: HTML-heuristic

### GDPR — 80/100

- **[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]** 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]** Cookie Lifetime Compliance — 1 cookie(s) with >1 year expiry
  - Riešenie: Reduce cookie lifetimes to maximum 13 months (CNIL recommendation) or 6 months for marketing cookies. Session cookies should expire when the browser closes.
  - Dôkaz: HTTP-header
- **[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]** Consumer Dispute Resolution Links — Authority link present but no EU ODR platform link
  - Riešenie: Add BOTH the EU ODR platform link (https://ec.europa.eu/consumers/odr) and your national supervisory authority (SK: ŠOI / soi.sk, CZ: ČOI / coi.cz) to the footer and Terms.
  - Dôkaz: HTML-heuristic
- **[UPOZORNENIE]** Withdrawal & Complaints Policy — Missing: complaints procedure (reklamačný poriadok)
  - 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
- **[INFO]** Online Withdrawal Function — No explicit online withdrawal button in the server HTML — it may live in the logged-in account/order area, which this scan can't reach. Verify it's present.
  - Dôkaz: HTML-heuristic · istota: low
- **[OK]** Cookie Consent Banner (CMP) — CookieYes detected
  - Dôkaz: HTML-heuristic
- **[OK]** Tracking Scripts & Consent — 1 tracker(s) detected with CMP: Google Analytics/GTM
  - Dôkaz: HTML-heuristic
- **[OK]** Google Consent Mode v2 — Consent mode signals detected (ad_storage, analytics_storage)
  - Dôkaz: HTML-heuristic
- **[OK]** Privacy Policy Page — //hetzner.truckershop.sk/content/2-ochrana-osobnych-udajov
  - Dôkaz: HTML-heuristic
- **[OK]** Legal Contact / Imprint Page — //hetzner.truckershop.sk/content/4-o-nas
  - Dôkaz: HTML-heuristic
- **[OK]** Terms & Conditions Page — //hetzner.truckershop.sk/content/3-obchodne-podmienky
  - Dôkaz: HTML-heuristic
- **[OK]** Data Encryption (No Mixed Content) — All resources loaded over HTTPS
  - Dôkaz: HTML-heuristic
- **[OK]** Third-party Data Sharing — 3 third-party domain(s)
  - Dôkaz: HTML-heuristic
- **[OK]** Newsletter Consent — Newsletter form with consent mechanism detected
  - Dôkaz: HTML-heuristic
- **[OK]** Data Protection Officer Contact — DPO / data protection contact found
  - Dôkaz: HTML-heuristic

### Zraniteľnosti — 79/100

- **[CHYBA]** Form CSRF Protection — 29 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]** Source Maps Exposed — JavaScript source maps (.js.map) are publicly accessible
  - Riešenie: Remove source maps from production or block access via server config. In Vite/Webpack: set sourcemap: false for production builds.
  - 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]** Inline Event Handlers — 26 inline event handlers (onclick, onmouseover, etc.)
  - Riešenie: Move inline event handlers to external JavaScript files using addEventListener(). Inline handlers prevent proper CSP implementation (require 'unsafe-inline') and increase XSS attack surface.
  - Dôkaz: HTML-heuristic
- **[INFO]** SPF Record (Email Security) — No SPF record, and no MX — this domain doesn't send/receive email, so deliverability isn't affected
  - Dôkaz: DNS · istota: low
- **[INFO]** DMARC Policy (Email Auth) — No DMARC record, and no MX — this domain doesn't handle email, so deliverability isn't affected
  - Dôkaz: DNS · istota: low
- **[INFO]** Email Infrastructure — No MX records — domain does not receive email
  - Dôkaz: DNS
- **[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

### NIS2

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

### Prístupnosť — 89/100

- **[UPOZORNENIE]** Heading Structure — Heading levels skip: h1→h3
  - Riešenie: Use a single <h1> and don't jump heading levels (e.g. <h2> straight to <h4>).
  - 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-SK"> is set
  - Dôkaz: HTML-heuristic
- **[OK]** Image Alt Text — All 218 images have alt attributes
  - Dôkaz: HTML-heuristic
- **[OK]** Form Labels — All 31 form inputs are labelled
  - Dôkaz: HTML-heuristic
- **[OK]** Link Text — Links use descriptive text
  - Dôkaz: HTML-heuristic · istota: low
- **[OK]** Landmark Regions — Semantic landmarks present (<main>, <nav>/<header>)
  - Dôkaz: HTML-heuristic
- **[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/sk/r/hetzner.truckershop.sk)
