Przeskanowano June 13, 2026
Posortowane według wpływu na wynik — każda poprawka podnosi ogólną ocenę.
Waga: 25% · 5 zaliczonych · 7 ostrzeżenia · 7 nieudanych
Dlaczego to ma znaczenie: FCP over 3s means users stare at a blank screen for 3+ seconds. 53% of mobile users abandon sites that take over 3 seconds to show content.
Jak to naprawić: Critical: enable full-page caching, eliminate render-blocking resources, preload critical CSS, defer all non-essential JS, and compress images.
Co znaleźliśmy: 8.46s (good: <1.8s)
Dlaczego to ma znaczenie: FCP over 3s means users stare at a blank screen for 3+ seconds. 53% of mobile users abandon sites that take over 3 seconds to show content.
Dlaczego to ma znaczenie: LCP >4s fails Core Web Vitals — Google actively demotes these pages. Each 100ms improvement in LCP correlates with 1.7% higher conversion rate (Vodafone study).
Jak to naprawić: 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.
Co znaleźliśmy: 16.14s (good: <2.5s) — Core Web Vital FAILING
Dlaczego to ma znaczenie: LCP >4s fails Core Web Vitals — Google actively demotes these pages. Each 100ms improvement in LCP correlates with 1.7% higher conversion rate (Vodafone study).
Dlaczego to ma znaczenie: TBT over 600ms means your page is unresponsive for over half a second. Users who can't interact within 100ms perceive the site as broken. This kills conversions.
Jak to naprawić: Critical: audit all JavaScript. 1) Remove unused plugins/modules, 2) Defer analytics and chat widgets, 3) Code-split large bundles, 4) Move heavy computation to web workers.
Co znaleźliśmy: 2316ms (good: <200ms)
Dlaczego to ma znaczenie: TBT over 600ms means your page is unresponsive for over half a second. Users who can't interact within 100ms perceive the site as broken. This kills conversions.
Dlaczego to ma znaczenie: Speed Index over 5.8s means users watch a near-blank page for almost 6 seconds. At this speed, you're losing 40%+ of potential customers to competitors.
Jak to naprawić: Your page loads very slowly visually. Prioritize critical rendering path: inline critical CSS, defer non-essential JS, preload hero image, and use a CDN.
Co znaleźliśmy: 20.14s (good: <3.4s)
Dlaczego to ma znaczenie: Speed Index over 5.8s means users watch a near-blank page for almost 6 seconds. At this speed, you're losing 40%+ of potential customers to competitors.
Dlaczego to ma znaczenie: Pages over 3 MB take 12+ seconds on 3G. The average e-commerce page is 2.2 MB — you're well above that. Amazon found every 100ms of latency costs 1% of sales.
Jak to naprawić: 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.
Co znaleźliśmy: 12.5 MB, 290 requests — too heavy!
Dlaczego to ma znaczenie: Pages over 3 MB take 12+ seconds on 3G. The average e-commerce page is 2.2 MB — you're well above that. Amazon found every 100ms of latency costs 1% of sales.
Dlaczego to ma znaczenie: 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.
Jak to naprawić: You're loading 1967 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.
Co znaleźliśmy: 1967 KB wasted on unused code!
Dlaczego to ma znaczenie: 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.
Uwaga: Ta kontrola wykorzystuje detekcję heurystyczną i może zwracać również fałszywe alarmy. Zalecamy ręczną weryfikację.
Dlaczego to ma znaczenie: 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.
Jak to naprawić: 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.
Co znaleźliśmy: 11 CSS files — too many!
Dlaczego to ma znaczenie: 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.
Dlaczego to ma znaczenie: 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 80%+ of initial download.
Jak to naprawić: 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.
Co znaleźliśmy: 376 images without lazy loading
Dlaczego to ma znaczenie: 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 80%+ of initial download.
Dlaczego to ma znaczenie: Without cache headers, browsers use heuristic caching which is unpredictable. Explicit caching can eliminate 60%+ of requests for repeat visitors.
Jak to naprawić: Add Cache-Control headers: 'max-age=31536000, immutable' for versioned static assets, 'max-age=0, must-revalidate' for HTML.
Dlaczego to ma znaczenie: Without cache headers, browsers use heuristic caching which is unpredictable. Explicit caching can eliminate 60%+ of requests for repeat visitors.
Dlaczego to ma znaczenie: Synchronous scripts block HTML parsing — the browser stops rendering until each script downloads and executes. Async/defer allows parallel downloading without blocking.
Jak to naprawić: 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.
Co znaleźliśmy: Only 60% of 5 scripts use async/defer
Dlaczego to ma znaczenie: Synchronous scripts block HTML parsing — the browser stops rendering until each script downloads and executes. Async/defer allows parallel downloading without blocking.
Dlaczego to ma znaczenie: 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.
Jak to naprawić: 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.
Co znaleźliśmy: Custom fonts detected without preload hints
Dlaczego to ma znaczenie: 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.
Dlaczego to ma znaczenie: Render-blocking CSS delays first paint. Inlining critical CSS eliminates the render-blocking round trip — the biggest FCP improvement for CSS-heavy sites.
Jak to naprawić: 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"'>.
Co znaleźliśmy: 11 CSS files without critical CSS extraction
Dlaczego to ma znaczenie: Render-blocking CSS delays first paint. Inlining critical CSS eliminates the render-blocking round trip — the biggest FCP improvement for CSS-heavy sites.
Dlaczego to ma znaczenie: Third-party connections require DNS lookup, TCP handshake, and TLS negotiation. Preconnect performs these in parallel with HTML parsing, saving 100-300ms per origin.
Jak to naprawić: Add <link rel='preconnect'> for key third-party domains: www.googletagmanager.com, www.google.com, code.jquery.com. Preconnect saves 100-300ms per domain by starting DNS+TCP+TLS early.
Co znaleźliśmy: 4 external domains without preconnect
Dlaczego to ma znaczenie: Third-party connections require DNS lookup, TCP handshake, and TLS negotiation. Preconnect performs these in parallel with HTML parsing, saving 100-300ms per origin.
Dlaczego to ma znaczenie: Large inline scripts cannot be cached separately — they're re-downloaded with every page load. Moving them to external files with defer enables HTTP caching and parallel downloads.
Jak to naprawić: Move large inline scripts to external files. Inline JS over 100 KB inflates HTML, prevents caching, and blocks the parser. External files can be cached, compressed, and deferred.
Co znaleźliśmy: 2599 KB of inline JavaScript
Dlaczego to ma znaczenie: Large inline scripts cannot be cached separately — they're re-downloaded with every page load. Moving them to external files with defer enables HTTP caching and parallel downloads.
Twój sklep na razie nie spełnia warunków dla odznaki Zulien Score. Uzyskaj ocenę 80+!
Twój sklep internetowy traci klientów każdego dnia. Powyższe problemy kosztują Cię sprzedaż.
Szczegółowa analiza naszego zespołu: zidentyfikujemy przyczyny problemów, ustalimy priorytety napraw i przygotujemy plan działania. Ofertę prześlemy w ciągu 48 godzin.
| Kategória | Skóre | Váha | Chyby | Upozornenia | OK |
|---|---|---|---|---|---|
| Performance | 36/100 | 25% | 7 | 7 | 5 |
| SEO | 83/100 | 20% | 1 | 4 | 12 |
| Security | 37/100 | 15% | 4 | 8 | 3 |
| Mobile | 41/100 | 10% | 3 | 10 | 5 |
| AI Readiness | 48/100 | 10% | 4 | 18 | 4 |
| GDPR | 61/100 | 10% | 2 | 5 | 6 |
| Vulnerability | 64/100 | 10% | 4 | 5 | 10 |
Plnú interaktívnu verziu s klikateľnými odkazmi a možnosťou opätovného skenu nájdete tu:
https://score.zulien.sk/r/farlesk.sk