Watch for changes
duncanwilliams.io loads faster with WebSpeed
Measured PageSpeed before and after WebSpeed optimization — no plugins, no migration.
Speed Index from a single check. Repeat checks of the same page typically differ by around 30%, so read the two times as a direction, not a precise multiplier.
From the measured LCP gain: −1.1 s.
Core Web Vitals are a Google ranking signal, but work as a “tiebreaker” — they matter most when two pages are roughly equal in relevance and content. The biggest SEO benefit comes from moving out of the Poor zone (score < 50).
From the measured LCP gain: −1.1 s.
Google / Deloitte (2019): 0.1 s improvement → +8% conversions in retail. Portent: each extra second of load time reduces conversion rate ~4%.
From the measured LCP gain: −1.1 s.
Based on Google data: pages loading in 3 s vs 1 s show ~32% higher bounce rate. Estimate scales proportionally to LCP improvement and is site-specific.
From the measured page weight: ≈ 0.95 → 0.56 g per visit.
Transferred bytes × ≈0.5 g of CO₂ per MB, a common average for networks and devices. The real figure depends on the hosting and the visitor’s connection.
Forecasts, not measurements: measured gains × published studies — tap any underlined label for the source.
You 71 — in the fastest quarter
You 95 — in the fastest quarter
You 3.3 s — in the fastest quarter
You 0.7 s — in the fastest quarter
Fastest quarter ≤ 5.3 s · you 7.8 s
Fastest quarter ≤ 1.1 s · you 1.4 s
Fastest quarter ≤ 1.6 MB · you 1.9 MB
Fastest quarter ≤ 1.8 MB · you 2 MB
Based on 1115 sites WebSpeed has measured, across every platform, as they are, without our optimization. Updated 24 Sep 2026.
Speed
what the visitor sees| Metric | Now | Fast | Δ |
|---|---|---|---|
| PageSpeed scoreblends the five below | 71 | 74 | +3 |
| First Contentful Paint. The moment the browser renders the first piece of real content — the first sign to the visitor that the page is loading.≤ 1.8s | 2.6 s | 2.7 s | No change beyond run-to-run noise. |
| Largest Contentful Paint. The time it takes for the largest image or text block in the viewport to render — one of Google's three Core Web Vitals.≤ 2.5s | 7.8 s | 6.3 s | −20% |
| How quickly the visible part of the page fills in during load, averaged over time — a lab metric that rewards showing content sooner.≤ 3.4s | 3.3 s | 2.7 s | −19% |
| Total Blocking Time. The total time the main thread was blocked by long tasks during load — the lab metric that stands in for real-world responsiveness.≤ 200ms | 30 ms | 10 ms | No change beyond run-to-run noise. |
| Cumulative Layout Shift. A score for how much visible content unexpectedly jumps around while the page loads — one of Google's three Core Web Vitals.≤ 0.1 | 0 | 0 | No change beyond run-to-run noise. |
| LCP breakdownobserved load, no throttling | |||
| What the largest visible element was — an image or a block of text. The two are sped up by different means. | Image | Image | same |
| Time until the first byte of the HTML arrived.TTFB | 31 ms | 108 ms | No change beyond run-to-run noise. |
| Time between the first byte and the moment the browser started downloading the LCP image. Long when the image is found late — lazy-loaded, set from CSS or JS.until the image is requested | 1.0 s | 518 ms | −49% |
| Time spent downloading the LCP image itself — its weight and the connection.downloading the image | 553 ms | 44 ms | −92% |
| Time between the resource being ready and the element being painted — blocked by CSS, fonts or scripts.until it is painted | 100 ms | 109 ms | No change beyond run-to-run noise. |
Page weight
loaded during the test| Metric | Now | Fast | Δ |
|---|---|---|---|
| Files the browser downloaded during the test. | 175 | 88 | −87 |
| The page itself, before anything it references. | 1143 KB | 1134 KB | No change beyond run-to-run noise. |
| Scripts downloaded during the test. Fewer can mean deferred past the test window, not removed from the site. | 89960 KB | 50525 KB | −45% |
| Stylesheets downloaded during the test. | 11 KB | 11 KB | No change beyond run-to-run noise. |
| Web font files downloaded during the test. | 270 KB | 270 KB | No change beyond run-to-run noise. |
| Images downloaded during the test. Images below the fold may load later, after the test. | 21232 KB | 21232 KB | No change beyond run-to-run noise. |
| Third-partyother companies’ servers | |||
| Distinct third-party domains the page downloaded from — analytics, chat, embeds, fonts, CDNs. | 7 | 8 | No change beyond run-to-run noise. |
| Bytes downloaded from those third-party domains. | 1.6 MB | 1006 KB | −38% |
Speed
what the visitor sees| Metric | Now | Fast | Δ |
|---|---|---|---|
| PageSpeed scoreblends the five below | 95 | 98 | +3 |
| First Contentful Paint. The moment the browser renders the first piece of real content — the first sign to the visitor that the page is loading.≤ 1.8s | 0.7 s | 0.9 s | No change beyond run-to-run noise. |
| Largest Contentful Paint. The time it takes for the largest image or text block in the viewport to render — one of Google's three Core Web Vitals.≤ 2.5s | 1.4 s | 0.9 s | −36% |
| How quickly the visible part of the page fills in during load, averaged over time — a lab metric that rewards showing content sooner.≤ 3.4s | 0.7 s | 0.9 s | No change beyond run-to-run noise. |
| Total Blocking Time. The total time the main thread was blocked by long tasks during load — the lab metric that stands in for real-world responsiveness.≤ 200ms | 20 ms | 0 ms | No change beyond run-to-run noise. |
| Cumulative Layout Shift. A score for how much visible content unexpectedly jumps around while the page loads — one of Google's three Core Web Vitals.≤ 0.1 | 0.01 | 0.027 | No change beyond run-to-run noise. |
| LCP breakdownobserved load, no throttling | |||
| What the largest visible element was — an image or a block of text. The two are sped up by different means. | Image | Text | changed |
| Time until the first byte of the HTML arrived.TTFB | 18 ms | 110 ms | No change beyond run-to-run noise. |
| Time between the first byte and the moment the browser started downloading the LCP image. Long when the image is found late — lazy-loaded, set from CSS or JS.until the image is requested | 407 ms | — | |
| Time spent downloading the LCP image itself — its weight and the connection.downloading the image | 372 ms | — | |
| Time between the resource being ready and the element being painted — blocked by CSS, fonts or scripts.until it is painted | 38 ms | 488 ms | +450 ms |
Page weight
loaded during the test| Metric | Now | Fast | Δ |
|---|---|---|---|
| Files the browser downloaded during the test. | 175 | 87 | −88 |
| The page itself, before anything it references. | 1142 KB | 1134 KB | No change beyond run-to-run noise. |
| Scripts downloaded during the test. Fewer can mean deferred past the test window, not removed from the site. | 89959 KB | 50525 KB | −45% |
| Stylesheets downloaded during the test. | 11 KB | 11 KB | No change beyond run-to-run noise. |
| Web font files downloaded during the test. | 5276 KB | 4236 KB | −15% |
| Images downloaded during the test. Images below the fold may load later, after the test. | 20161 KB | 18159 KB | No change beyond run-to-run noise. |
| Third-partyother companies’ servers | |||
| Distinct third-party domains the page downloaded from — analytics, chat, embeds, fonts, CDNs. | 7 | 8 | No change beyond run-to-run noise. |
| Bytes downloaded from those third-party domains. | 1.7 MB | 1.1 MB | −37% |
PageSpeed scores are measured by Google PageSpeed Insights and are not guaranteed: they vary run to run and depend on network, device and third-party code.
Pick how hands-off you want it
The before/after check is free to run; it isn’t one of these plans. Choose a plan when you’re ready to make the speed-up permanent — or buy the report once and apply it yourself.
- The whole optimization pipeline, live
- One site
- Proxy or on-site SDK, no code changes
- Cached delivery keeps your site up during origin outages
- Priced by monthly visits, scales with you
We connect it for you.
- Everything in Fast, across multiple sites
- Priority cache — your pages stay warm
- Support with a named contact
- One invoice for the whole portfolio
Agencies and multi-site owners.
- Everything in Growth
- A config built by hand for your site
- What only you can change, written up for your team
- Set up, measured and maintained by us
We look at your site by hand first, then keep it tuned. Six months minimum.
Subscriptions start with a 14-day free trial (Fast and Growth), then run for a minimum of 6 months — you commit only after the trial. Fast is priced by monthly visits; indicative launch pricing.
Not ready for a subscription?
Buy the Audit once and apply it yourself — the same findings the pipeline acts on, written up as instructions.
- One site, up to 5 pages you choose
- The same fixes Fast applies, written up as a guide you run yourself
- Server settings, code changes and ready-to-paste head snippets
- Before/after PageSpeed from the free check (PDF / HTML / MD)
- Re-issued free for a year as your site changes
Not useful? Email us within 14 days and we refund it. A document, not a service — you apply it; Custom is the same work done for you.