Scanned on October 8, 2026
Your site is solid but has security gaps. Add HSTS headers immediately to all pages—it's basic protection. Your accessibility and SEO ranking 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.
High impact, but the fix needs planning.
+5 more
Lower impact, quick to do.
+14 more
Lower impact and more work. Plan them once the rest is done.
+43 more
Weight: 25% · 9 passed · 7 warnings · 2 failed · 2 SPA (verify manually)
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 548 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: 548 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: 8 render-blocking scripts can add 1-3 seconds to page load. Each synchronous script creates a sequential download-parse-execute chain.
How to fix: 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.
Evidence: HTML-heuristic · Confidence: high
What we found: Only 33% of 12 scripts optimized — most are render-blocking
Why it matters: 8 render-blocking scripts can add 1-3 seconds to page load. Each synchronous script creates a sequential download-parse-execute chain.
Why it matters: TBT measures how long the main thread is blocked. During this time, clicks and taps don't respond — your store feels frozen. This directly impacts perceived quality.
How to fix: 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.
Evidence: PSI-lab · Confidence: high
What we found: 251ms (good: <200ms)
Why it matters: TBT measures how long the main thread is blocked. During this time, clicks and taps don't respond — your store feels frozen. This directly impacts perceived quality.
Why it matters: A 3 MB page takes 6+ seconds on 3G mobile. Most e-commerce traffic is mobile — heavy pages lose customers on poor connections.
How to fix: Reduce page weight: compress images to WebP (saves 30-50%), enable text compression (gzip/brotli), lazy load below-fold images, remove unused CSS/JS.
Evidence: PSI-lab · Confidence: high
What we found: 1.6 MB, 64 requests (optimal: <1.5 MB, <50 req)
Why it matters: A 3 MB page takes 6+ seconds on 3G mobile. Most e-commerce traffic is mobile — heavy pages lose customers on poor connections.
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 · 946 KB JavaScript · Confidence: high
What we found: 946 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: Without lazy loading, ALL images download on page load — even those never scrolled to. On a product page with 20 images, lazy loading can save most of the initial download.
How to fix: Add loading='lazy' to all images below the fold. Keep the hero/LCP image eager-loaded. Native lazy loading is supported by all modern browsers.
Evidence: HTML-heuristic · Confidence: high
What we found: 80 images without lazy loading
Why it matters: Without lazy loading, ALL images download on page load — even those never scrolled to. On a product page with 20 images, lazy loading can save most of the initial download.
Why it matters: no-cache/no-store forces browsers to re-download resources on every visit. Repeat visitors load your entire site from scratch every time.
How to fix: 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.
Evidence: HTTP-header · Confidence: high
What we found: no-store, no-cache, must-revalidate, no-cache, private
Why it matters: no-cache/no-store forces browsers to re-download resources on every visit. Repeat visitors load your entire site from scratch every time.
Why it matters: Each render-blocking CSS file adds network latency. Consolidating CSS from 8 to 2 files can save 200-400ms on first load.
How to fix: Consolidate CSS files by bundling them into 1-3 files. Each CSS file is a separate HTTP request that blocks rendering until downloaded.
Evidence: HTML-heuristic · Confidence: high
What we found: 10 CSS files loaded
Why it matters: Each render-blocking CSS file adds network latency. Consolidating CSS from 8 to 2 files can save 200-400ms on first load.
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: 10 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: 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
Your store doesn't qualify for the Zulien Score Badge yet. Score 80+ to earn it!
| Category | Score | Weight | Failures | Warnings | OK |
|---|---|---|---|---|---|
| Performance | 80/100 | 25% | 2 | 7 | 9 |
| SEO | 81/100 | 20% | 1 | 7 | 17 |
| Security | 60/100 | 15% | 2 | 8 | 8 |
| Mobile | 65/100 | 10% | 0 | 10 | 6 |
| AI Readiness | 57/100 | 10% | 4 | 22 | 9 |
| Legal & Compliance | 80/100 | 10% | 1 | 5 | 11 |
| Vulnerability | 59/100 | 10% | 4 | 6 | 6 |
| Accessibility / EAA | 86/100 | 10% | 0 | 2 | 6 |
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.
| Finding | Category | Effort |
|---|---|---|
| Admin Panel at Default URL | Vulnerability | quick fix |
| HTTP → HTTPS Redirect | Security | quick fix |
| HSTS (Strict-Transport-Security) | Security | quick fix |
| Consumer Dispute Resolution Links | Legal & Compliance | quick fix |
High impact, but the fix needs planning.
| Finding | Category | Effort |
|---|---|---|
| Known Vulnerabilities (CVE) | Vulnerability | project |
| Script Loading Strategy | Performance | about a day |
| Structured Data (JSON-LD) | SEO | about a day |
| Content-Security-Policy (CSP) | Security | about a day |
| Structured Data Foundation | AI Readiness | about a day |
| Organization Schema + Entity Linking | AI Readiness | about a day |
| Image Alt Text Quality for AI | AI Readiness | about a day |
| jQuery Version | Vulnerability | about a day |
| Payment Page Security | Vulnerability | about a day |
| Unused Code (CSS + JS) | Performance | project |
Lower impact, quick to do.
| Finding | Category | Effort |
|---|---|---|
| Cache-Control Strategy | Performance | quick fix |
| Meta Description | SEO | quick fix |
| Twitter/X Cards | SEO | quick fix |
| Canonical URL Consistency | SEO | quick fix |
| CAA DNS Record | Security | quick fix |
| Referrer-Policy | Security | quick fix |
| Permissions-Policy | Security | quick fix |
| Cookie Security Flags | Security | quick fix |
| Subresource Integrity (SRI) | Security | quick fix |
| Iframe Sandboxing | Security | quick fix |
| Theme Color | Mobile | quick fix |
| Text Overflow Handling | Mobile | quick fix |
+7 more
Lower impact and more work. Plan them once the rest is done.
| Finding | Category | Effort |
|---|---|---|
| Lazy Loading | Performance | about a day |
| Image Alt Attributes | SEO | about a day |
| Image Format Optimization | SEO | about a day |
| Keyboard Navigation (Focus) | SEO | about a day |
| CDN / WAF Protection | Security | about a day |
| Touch Target Size | Mobile | about a day |
| Font Size Readability | Mobile | about a day |
| PWA Features | Mobile | about a day |
| Responsive Images (srcset) | Mobile | about a day |
| Heading Hierarchy (WCAG 1.3.1) | Mobile | about a day |
| Link Text Quality (WCAG 2.4.4) | Mobile | about a day |
| FAQ Schema (Direct AI Answers) | AI Readiness | about a day |
+36 more
The full interactive version, with clickable links and the option to re-scan, is here:
https://score.zulien.sk/r/hiwangroup.sk