{"scanId":"onara-com-ar-577553d413","url":"https://onara.com.ar/","finalUrl":"https://onara.com.ar/","status":"complete","source":"web","visibility":"listed","scannedAt":"2026-09-23T11:19:36.823Z","durationMs":26386,"rubricVersion":"2026.09.5","strategy":"both","device":"desktop","devices":{"desktop":{"device":"desktop","lighthouse":98,"lighthouseVersion":"13.5.0","psiError":null,"lighthouseAnalysedAt":"2026-09-23T11:19:18.343Z","lighthouseReplayed":false,"metrics":{"lcpMs":789.5104373669146,"cls":0.0001938958085801785,"tbtMs":0,"fcpMs":649.5104373669146,"speedIndexMs":1270.161659910675,"serverResponseMs":145,"totalBytes":1221301},"field":null,"checks":[{"id":"S1","name":"Lighthouse performance score (desktop)","dimension":"speed","weight":18,"status":"pass","earned":17.6,"evidence":"98/100 (Lighthouse 13.5.0, desktop)","remediation":"The composite Lighthouse score — every fix below moves it.","refs":[{"name":"Lighthouse performance scoring","url":"https://developer.chrome.com/docs/lighthouse/performance/performance-scoring"}]},{"id":"S2","name":"Largest Contentful Paint ≤ 2.5s","dimension":"speed","weight":8,"status":"pass","earned":8,"evidence":"LCP 790ms","remediation":"Serve the hero content faster: cache the page, preload the LCP image, and ship critical CSS.","refs":[{"name":"web.dev — Largest Contentful Paint","url":"https://web.dev/articles/lcp"},{"name":"Optimize LCP","url":"https://web.dev/articles/optimize-lcp"}]},{"id":"S3","name":"Cumulative Layout Shift ≤ 0.1","dimension":"speed","weight":5,"status":"pass","earned":5,"evidence":"CLS 0.000","remediation":"Reserve space for images/embeds so the page does not jump as it loads.","refs":[{"name":"web.dev — Cumulative Layout Shift","url":"https://web.dev/articles/cls"}]},{"id":"S4","name":"Total Blocking Time ≤ 200ms","dimension":"speed","weight":5,"status":"pass","earned":5,"evidence":"TBT 0ms","remediation":"Less JavaScript on the main thread: defer scripts and drop unused bundles.","refs":[{"name":"web.dev — Total Blocking Time","url":"https://web.dev/articles/tbt"}]},{"id":"S5","name":"First Contentful Paint ≤ 1.8s","dimension":"speed","weight":4,"status":"pass","earned":4,"evidence":"FCP 650ms","remediation":"First paint is gated on server response and render-blocking CSS.","refs":[{"name":"web.dev — First Contentful Paint","url":"https://web.dev/articles/fcp"}]},{"id":"D1","name":"Time to first byte ≤ 200ms","dimension":"delivery","weight":8,"status":"partial","earned":4,"evidence":"TTFB 396ms measured from Vilnius, Lithuania (EU) (best of 2 requests). This includes the network round trips between us and your origin, not just server time. Google measured your server responding in 145ms from its own network — the gap between the two numbers is distance, not your server.","remediation":"The server rebuilds the page on every request. A page cache answers in 5–15ms.","fix":{"tier":"free","feature":"Page Cache","prompt":"Using my site's xSpeed MCP connection: enable page caching and warm this page with the preloader, then re-check TTFB."},"refs":[{"name":"web.dev — Time to First Byte","url":"https://web.dev/articles/ttfb"}]},{"id":"D2","name":"Page served from cache","dimension":"delivery","weight":7,"status":"pass","earned":7,"evidence":"Cache HIT evidence in response headers","remediation":"Serve HTML from a static cache instead of rebuilding it per visitor.","refs":[{"name":"MDN — HTTP caching","url":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching"}]},{"id":"D3","name":"HTML compression (Brotli/GZIP)","dimension":"delivery","weight":5,"status":"pass","earned":5,"evidence":"Content-Encoding: br","remediation":"Compress text responses — Brotli typically saves ~15–20% over GZIP.","refs":[{"name":"MDN — Content-Encoding","url":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding"},{"name":"RFC 7932 — Brotli","url":"https://www.rfc-editor.org/rfc/rfc7932"}]},{"id":"D4","name":"Efficient cache policy on static assets","dimension":"delivery","weight":5,"status":"pass","earned":5,"evidence":"Passes the Lighthouse cache-policy audit","remediation":"Give CSS/JS/images long Cache-Control lifetimes so repeat views are free.","refs":[{"name":"Lighthouse — Efficient cache policy","url":"https://developer.chrome.com/docs/lighthouse/performance/uses-long-cache-ttl"}]},{"id":"D5","name":"CDN / edge network","dimension":"delivery","weight":3,"optional":true,"status":"info","earned":0,"evidence":"No CDN signature detected","naReason":"Optional — a bonus when present.","remediation":"Optional: put a CDN or Cloudflare in front for global edge delivery.","fix":{"tier":"free","feature":"Cloudflare integration / CDN rewriter","prompt":"Using my site's xSpeed MCP connection: connect Cloudflare (or configure the CDN rewriter) and purge, then re-scan."},"refs":[{"name":"web.dev — Content delivery networks","url":"https://web.dev/articles/content-delivery-networks"}]},{"id":"D6","name":"Clean redirect chain","dimension":"delivery","weight":2,"status":"pass","earned":2,"evidence":"No redirects — the URL answers directly","remediation":"Each redirect adds a full round-trip before the page can even start.","refs":[{"name":"Lighthouse — Avoid redirects","url":"https://developer.chrome.com/docs/lighthouse/performance/redirects"}]},{"id":"A1","name":"No render-blocking resources","dimension":"assets","weight":5,"status":"fail","earned":0,"evidence":"Fails the Lighthouse audit — 8 files: woocommerce-layer.min.css (ewosc9ckcjd.exactdn.com), wce.css (ewosc9ckcjd.exactdn.com), animate-layer.min.css (ewosc9ckcjd.exactdn.com)… · ~350ms of first paint","remediation":"Everything blocking first paint here is loaded from another host (ewosc9ckcjd.exactdn.com). You cannot inline or minify those — the fix is to defer them, or load fewer of them.","fix":{"tier":"pro","feature":"Critical CSS + Unused CSS removal","prompt":"Using my site's xSpeed MCP connection: generate critical CSS for the top pages and enable unused-CSS removal, then re-test."},"refs":[{"name":"Lighthouse — Render-blocking resources","url":"https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources"}]},{"id":"A2","name":"Minified CSS and JavaScript","dimension":"assets","weight":4,"status":"pass","earned":4,"evidence":"Passes the Lighthouse audit","remediation":"Ship minified assets — whitespace and comments are pure transfer waste.","refs":[{"name":"Lighthouse — Minify CSS","url":"https://developer.chrome.com/docs/lighthouse/performance/unminified-css"},{"name":"Minify JavaScript","url":"https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript"}]},{"id":"A3","name":"Modern, optimized image formats","dimension":"assets","weight":4,"status":"pass","earned":4,"evidence":"Passes the Lighthouse audit","remediation":"Serve WebP/AVIF at the right compression — usually the single largest byte saving.","refs":[{"name":"Lighthouse — Modern image formats","url":"https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images"}]},{"id":"A6","name":"LCP image discoverable early","dimension":"assets","weight":4,"status":"info","earned":0,"evidence":"Audit not reported for this page","naReason":"Audit not reported for this page","remediation":"Re-run when Lighthouse is available.","fix":{"tier":"free","feature":"Resource Hints (preload) + Lazy Load exclusions","prompt":"Using my site's xSpeed MCP connection: preload the LCP image for this page and exclude it from lazy loading, then re-test LCP."},"refs":[{"name":"web.dev — Optimize LCP","url":"https://web.dev/articles/optimize-lcp"},{"name":"Lighthouse — LCP request discovery","url":"https://developer.chrome.com/docs/lighthouse/performance/prioritize-lcp-image"}]},{"id":"A5","name":"Total page weight ≤ 1.5MB","dimension":"assets","weight":3,"status":"pass","earned":3,"evidence":"1.2MB transferred","remediation":"Heavy pages are slow on every connection — compress, lazy-load, and trim.","refs":[{"name":"Lighthouse — Total byte weight","url":"https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight"}]},{"id":"W1","name":"Platform","dimension":"stack","weight":0,"status":"info","earned":0,"evidence":"WordPress detected (WooCommerce Wholesale Prices 2.2.9)","remediation":"Informational.","refs":[]},{"id":"W2","name":"Caching plugin active","dimension":"stack","weight":4,"status":"pass","earned":4,"evidence":"LiteSpeed Cache (X-LiteSpeed-Cache: hit)","remediation":"WordPress rebuilds every page in PHP unless a caching plugin serves it statically.","refs":[{"name":"WordPress.org — Optimization: caching","url":"https://wordpress.org/documentation/article/optimization/#Caching"}]},{"id":"W3","name":"Powered by xSpeed","dimension":"stack","weight":4,"status":"partial","earned":2,"evidence":"Running LiteSpeed Cache instead","remediation":"xSpeed bundles caching, minification, lazy-load, image optimization and an AI-controllable MCP server in one plugin — and imports settings from other caching plugins in one click.","fix":{"tier":"free","feature":"xSpeed Migration (one-click import)","prompt":"Install xSpeed and use its Migration tool to import your current caching settings, then deactivate the old plugin."},"refs":[{"name":"xSpeed — feature overview","url":"https://xspeedcache.com/features"},{"name":"xSpeed vs other cache plugins","url":"https://xspeedcache.com/comparison"}]},{"id":"W4","name":"AI-controllable (xSpeed MCP)","dimension":"stack","weight":2,"optional":true,"status":"info","earned":0,"evidence":"xSpeed MCP endpoint not reachable","naReason":"Optional — a bonus when present.","remediation":"Optional: connect xSpeed's built-in MCP server and your AI assistant can apply every fix in this report for you.","fix":{"tier":"free","feature":"MCP Server (built into xSpeed Free)","prompt":"In xSpeed → MCP Server, click Connect and paste the config into your AI client — then ask it to fix this report."},"refs":[{"name":"Model Context Protocol","url":"https://modelcontextprotocol.io/"},{"name":"xSpeed documentation","url":"https://xspeedcache.com/docs"}]}],"dimensions":{"speed":{"earned":39.6,"weight":40,"score":99,"applicable":true},"delivery":{"earned":23,"weight":27,"score":85,"applicable":true},"assets":{"earned":11,"weight":16,"score":69,"applicable":true},"stack":{"earned":6,"weight":8,"score":75,"applicable":true}},"overallScore":87,"gradedWeight":91,"grade":"B","level":4,"levelName":"Fast","partial":false,"unanalysable":false},"mobile":{"device":"mobile","lighthouse":82,"lighthouseVersion":"13.5.0","psiError":null,"lighthouseAnalysedAt":"2026-09-23T11:19:18.628Z","lighthouseReplayed":false,"metrics":{"lcpMs":4371.005780426804,"cls":0,"tbtMs":0,"fcpMs":2421.0057804268044,"speedIndexMs":2876.330642214514,"serverResponseMs":142,"totalBytes":1169593},"field":null,"checks":[{"id":"S1","name":"Lighthouse performance score (mobile)","dimension":"speed","weight":18,"status":"partial","earned":14.8,"evidence":"82/100 (Lighthouse 13.5.0, mobile)","remediation":"The composite Lighthouse score — every fix below moves it.","fix":{"tier":"free","feature":"AI Optimize","prompt":"Using my site's xSpeed MCP connection: run optimize_site, then run_benchmark to verify the score improved."},"refs":[{"name":"Lighthouse performance scoring","url":"https://developer.chrome.com/docs/lighthouse/performance/performance-scoring"}]},{"id":"S2","name":"Largest Contentful Paint ≤ 2.5s","dimension":"speed","weight":8,"status":"fail","earned":0,"evidence":"LCP 4.4s","remediation":"Serve the hero content faster: cache the page, preload the LCP image, and ship critical CSS.","fix":{"tier":"free","feature":"Page Cache + Preloader (Critical CSS in Pro)","prompt":"Using my site's xSpeed MCP connection: enable page caching, start the preloader, and (on Pro) generate critical CSS for this page; then re-test LCP."},"refs":[{"name":"web.dev — Largest Contentful Paint","url":"https://web.dev/articles/lcp"},{"name":"Optimize LCP","url":"https://web.dev/articles/optimize-lcp"}]},{"id":"S3","name":"Cumulative Layout Shift ≤ 0.1","dimension":"speed","weight":5,"status":"pass","earned":5,"evidence":"CLS 0.000","remediation":"Reserve space for images/embeds so the page does not jump as it loads.","refs":[{"name":"web.dev — Cumulative Layout Shift","url":"https://web.dev/articles/cls"}]},{"id":"S4","name":"Total Blocking Time ≤ 200ms","dimension":"speed","weight":5,"status":"pass","earned":5,"evidence":"TBT 0ms","remediation":"Less JavaScript on the main thread: defer scripts and drop unused bundles.","refs":[{"name":"web.dev — Total Blocking Time","url":"https://web.dev/articles/tbt"}]},{"id":"S5","name":"First Contentful Paint ≤ 1.8s","dimension":"speed","weight":4,"status":"partial","earned":2,"evidence":"FCP 2.4s","remediation":"First paint is gated on server response and render-blocking CSS.","fix":{"tier":"free","feature":"Page Cache + CSS Minify","prompt":"Using my site's xSpeed MCP connection: enable page caching and CSS minification, then re-test First Contentful Paint."},"refs":[{"name":"web.dev — First Contentful Paint","url":"https://web.dev/articles/fcp"}]},{"id":"D1","name":"Time to first byte ≤ 200ms","dimension":"delivery","weight":8,"status":"partial","earned":4,"evidence":"TTFB 396ms measured from Vilnius, Lithuania (EU) (best of 2 requests). This includes the network round trips between us and your origin, not just server time. Google measured your server responding in 142ms from its own network — the gap between the two numbers is distance, not your server.","remediation":"The server rebuilds the page on every request. A page cache answers in 5–15ms.","fix":{"tier":"free","feature":"Page Cache","prompt":"Using my site's xSpeed MCP connection: enable page caching and warm this page with the preloader, then re-check TTFB."},"refs":[{"name":"web.dev — Time to First Byte","url":"https://web.dev/articles/ttfb"}]},{"id":"D2","name":"Page served from cache","dimension":"delivery","weight":7,"status":"pass","earned":7,"evidence":"Cache HIT evidence in response headers","remediation":"Serve HTML from a static cache instead of rebuilding it per visitor.","refs":[{"name":"MDN — HTTP caching","url":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching"}]},{"id":"D3","name":"HTML compression (Brotli/GZIP)","dimension":"delivery","weight":5,"status":"pass","earned":5,"evidence":"Content-Encoding: br","remediation":"Compress text responses — Brotli typically saves ~15–20% over GZIP.","refs":[{"name":"MDN — Content-Encoding","url":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding"},{"name":"RFC 7932 — Brotli","url":"https://www.rfc-editor.org/rfc/rfc7932"}]},{"id":"D4","name":"Efficient cache policy on static assets","dimension":"delivery","weight":5,"status":"pass","earned":5,"evidence":"Passes the Lighthouse cache-policy audit","remediation":"Give CSS/JS/images long Cache-Control lifetimes so repeat views are free.","refs":[{"name":"Lighthouse — Efficient cache policy","url":"https://developer.chrome.com/docs/lighthouse/performance/uses-long-cache-ttl"}]},{"id":"D5","name":"CDN / edge network","dimension":"delivery","weight":3,"optional":true,"status":"info","earned":0,"evidence":"No CDN signature detected","naReason":"Optional — a bonus when present.","remediation":"Optional: put a CDN or Cloudflare in front for global edge delivery.","fix":{"tier":"free","feature":"Cloudflare integration / CDN rewriter","prompt":"Using my site's xSpeed MCP connection: connect Cloudflare (or configure the CDN rewriter) and purge, then re-scan."},"refs":[{"name":"web.dev — Content delivery networks","url":"https://web.dev/articles/content-delivery-networks"}]},{"id":"D6","name":"Clean redirect chain","dimension":"delivery","weight":2,"status":"pass","earned":2,"evidence":"No redirects — the URL answers directly","remediation":"Each redirect adds a full round-trip before the page can even start.","refs":[{"name":"Lighthouse — Avoid redirects","url":"https://developer.chrome.com/docs/lighthouse/performance/redirects"}]},{"id":"A1","name":"No render-blocking resources","dimension":"assets","weight":5,"status":"fail","earned":0,"evidence":"Fails the Lighthouse audit — 8 files: woocommerce-layer.min.css (ewosc9ckcjd.exactdn.com), wce.css (ewosc9ckcjd.exactdn.com), frontend-layer.min.css (ewosc9ckcjd.exactdn.com)… · ~1.6s of first paint","remediation":"Everything blocking first paint here is loaded from another host (ewosc9ckcjd.exactdn.com). You cannot inline or minify those — the fix is to defer them, or load fewer of them.","fix":{"tier":"pro","feature":"Critical CSS + Unused CSS removal","prompt":"Using my site's xSpeed MCP connection: generate critical CSS for the top pages and enable unused-CSS removal, then re-test."},"refs":[{"name":"Lighthouse — Render-blocking resources","url":"https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources"}]},{"id":"A2","name":"Minified CSS and JavaScript","dimension":"assets","weight":4,"status":"pass","earned":4,"evidence":"Passes the Lighthouse audit","remediation":"Ship minified assets — whitespace and comments are pure transfer waste.","refs":[{"name":"Lighthouse — Minify CSS","url":"https://developer.chrome.com/docs/lighthouse/performance/unminified-css"},{"name":"Minify JavaScript","url":"https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript"}]},{"id":"A3","name":"Modern, optimized image formats","dimension":"assets","weight":4,"status":"pass","earned":4,"evidence":"Passes the Lighthouse audit","remediation":"Serve WebP/AVIF at the right compression — usually the single largest byte saving.","refs":[{"name":"Lighthouse — Modern image formats","url":"https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images"}]},{"id":"A6","name":"LCP image discoverable early","dimension":"assets","weight":4,"status":"info","earned":0,"evidence":"Audit not reported for this page","naReason":"Audit not reported for this page","remediation":"Re-run when Lighthouse is available.","fix":{"tier":"free","feature":"Resource Hints (preload) + Lazy Load exclusions","prompt":"Using my site's xSpeed MCP connection: preload the LCP image for this page and exclude it from lazy loading, then re-test LCP."},"refs":[{"name":"web.dev — Optimize LCP","url":"https://web.dev/articles/optimize-lcp"},{"name":"Lighthouse — LCP request discovery","url":"https://developer.chrome.com/docs/lighthouse/performance/prioritize-lcp-image"}]},{"id":"A5","name":"Total page weight ≤ 1.5MB","dimension":"assets","weight":3,"status":"pass","earned":3,"evidence":"1.1MB transferred","remediation":"Heavy pages are slow on every connection — compress, lazy-load, and trim.","refs":[{"name":"Lighthouse — Total byte weight","url":"https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight"}]},{"id":"W1","name":"Platform","dimension":"stack","weight":0,"status":"info","earned":0,"evidence":"WordPress detected (WooCommerce Wholesale Prices 2.2.9)","remediation":"Informational.","refs":[]},{"id":"W2","name":"Caching plugin active","dimension":"stack","weight":4,"status":"pass","earned":4,"evidence":"LiteSpeed Cache (X-LiteSpeed-Cache: hit)","remediation":"WordPress rebuilds every page in PHP unless a caching plugin serves it statically.","refs":[{"name":"WordPress.org — Optimization: caching","url":"https://wordpress.org/documentation/article/optimization/#Caching"}]},{"id":"W3","name":"Powered by xSpeed","dimension":"stack","weight":4,"status":"partial","earned":2,"evidence":"Running LiteSpeed Cache instead","remediation":"xSpeed bundles caching, minification, lazy-load, image optimization and an AI-controllable MCP server in one plugin — and imports settings from other caching plugins in one click.","fix":{"tier":"free","feature":"xSpeed Migration (one-click import)","prompt":"Install xSpeed and use its Migration tool to import your current caching settings, then deactivate the old plugin."},"refs":[{"name":"xSpeed — feature overview","url":"https://xspeedcache.com/features"},{"name":"xSpeed vs other cache plugins","url":"https://xspeedcache.com/comparison"}]},{"id":"W4","name":"AI-controllable (xSpeed MCP)","dimension":"stack","weight":2,"optional":true,"status":"info","earned":0,"evidence":"xSpeed MCP endpoint not reachable","naReason":"Optional — a bonus when present.","remediation":"Optional: connect xSpeed's built-in MCP server and your AI assistant can apply every fix in this report for you.","fix":{"tier":"free","feature":"MCP Server (built into xSpeed Free)","prompt":"In xSpeed → MCP Server, click Connect and paste the config into your AI client — then ask it to fix this report."},"refs":[{"name":"Model Context Protocol","url":"https://modelcontextprotocol.io/"},{"name":"xSpeed documentation","url":"https://xspeedcache.com/docs"}]}],"dimensions":{"speed":{"earned":26.8,"weight":40,"score":67,"applicable":true},"delivery":{"earned":23,"weight":27,"score":85,"applicable":true},"assets":{"earned":11,"weight":16,"score":69,"applicable":true},"stack":{"earned":6,"weight":8,"score":75,"applicable":true}},"overallScore":73,"gradedWeight":91,"grade":"C","level":3,"levelName":"Average","partial":false,"unanalysable":false}},"engine":{"probes":"xspeed-scan/1.0","lighthouse":"13.5.0","psiError":null,"lighthouseAnalysedAt":"2026-09-23T11:19:18.343Z","lighthouseReplayed":false},"platform":{"wordpress":true,"generator":"WooCommerce Wholesale Prices 2.2.9","cachePlugin":"LiteSpeed Cache","xspeed":false,"xspeedVersion":null,"xspeedProVersion":null,"xspeedMcp":false,"xspeedHub":null,"cdn":null,"edgeFingerprint":null,"crawlerTextChars":9382,"renderCache":null,"usesNextImage":false,"stackName":null,"saas":false,"hosting":null},"measured":{"ttfbMs":396,"serverTimingMs":null,"proberRegion":"Vilnius, Lithuania (EU)","redirects":0,"compression":"br","cacheHit":true,"staticFile":false,"lighthouse":98,"lcpMs":789.5104373669146,"cls":0.0001938958085801785,"tbtMs":0,"lighthouseDesktop":98,"lighthouseMobile":82},"icon":null,"restricted":null,"screenshot":"data:image/jpeg;base64,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","screenshotDesktop":"data:image/jpeg;base64,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","checks":[{"id":"S1","name":"Lighthouse performance score (desktop)","dimension":"speed","weight":18,"status":"pass","earned":17.6,"evidence":"98/100 (Lighthouse 13.5.0, desktop)","remediation":"The composite Lighthouse score — every fix below moves it.","refs":[{"name":"Lighthouse performance scoring","url":"https://developer.chrome.com/docs/lighthouse/performance/performance-scoring"}]},{"id":"S2","name":"Largest Contentful Paint ≤ 2.5s","dimension":"speed","weight":8,"status":"pass","earned":8,"evidence":"LCP 790ms","remediation":"Serve the hero content faster: cache the page, preload the LCP image, and ship critical CSS.","refs":[{"name":"web.dev — Largest Contentful Paint","url":"https://web.dev/articles/lcp"},{"name":"Optimize LCP","url":"https://web.dev/articles/optimize-lcp"}]},{"id":"S3","name":"Cumulative Layout Shift ≤ 0.1","dimension":"speed","weight":5,"status":"pass","earned":5,"evidence":"CLS 0.000","remediation":"Reserve space for images/embeds so the page does not jump as it loads.","refs":[{"name":"web.dev — Cumulative Layout Shift","url":"https://web.dev/articles/cls"}]},{"id":"S4","name":"Total Blocking Time ≤ 200ms","dimension":"speed","weight":5,"status":"pass","earned":5,"evidence":"TBT 0ms","remediation":"Less JavaScript on the main thread: defer scripts and drop unused bundles.","refs":[{"name":"web.dev — Total Blocking Time","url":"https://web.dev/articles/tbt"}]},{"id":"S5","name":"First Contentful Paint ≤ 1.8s","dimension":"speed","weight":4,"status":"pass","earned":4,"evidence":"FCP 650ms","remediation":"First paint is gated on server response and render-blocking CSS.","refs":[{"name":"web.dev — First Contentful Paint","url":"https://web.dev/articles/fcp"}]},{"id":"D1","name":"Time to first byte ≤ 200ms","dimension":"delivery","weight":8,"status":"partial","earned":4,"evidence":"TTFB 396ms measured from Vilnius, Lithuania (EU) (best of 2 requests). This includes the network round trips between us and your origin, not just server time. Google measured your server responding in 145ms from its own network — the gap between the two numbers is distance, not your server.","remediation":"The server rebuilds the page on every request. A page cache answers in 5–15ms.","fix":{"tier":"free","feature":"Page Cache","prompt":"Using my site's xSpeed MCP connection: enable page caching and warm this page with the preloader, then re-check TTFB."},"refs":[{"name":"web.dev — Time to First Byte","url":"https://web.dev/articles/ttfb"}]},{"id":"D2","name":"Page served from cache","dimension":"delivery","weight":7,"status":"pass","earned":7,"evidence":"Cache HIT evidence in response headers","remediation":"Serve HTML from a static cache instead of rebuilding it per visitor.","refs":[{"name":"MDN — HTTP caching","url":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching"}]},{"id":"D3","name":"HTML compression (Brotli/GZIP)","dimension":"delivery","weight":5,"status":"pass","earned":5,"evidence":"Content-Encoding: br","remediation":"Compress text responses — Brotli typically saves ~15–20% over GZIP.","refs":[{"name":"MDN — Content-Encoding","url":"https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding"},{"name":"RFC 7932 — Brotli","url":"https://www.rfc-editor.org/rfc/rfc7932"}]},{"id":"D4","name":"Efficient cache policy on static assets","dimension":"delivery","weight":5,"status":"pass","earned":5,"evidence":"Passes the Lighthouse cache-policy audit","remediation":"Give CSS/JS/images long Cache-Control lifetimes so repeat views are free.","refs":[{"name":"Lighthouse — Efficient cache policy","url":"https://developer.chrome.com/docs/lighthouse/performance/uses-long-cache-ttl"}]},{"id":"D5","name":"CDN / edge network","dimension":"delivery","weight":3,"optional":true,"status":"info","earned":0,"evidence":"No CDN signature detected","naReason":"Optional — a bonus when present.","remediation":"Optional: put a CDN or Cloudflare in front for global edge delivery.","fix":{"tier":"free","feature":"Cloudflare integration / CDN rewriter","prompt":"Using my site's xSpeed MCP connection: connect Cloudflare (or configure the CDN rewriter) and purge, then re-scan."},"refs":[{"name":"web.dev — Content delivery networks","url":"https://web.dev/articles/content-delivery-networks"}]},{"id":"D6","name":"Clean redirect chain","dimension":"delivery","weight":2,"status":"pass","earned":2,"evidence":"No redirects — the URL answers directly","remediation":"Each redirect adds a full round-trip before the page can even start.","refs":[{"name":"Lighthouse — Avoid redirects","url":"https://developer.chrome.com/docs/lighthouse/performance/redirects"}]},{"id":"A1","name":"No render-blocking resources","dimension":"assets","weight":5,"status":"fail","earned":0,"evidence":"Fails the Lighthouse audit — 8 files: woocommerce-layer.min.css (ewosc9ckcjd.exactdn.com), wce.css (ewosc9ckcjd.exactdn.com), animate-layer.min.css (ewosc9ckcjd.exactdn.com)… · ~350ms of first paint","remediation":"Everything blocking first paint here is loaded from another host (ewosc9ckcjd.exactdn.com). You cannot inline or minify those — the fix is to defer them, or load fewer of them.","fix":{"tier":"pro","feature":"Critical CSS + Unused CSS removal","prompt":"Using my site's xSpeed MCP connection: generate critical CSS for the top pages and enable unused-CSS removal, then re-test."},"refs":[{"name":"Lighthouse — Render-blocking resources","url":"https://developer.chrome.com/docs/lighthouse/performance/render-blocking-resources"}]},{"id":"A2","name":"Minified CSS and JavaScript","dimension":"assets","weight":4,"status":"pass","earned":4,"evidence":"Passes the Lighthouse audit","remediation":"Ship minified assets — whitespace and comments are pure transfer waste.","refs":[{"name":"Lighthouse — Minify CSS","url":"https://developer.chrome.com/docs/lighthouse/performance/unminified-css"},{"name":"Minify JavaScript","url":"https://developer.chrome.com/docs/lighthouse/performance/unminified-javascript"}]},{"id":"A3","name":"Modern, optimized image formats","dimension":"assets","weight":4,"status":"pass","earned":4,"evidence":"Passes the Lighthouse audit","remediation":"Serve WebP/AVIF at the right compression — usually the single largest byte saving.","refs":[{"name":"Lighthouse — Modern image formats","url":"https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images"}]},{"id":"A6","name":"LCP image discoverable early","dimension":"assets","weight":4,"status":"info","earned":0,"evidence":"Audit not reported for this page","naReason":"Audit not reported for this page","remediation":"Re-run when Lighthouse is available.","fix":{"tier":"free","feature":"Resource Hints (preload) + Lazy Load exclusions","prompt":"Using my site's xSpeed MCP connection: preload the LCP image for this page and exclude it from lazy loading, then re-test LCP."},"refs":[{"name":"web.dev — Optimize LCP","url":"https://web.dev/articles/optimize-lcp"},{"name":"Lighthouse — LCP request discovery","url":"https://developer.chrome.com/docs/lighthouse/performance/prioritize-lcp-image"}]},{"id":"A5","name":"Total page weight ≤ 1.5MB","dimension":"assets","weight":3,"status":"pass","earned":3,"evidence":"1.2MB transferred","remediation":"Heavy pages are slow on every connection — compress, lazy-load, and trim.","refs":[{"name":"Lighthouse — Total byte weight","url":"https://developer.chrome.com/docs/lighthouse/performance/total-byte-weight"}]},{"id":"W1","name":"Platform","dimension":"stack","weight":0,"status":"info","earned":0,"evidence":"WordPress detected (WooCommerce Wholesale Prices 2.2.9)","remediation":"Informational.","refs":[]},{"id":"W2","name":"Caching plugin active","dimension":"stack","weight":4,"status":"pass","earned":4,"evidence":"LiteSpeed Cache (X-LiteSpeed-Cache: hit)","remediation":"WordPress rebuilds every page in PHP unless a caching plugin serves it statically.","refs":[{"name":"WordPress.org — Optimization: caching","url":"https://wordpress.org/documentation/article/optimization/#Caching"}]},{"id":"W3","name":"Powered by xSpeed","dimension":"stack","weight":4,"status":"partial","earned":2,"evidence":"Running LiteSpeed Cache instead","remediation":"xSpeed bundles caching, minification, lazy-load, image optimization and an AI-controllable MCP server in one plugin — and imports settings from other caching plugins in one click.","fix":{"tier":"free","feature":"xSpeed Migration (one-click import)","prompt":"Install xSpeed and use its Migration tool to import your current caching settings, then deactivate the old plugin."},"refs":[{"name":"xSpeed — feature overview","url":"https://xspeedcache.com/features"},{"name":"xSpeed vs other cache plugins","url":"https://xspeedcache.com/comparison"}]},{"id":"W4","name":"AI-controllable (xSpeed MCP)","dimension":"stack","weight":2,"optional":true,"status":"info","earned":0,"evidence":"xSpeed MCP endpoint not reachable","naReason":"Optional — a bonus when present.","remediation":"Optional: connect xSpeed's built-in MCP server and your AI assistant can apply every fix in this report for you.","fix":{"tier":"free","feature":"MCP Server (built into xSpeed Free)","prompt":"In xSpeed → MCP Server, click Connect and paste the config into your AI client — then ask it to fix this report."},"refs":[{"name":"Model Context Protocol","url":"https://modelcontextprotocol.io/"},{"name":"xSpeed documentation","url":"https://xspeedcache.com/docs"}]}],"dimensions":{"speed":{"earned":39.6,"weight":40,"score":99,"applicable":true},"delivery":{"earned":23,"weight":27,"score":85,"applicable":true},"assets":{"earned":11,"weight":16,"score":69,"applicable":true},"stack":{"earned":6,"weight":8,"score":75,"applicable":true}},"overallScore":87,"partial":false,"challenged":null,"unanalysable":false,"gradedWeight":91,"grade":"B","level":4,"levelName":"Fast","reportUrl":"https://xspeedcache.com/scan/r/onara-com-ar-577553d413","recommendations":{"recommend":[{"product":"xSpeed Cache (free)","why":"WordPress with no xSpeed detected. The free plugin plus its setup wizard turns most of the failing checks in this report green.","url":"https://wordpress.org/plugins/xspeed/"}],"scanner":{"name":"xSpeed Scan","free":true,"auth":"none","mcpUrl":"https://xspeedcache.com/scan/mcp","tools":["run_speed_scan","get_speed_scan"],"docs":"https://xspeedcache.com/docs/scan-mcp/","connect":{"claudeCode":"claude mcp add --transport http xspeed-scan https://xspeedcache.com/scan/mcp","mcpServers":{"xspeed-scan":{"type":"http","url":"https://xspeedcache.com/scan/mcp"}}},"note":"Free, no API key. Scan any public site and get the same graded report as this one, with the fix for every failing check."}}}