Scanned on October 8, 2026
Your store performs well overall, but needs attention to security and AI readiness. Add CSRF protection to forms immediately. Your accessibility and SEO are excellent.
Every problem found, sorted by how much fixing it helps and how much work the fix takes. Start with the quick wins.
High impact, little work. Do these first.
Nothing here.
High impact, but the fix needs planning.
Lower impact, quick to do.
+13 more
Lower impact and more work. Plan them once the rest is done.
+27 more
Weight: 25% · 11 passed · 5 warnings · 3 failed · 2 SPA (verify manually)
Why it matters: Pages over 3 MB take 12+ seconds on 3G. The average e-commerce page is around 2 MB — you're well above that. Even small latency increases measurably reduce sales.
How to fix: 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.
Evidence: PSI-lab · Confidence: high
What we found: 3.3 MB, 61 requests — too heavy!
Why it matters: Pages over 3 MB take 12+ seconds on 3G. The average e-commerce page is around 2 MB — you're well above that. Even small latency increases measurably reduce sales.
Why it matters: Over 200 KB of unused code significantly slows parsing and execution. This is one of the easiest performance wins — removing dead code requires no trade-offs.
How to fix: You're loading 521 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.
Evidence: PSI-lab · Confidence: low
What we found: 521 KB wasted on unused code!
Why it matters: Over 200 KB of unused code significantly slows parsing and execution. This is one of the easiest performance wins — removing dead code requires no trade-offs.
Note: This check uses heuristic detection and may produce false positives. Manual verification recommended.
Why it matters: Each CSS file blocks rendering. With 11 files, the browser must download all of them before painting anything. This can add 1-2+ seconds on mobile networks.
How to fix: 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.
Evidence: HTML-heuristic · Confidence: high
What we found: 11 CSS files — too many!
Why it matters: Each CSS file blocks rendering. With 11 files, the browser must download all of them before painting anything. This can add 1-2+ seconds on mobile networks.
Why it matters: Measured on a first load with no interaction, so scripts gated behind cookie consent don't count against you here. The 600 KB bar is best practice, not the cohort average: the shops we benchmarked have a median of 1 270 KB, and the best of them (a category winner that won on mobile) ships 410 KB.
How to fix: Split the bundle so a product page doesn't load checkout and account code. Defer third-party scripts until interaction. Drop unused plugin bundles — on most shops these outweigh your own code.
Evidence: PSI-lab · 1028 KB JavaScript · Confidence: high
What we found: 1028 KB — over the 600 KB budget, but below the 1270 KB median of the award-winning shops we benchmarked
Why it matters: Measured on a first load with no interaction, so scripts gated behind cookie consent don't count against you here. The 600 KB bar is best practice, not the cohort average: the shops we benchmarked have a median of 1 270 KB, and the best of them (a category winner that won on mobile) ships 410 KB.
Why it matters: Synchronous scripts block HTML parsing — the browser stops rendering until each script downloads and executes. Async/defer allows parallel downloading without blocking.
How to fix: Add 'defer' to scripts that don't need to run immediately, 'async' for independent scripts. Use type='module' for modern ES modules. Only critical inline scripts should be synchronous.
Evidence: HTML-heuristic · Confidence: high
What we found: Only 58% of 12 scripts use async/defer
Why it matters: Synchronous scripts block HTML parsing — the browser stops rendering until each script downloads and executes. Async/defer allows parallel downloading without blocking.
Why it matters: Fonts are discovered late in the render pipeline (after CSS is parsed). Preloading tells the browser to download them immediately, reducing Flash of Invisible Text (FOIT) by 200-500ms.
How to fix: 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.
Evidence: HTML-heuristic · Confidence: high
What we found: Custom fonts detected without preload hints
Why it matters: Fonts are discovered late in the render pipeline (after CSS is parsed). Preloading tells the browser to download them immediately, reducing Flash of Invisible Text (FOIT) by 200-500ms.
Why it matters: Render-blocking CSS delays first paint. Inlining critical CSS eliminates the render-blocking round trip — the biggest FCP improvement for CSS-heavy sites.
How to fix: 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"'>.
Evidence: PSI-lab · Confidence: high
What we found: 11 CSS files without critical CSS extraction
Why it matters: Render-blocking CSS delays first paint. Inlining critical CSS eliminates the render-blocking round trip — the biggest FCP improvement for CSS-heavy sites.
Why it matters: Third-party connections require DNS lookup, TCP handshake, and TLS negotiation. Preconnect performs these in parallel with HTML parsing, saving 100-300ms per origin.
How to fix: Add <link rel='preconnect'> for key third-party domains: consent.cookiebot.com, code.jquery.com, cdn.jsdelivr.net. Preconnect saves 100-300ms per domain by starting DNS+TCP+TLS early.
Evidence: PSI-lab · Confidence: high
What we found: 7 external domains without preconnect
Why it matters: Third-party connections require DNS lookup, TCP handshake, and TLS negotiation. Preconnect performs these in parallel with HTML parsing, saving 100-300ms per origin.
Why it matters: We report this as unmeasured rather than as zero third parties, because those are very different findings.
How to fix: Re-run the scan, or check the third-party summary directly at PageSpeed Insights.
Evidence: PSI-lab · Confidence: high
How to fix: Re-run the scan, or test directly at PageSpeed Insights. This metric needs a successful Lighthouse lab run.
Evidence: PSI-lab · Confidence: high
Add this badge to your store to show customers it's optimized.
<a href="https://score.zulien.sk/r/kagency.com?utm_source=embed&utm_medium=badge&utm_campaign=kagency.com" target="_blank" rel="noopener"><img src="https://euyszfecnvwsqpigioyx.supabase.co/functions/v1/badge?domain=kagency.com&size=medium&theme=dark" alt="Zulien Score — kagency.com (B)" width="280" height="72" loading="lazy" /></a>
| Category | Score | Weight | Failures | Warnings | OK |
|---|---|---|---|---|---|
| Performance | 89/100 | 25% | 3 | 5 | 11 |
| SEO | 90/100 | 20% | 0 | 5 | 20 |
| Security | 81/100 | 15% | 0 | 6 | 10 |
| Mobile | 66/100 | 10% | 0 | 7 | 8 |
| AI Readiness | 71/100 | 10% | 2 | 14 | 12 |
| Legal & Compliance | 75/100 | 10% | 0 | 7 | 5 |
| Vulnerability | 88/100 | 10% | 1 | 3 | 9 |
| Accessibility / EAA | 96/100 | 10% | 0 | 1 | 7 |
Every problem found, sorted by how much fixing it helps and how much work the fix takes. Start with the quick wins.
High impact, but the fix needs planning.
| Finding | Category | Effort |
|---|---|---|
| Organization Schema + Entity Linking | AI Readiness | about a day |
| Form CSRF Protection | Vulnerability | about a day |
| Total Page Weight | Performance | project |
| Unused Code (CSS + JS) | Performance | project |
Lower impact, quick to do.
| Finding | Category | Effort |
|---|---|---|
| Meta Description | SEO | quick fix |
| Canonical URL Consistency | SEO | quick fix |
| Empty/Dead Links | SEO | quick fix |
| DNSSEC | Security | quick fix |
| CAA DNS Record | Security | quick fix |
| Subresource Integrity (SRI) | Security | quick fix |
| security.txt (RFC 9116) | Security | quick fix |
| Theme Color | Mobile | quick fix |
| Form Input Types | Mobile | quick fix |
| Canonical Tag for AI Deduplication | AI Readiness | quick fix |
| Legal Contact / Imprint Page | Legal & Compliance | quick fix |
| Data Protection Officer Contact | Legal & Compliance | quick fix |
+6 more
Lower impact and more work. Plan them once the rest is done.
| Finding | Category | Effort |
|---|---|---|
| Script Loading Strategy | Performance | about a day |
| Image Format Optimization | SEO | about a day |
| Accessibility Fundamentals | SEO | about a day |
| Content-Security-Policy (CSP) | Security | about a day |
| CDN / WAF Protection | Security | about a day |
| Touch Target Size | Mobile | about a day |
| Font Size Readability | Mobile | about a day |
| Responsive Images (srcset) | Mobile | about a day |
| Structured Data Foundation | AI Readiness | about a day |
| FAQ Schema (Direct AI Answers) | AI Readiness | about a day |
| Image Alt Text Quality for AI | AI Readiness | about a day |
| Cookie Policy | Legal & Compliance | about a day |
+20 more
The full interactive version, with clickable links and the option to re-scan, is here:
https://score.zulien.sk/r/kagency.com