Core Web Vitals — LCP, INP, and CLS — are Google's official real-user experience metrics and confirmed ranking signals since 2021. A 0.1-second improvement in mobile load time can lift conversions by 8.4% (Google/Deloitte). Fix the top three items first: compress and prioritize the hero image, switch to a faster host or add a CDN, and set explicit dimensions on every image. These changes improve both your rankings and your revenue per visitor.
What Are Core Web Vitals and Why Do They Change SEO?
Core Web Vitals are three performance metrics Google chose to represent real-user page experience. They are not lab scores — they come from field data collected by Chrome browsers on actual user visits, a dataset called the Chrome UX Report (CrUX). That same data is what Google Search uses to evaluate your site.
The three metrics are:
- LCP — Largest Contentful Paint: How quickly the largest visible element in the viewport — usually the hero image or a big heading — finishes loading and rendering.
- INP — Interaction to Next Paint: How fast the page visually responds to every tap, click, and keystroke across the entire session.
- CLS — Cumulative Layout Shift: How much the page layout jumps unexpectedly during and after loading.
Google announced CWV as ranking signals in May 2020 and enforced them in the Page Experience Update in June 2021. In March 2024, Google replaced First Input Delay (FID) with INP — measuring all interactions, not just the first — raising the interactivity bar significantly.
Why does Google care? A page that takes 7 seconds to load on a phone and jumps around while the user tries to tap a button is a poor search result regardless of its content. Google's business depends on returning results users trust, so experience metrics are a natural extension of relevance metrics.
For Canadian businesses, mobile traffic exceeded 60% of sessions in 2024 (CIRA Canadian Internet Factbook). Mobile connections — even on LTE — are more variable than desktop. Sites tested on a fast office Wi-Fi in Toronto often perform very differently for a user in Moncton on an older Android phone. Google's CWV evaluation reflects that variability, which is why field data, not lab scores, drives rankings.
The bottom line: Core Web Vitals are permanent. Improving them simultaneously boosts rankings and conversion rate — a rare technical investment that moves two growth levers at once.
LCP Explained: Largest Contentful Paint
Largest Contentful Paint measures the time from page navigation to when the browser finishes rendering the largest visible element in the viewport. This is most often a hero photograph, a large CSS background image, a prominent heading, or a video poster frame.
Google's LCP thresholds, measured at the 75th percentile of real page loads:
| LCP Time | Rating | Typical User Impact |
|---|---|---|
| Under 2.5 s | Good ✓ | Strong engagement; bounce rate stays low |
| 2.5 – 4.0 s | Needs Improvement | Noticeable delay; bounce risk increases |
| Above 4.0 s | Poor ✗ | 53% of mobile users abandon; ranking disadvantage |
The most common LCP offenders on Canadian small business websites:
- Uncompressed hero images. A 4 MB iPhone JPEG uploaded directly to WordPress causes LCP of 6–8 seconds on mobile. Convert to WebP and target under 150 KB for a 1200 px wide hero.
- Missing
fetchpriority="high". Without this one-line attribute on the hero<img>tag, the browser treats the hero the same as lower-priority resources and may download them first. - Render-blocking scripts in
<head>. Third-party scripts (live chat, tag managers) loaded synchronously block all rendering until they download and execute. Adddeferto non-critical scripts. - Slow server TTFB. If the server takes 1.5 seconds to send the first byte of HTML, LCP cannot be Good no matter how optimized the images are. TTFB is the foundational constraint.
- CSS background images for the hero. The browser cannot discover a CSS background image until after the stylesheet parses. Use an
<img>tag — discoverable during the initial HTML parse, hundreds of milliseconds earlier.
In practice, fixing the hero image — compressing it, converting to WebP, and adding fetchpriority="high" — resolves 60–70% of LCP failures on typical Canadian SMB sites. It is the highest-leverage single change available.
INP Explained: Interaction to Next Paint
INP replaced FID in March 2024. Where FID only measured the browser's processing delay before handling the very first user interaction, INP measures the complete visual response latency — from tap or click to the next painted frame — across every interaction throughout the entire session.
Thresholds: Good under 200ms · Needs Improvement 200–500ms · Poor above 500ms. INP is scored at the 75th percentile of all interactions, so a single consistently slow action (opening the mobile menu, submitting a form) can push the overall score into Poor.
The most common INP offenders:
- Heavy main-thread JavaScript. JavaScript is single-threaded. Large scripts from analytics, tag managers, and chat widgets executing on load block the browser from responding to input. Tasks over 50ms are "Long Tasks" — the primary INP culprit.
- Google Tag Manager with many active tags. GTM is the leading INP cause on Canadian SMB sites. A container with 15+ live tags can push INP above 500ms on mid-range Android devices. Audit regularly and delete unused tags.
- Heavy WordPress plugins. Some form, slider, booking, and WooCommerce plugins inject substantial synchronous JavaScript that blocks interaction responses for hundreds of milliseconds.
- SPAs without code splitting. React and Vue apps that bundle the entire JavaScript payload upfront create severe INP on mid-range phones — the most common mobile device class in Canada's mid-to-lower-income demographics.
Fixing INP means reducing JavaScript payload, breaking Long Tasks into smaller chunks (using setTimeout or the Scheduler API so the browser can yield between chunks), and deferring non-essential third-party scripts until after the user's first interaction rather than loading them on page arrival.
CLS Explained: Cumulative Layout Shift
Cumulative Layout Shift measures unexpected visual movement of page elements during loading. A button that moves as the user taps it, or text that reflows while someone reads — both are CLS problems. The score is a decimal representing the combined magnitude of unexpected shifts.
Thresholds: Good under 0.1 · Needs Improvement 0.1–0.25 · Poor above 0.25.
CLS is usually the fastest Core Web Vital to fix because it comes from a short list of well-understood causes:
- Images without explicit width and height. When the browser encounters
<img src="photo.jpg">without dimensions, it renders a zero-height placeholder, then shifts all content below downward once the image loads. Fix: addwidthandheightattributes to every<img>tag. - Late-loading web fonts. Google Fonts loading after the browser already rendered text in a fallback system font causes a swap that reflowstext and moves surrounding content. Preload critical fonts with
<link rel="preload">and usefont-display: swapwith a well-matched fallback. - Cookie banners, ads, or chat widgets injected above existing content. These push content down after it has already rendered. Reserve space with a fixed-height container before they load, or anchor the banner to the bottom of the screen.
- Lazy-loaded images in the initial viewport. Lazy loading is valuable for off-screen images but actively harmful on above-the-fold images — the browser reserves no space, causing a shift on arrival. Use
loading="eager"for hero-section images.
A CLS score under 0.1 is achievable for nearly any WordPress or static site with a half-day of work. It is almost always the quickest available win and makes a noticeable difference to mobile users who have experienced buttons moving as they try to tap them.
Why 0.1 Seconds Costs You Customers: The Revenue Numbers
Performance is a revenue metric, not just an SEO metric. The most rigorous published data point: a 2019 Google and Deloitte study found a 0.1-second improvement in mobile load time increased conversions by 8.4% on retail sites. The result was consistent across travel and luxury categories too.
Supporting data that consistently replicates:
- Vodafone improved LCP by 8% and saw 8% more sales.
- Pinterest cut perceived wait times by 40% and saw 15% more signups and 15% more ad revenue.
- BBC loses 10% of users for every additional second of mobile load time.
- Google's 2018 research: 53% of mobile users abandon a page that takes more than 3 seconds to load — before reading a single word.
Applied to a realistic Canadian scenario: a service business with 2,500 organic visits per month at a 2% conversion rate has 50 leads per month. A 0.1-second improvement generating the documented 8.4% lift adds roughly 4 leads per month — 48 per year — from a one-time technical fix. At a typical Canadian service job value of $400–$800, that is $19,000–$38,000 in additional revenue per year from a fix that costs far less than that in development time.
The problem compounds when a slow site also costs you rankings. If a competitor's site loads in 2.1 seconds and yours loads in 5.4 seconds on mobile, Google likely ranks them higher AND they convert more of the traffic they receive. That is a double disadvantage — less traffic arriving, lower percentage converting — both caused by the same performance deficit.
Speed optimization is a fixed, one-time technical cost that pays off continuously. Unlike pay-per-click advertising where lead volume drops to zero when the budget runs out, speed improvements compound: better rankings drive more traffic, which converts at a higher rate, which generates more budget for further growth.
How Google Uses Core Web Vitals as a Ranking Signal
Google has been explicit that CWV are ranking signals, but the nuance matters for how you prioritize them. The Page Experience documentation states CWV function primarily as a tiebreaker when competing pages have similar content quality. A uniquely authoritative page will not lose page-one placement from a Poor LCP score alone. But in competitive niches — local trades, healthcare, web services, real estate — where many pages have comparable content quality, CWV scores are often decisive.
How Google uses the data:
- URL-level field data first. Google evaluates CWV at the individual URL level using 28-day rolling CrUX data. URLs with insufficient traffic fall back to origin-level data — the average across the whole domain. A fast homepage helps all slower blog posts.
- Mobile scores, not desktop. Google completed mobile-first indexing in 2021. Desktop CWV scores do not drive ranking decisions. Always measure and optimize mobile.
- Field data, not lab data. A Lighthouse lab score of 95 in DevTools does not guarantee Good CWV field scores. Lab tests run without real third-party scripts, real network variability, or device thermal throttling. Always verify ranking-relevant performance in Google Search Console's Core Web Vitals report, not just Lighthouse.
The current Page Experience signals Google uses: Core Web Vitals (LCP, INP, CLS), HTTPS, mobile-friendliness, and no intrusive interstitials. HTTPS and mobile-friendliness are essentially universal now — the actionable 2026 focus is CWV, the only signal most Canadian small business sites have not fully addressed.
How to Measure Your Core Web Vitals: Step by Step
Before fixing anything, accurate measurement from the right source is essential. Follow this workflow:
- Start with Google Search Console. Log in, click Core Web Vitals under Experience in the sidebar. This shows URL groups categorized as Good, Needs Improvement, or Poor based on 28-day real-user CrUX data. Export the Poor and Needs Improvement URL lists — these are your ranked priority list. Sites with fewer than ~1,000 monthly active sessions may see "Not enough data" at URL level; Google then uses origin-level averages.
- Run PageSpeed Insights on your five most important pages. Visit pagespeed.web.dev, enter each URL, and select the Mobile tab. Read the "Discover what your real users are experiencing" field data section first. Note which of LCP, INP, and CLS is failing and by how much — the field data section also breaks LCP into sub-parts (TTFB, Resource Load Delay, Resource Load Duration, Element Render Delay) that point directly to the bottleneck.
- Run Lighthouse in Chrome DevTools for file-level diagnostics. Press F12, go to Lighthouse, select Mobile and Performance, run the audit. Scroll to Opportunities and Diagnostics. These sections name specific files and elements — "Image elements do not have explicit width and height" lists the exact images; "Eliminate render-blocking resources" lists the exact script and stylesheet URLs causing delays.
- Use WebPageTest for waterfall-level analysis. At webpagetest.org, run your key URL on a Motorola G4 (representative mid-range Android) from the Toronto or Montréal test location. The waterfall chart shows every resource load in order, identifying which scripts block rendering and for how long.
- Always benchmark mobile, not desktop. Desktop scores are consistently better and are not the scores Google uses for ranking. A desktop score of 92 with a mobile score of 39 is common on unoptimized Canadian sites — and it is the 39 that matters for rankings and real users.
- Recheck after 28 days. CrUX data rolls on a 28-day window. Changes made today begin appearing in Search Console field data in about four weeks. Set a reminder to compare before and after the full cycle.
How to Improve LCP: The Priority Fix Checklist
LCP involves the critical rendering path — the sequential chain of resources the browser must process before painting anything useful. Work through this checklist in order; items near the top have the highest impact-to-effort ratio:
- Convert the hero image to WebP under 150 KB. Use Squoosh (squoosh.app, free) or ShortPixel (WordPress plugin). A 4 MB JPEG compressed to a 110 KB WebP at 82% quality is invisible quality loss with a dramatic size reduction.
- Add
fetchpriority="high"to the LCP image tag. This Priority Hints attribute signals the browser's resource scheduler to download the hero image before lower-priority items. Supported in all modern browsers; single-line HTML change with measurable LCP impact. - Preload the LCP image in
<head>.<link rel="preload" as="image" href="hero.webp" fetchpriority="high">tells the browser to fetch the image during initial document parsing — before it even encounters the<img>tag in the body. - Use an
<img>tag for the hero, not CSS background-image. CSS backgrounds are only discoverable after the stylesheet downloads and parses, adding hundreds of milliseconds of unnecessary delay. An<img>in HTML is discoverable immediately at parse time. - Reduce server TTFB to under 600ms. If your server takes more than 600ms to send the first byte, upgrade hosting, switch to a LiteSpeed plan, or add Cloudflare's free CDN. For WordPress, enable full-page caching (LiteSpeed Cache plugin is free and excellent) and object caching via your host's control panel.
- Add
deferto all non-critical JavaScript. Analytics, chat widgets, and marketing pixels loaded in<head>withoutdeferblock all page rendering until they execute. Deferral costs nothing and consistently reduces LCP. - Serve assets from a CDN with a Canadian edge node. Cloudflare (free), BunnyCDN, and Fastly all have Canadian points of presence in Toronto, Montréal, and Vancouver. Serving a 150 KB hero image from a nearby CDN node versus a US-based shared server measurably reduces LCP for Canadian users.
After completing the top four items, re-run PageSpeed Insights. A typical Canadian site that starts at LCP 6–8 seconds on mobile can reach LCP 2.0–2.4 seconds from hero image optimization plus a CDN or host change alone.
How to Fix INP and CLS: Interactivity and Visual Stability
Fixing INP — reducing main-thread JavaScript blocking:
- Profile slow interactions in Chrome DevTools. Open DevTools → Performance tab → Record → perform the slow interaction → Stop. In the flame chart, look for Long Tasks (red triangles). The Bottom-Up tab identifies which JavaScript function owns the blocking time.
- Audit and reduce third-party tags. Filter by "script" in the Network tab to see all third-party script origins loading. Common high-INP offenders on Canadian SMB sites: Google Tag Manager, Facebook Pixel, LinkedIn Insight Tag, Hotjar, LiveChat. Remove anything not actively generating revenue.
- Delay non-critical third-party scripts. Load GTM and marketing pixels only after the user's first interaction via an event listener, rather than unconditionally in
<head>. This keeps initial page load clean and defers third-party processing until it actually matters. - Break up Long Tasks. JavaScript tasks over 50ms should be split using
setTimeout(fn, 0)or thescheduler.postTask()API, yielding control back to the browser between chunks so it can respond to user input.
Fixing CLS — eliminating unexpected layout shifts:
- Add explicit width and height to every image and iframe. This is the single most common CLS cause and the fastest fix — without these attributes, the browser cannot reserve the correct space before the image loads.
- Preload critical fonts and size-match your fallback. Add
<link rel="preload" as="font" type="font/woff2" crossorigin href="font.woff2">. Usefont-display: optionalto avoid swaps entirely on first load, orfont-display: swapwith CSSsize-adjustandascent-overrideto match the system fallback metrics as closely as possible to the web font. - Reserve space for cookie banners, ads, and dynamic blocks. Wrap consent banners and AdSense units in containers with a
min-heightmatching the element's expected size, preventing the shift when the dynamic content loads. - Remove
loading="lazy"from above-the-fold images. Only apply lazy loading to images the user cannot see on initial page load. Hero images and first-block images must useloading="eager"or no loading attribute.
CMS-Specific Core Web Vitals Tips for 2026
WordPress (most common across Canada): Ships with no built-in performance optimization. The recommended stack for Good CWV: host on a LiteSpeed-enabled plan (LiteSpeed Cache plugin handles caching, CSS/JS optimization, and image WebP conversion at no cost), or use WP Rocket ($49 USD/year) on any host. For images: ShortPixel or Imagify convert uploads to WebP automatically. Avoid Elementor, Divi, and WPBakery unless their built-in performance modes are enabled — these page builders inject 200–600 KB of CSS and JavaScript per page. Lightweight themes like GeneratePress and Kadence output under 30 KB of HTML.
Shopify: Handles hosting, CDN, and SSL automatically — infrastructure is not the problem. CWV issues are almost always theme JavaScript and installed apps. Each app can inject additional scripts; a store with 15 apps can have 15 extra script loads. Audit apps quarterly and uninstall anything not actively driving revenue. Compress product images to WebP using Shopify's native Liquid image_url filter with a width parameter.
Squarespace: Version 7.1 improved LCP significantly — most Squarespace sites now reach Needs Improvement to Good on LCP. CLS remains the common issue. To reduce CLS: disable scroll animations on mobile in the Design panel and avoid video background hero sections (they cause CLS during load).
Wix: Infrastructure improved substantially since 2022. Most Wix sites now score Needs Improvement on mobile LCP. Available levers are limited compared to open platforms: use native image compression, remove unnecessary third-party app widgets, and reduce animations on the homepage.
Webflow: Outputs clean HTML and CSS, hosted on Fastly's CDN, so LCP and TTFB are typically Good out of the box. The main INP risk is heavy JavaScript animation libraries (GSAP loaded globally). Keep interactions minimal and tree-shake any large libraries.
Custom builds (Next.js, Nuxt): Offer the most control and, correctly configured, produce the best CWV scores. Use SSR or SSG for fast TTFB; use built-in image components (Next.js <Image> handles WebP, sizing, and fetchpriority automatically); implement route-level code splitting.
For a full comparison of cost, flexibility, and ongoing maintenance across these platforms, see the website platform comparison guide.
Hosting, CDN, and Canadian Server Considerations
Server location directly affects TTFB, one of the four LCP sub-components. For a visitor in Winnipeg accessing a shared server in Frankfurt, round-trip network latency is 110–130ms before a single byte of content is sent — baked into every page load before any images or scripts are requested.
For Canadian businesses targeting Canadian users:
- Cloudflare free tier as a CDN overlay on any host. Even on US-based shared hosting, Cloudflare routes Canadian visitors through edge nodes in Toronto, Montréal, Vancouver, Calgary, and Winnipeg. This is the fastest zero-dollar performance improvement available. The free tier also provides HTTP/2, HTTP/3, and basic image optimization.
- Canadian infrastructure providers. AWS ca-central-1 (Montréal), AWS ca-west-1 (Calgary), Google Cloud Montréal, and Azure Canada Central/East all offer Canadian data residency. For WordPress, LiteSpeed-enabled hosts with Canadian proximity plans (A2 Hosting, SiteGround) reduce TTFB for Canadian visitors significantly.
- PIPEDA and Quebec Law 25. Under Canada's Personal Information Protection and Electronic Documents Act (PIPEDA) and Quebec's Law 25 (Bill 64), personal data collected through forms and analytics must be handled appropriately. Hosting on Canadian servers simplifies data-residency compliance. Reference: priv.gc.ca (PIPEDA) and the Commission d'accès à l'information (CAI) for Quebec Law 25.
- .ca domains and CIRA. A .ca domain (managed by the Canadian Internet Registration Authority, cira.ca) signals Canadian geographic relevance to both users and search engines. CIRA publishes annual Canadian Internet Factbook data that provides real-world mobile performance benchmarks — a useful reference for setting mobile optimization targets.
Core Web Vitals Measurement Tools Compared
The critical distinction: lab data (simulated, controlled) vs field data (real users, real connections). Google uses field data for ranking — not lab scores.
| Tool | Data type | Scope | Best for | Cost |
|---|---|---|---|---|
| PageSpeed Insights | Lab + Field | Single URL | Quick per-URL check with both data types | Free |
| Google Search Console | Field (CrUX) | Whole domain | Ranking-relevant real-user data; URL groups | Free |
| Chrome DevTools Lighthouse | Lab only | Any page | File-level diagnostics; CI integration | Free |
| Chrome UX Report (CrUX) | Field only | Aggregated | BigQuery trend analysis; comparing domains | Free |
| WebPageTest | Lab only | Single URL | Waterfall charts; film strip; real-device simulation | Free / Paid |
| GTmetrix | Lab only | Single URL | Historical tracking; client-friendly reports | Free / ~$16/mo CAD |
Recommended workflow: Use Search Console for ranking-relevant field data (source of truth). Use PageSpeed Insights for quick per-URL field snapshots. Use DevTools Lighthouse for file-level diagnostics. Use WebPageTest when you need to trace exactly which resource is blocking LCP and in what order.
Do not make optimization decisions based solely on GTmetrix or Lighthouse lab scores. These tools are valuable for diagnosis but are not the data Google uses for ranking.
What Does a Core Web Vitals Audit Cost in Canada?
CWV optimization spans free DIY work to full agency engagements. Realistic Canadian market prices as of June 2026:
| Service | Who it fits | Price Range (CAD) | Expected outcome |
|---|---|---|---|
| DIY (PageSpeed Insights + GSC) | Technical owners with time | $0 | Issues identified; fix quality depends on skills |
| Freelance CWV audit — report only | Sites needing a diagnosis | $400 – $800 | Prioritized issue list; no fixes included |
| Agency audit + recommendations | Mid-size businesses | $800 – $2,000 | Detailed report with fix roadmap |
| WordPress audit + full optimization | WP sites, 5–50 templates | $1,500 – $4,000 | Good scores on all three CWV metrics |
| Ecommerce / custom build CWV project | Shopify, WooCommerce, custom | $2,500 – $8,000+ | Significant improvement across all key page types |
| Ongoing monthly monitoring | Any business investing in SEO | $150 – $500/mo | Regression alerts; monthly CWV reports |
Most Canadian SMBs spend $1,500–$3,500 on a one-time CWV project and see measurable ranking and conversion improvements within 60–90 days — one to two CrUX cycles. At a typical Canadian service job value of $400–$800, the project pays for itself from additional leads generated in the first 30–60 days. For full context on website development and maintenance budgets, see what a website costs in Canada.
Six Core Web Vitals Mistakes Canadian Businesses Consistently Make
- Measuring and optimizing desktop instead of mobile. Google uses mobile-first indexing. A desktop Lighthouse score of 85 with a mobile score of 31 is common on unoptimized Canadian sites. The mobile score is the one that affects your rankings — always benchmark mobile.
- Trusting Lighthouse lab scores as a ranking proxy. A lab score of 90+ in Chrome DevTools does not guarantee Good CWV field data. Real users bring real third-party scripts and real network variability. A site can score 91 in Lighthouse and still have a Poor LCP in Search Console. Always verify field data.
- Optimizing images without fixing TTFB first. If the server takes 2.2 seconds to respond with the first HTML byte, LCP cannot be Good even with a 50 KB WebP hero image. Server response time is a foundational constraint that must be addressed before asset optimization produces Good field scores.
- Loading all GTM tags on page load. GTM is the leading INP cause on Canadian SMB sites. Remarketing pixels, heatmaps, live chat, and A/B testing scripts all loading simultaneously on arrival consumes main-thread time and blocks interaction responses. Delay non-essential tags to fire after the user's first interaction.
- Applying
loading="lazy"to the hero image. Lazy loading prevents the browser from starting to download the LCP image until it is close to the viewport — which, for a hero at the top of the page, adds significant LCP delay. Removeloading="lazy"from every above-the-fold image. - Not rechecking Core Web Vitals after a redesign. Redesigns introduce new hero images, new fonts, new JavaScript components, and new third-party scripts that frequently regress CWV scores. Build a CWV baseline check into your redesign acceptance criteria. See our website redesign checklist for a complete pre-launch verification process.
Case Study: A Calgary HVAC Contractor Gains 22% More Organic Quote Requests
A mid-sized residential HVAC contractor in Calgary received approximately 150 organic visits per month, converting at 1.9% — about 2–3 quote requests per week. Their Search Console Core Web Vitals report showed all three metrics as Poor: LCP 6.4 s, INP 490 ms, CLS 0.31 on mobile.
Root causes identified: a 4.1 MB JPEG hero image (uploaded directly from a DSLR), shared Texas-based hosting with 1.9 s average TTFB, and a GTM container with 16 active tags including two remarketing pixels, a heatmap, live chat, and several legacy tags from previous campaigns no longer in use.
The optimization project took approximately 14 hours over two weeks:
- Hero JPEG (4.1 MB) → WebP (104 KB via Squoosh at 82% quality) +
fetchpriority="high": LCP dropped from 6.4 s to 3.0 s. - Cloudflare free CDN added: Canadian visitors now connect to the Calgary edge node. TTFB dropped from 1.9 s to 310 ms. LCP moved to 2.1 s (Good).
- Width and height attributes added to all 31 images across 5 page templates: CLS dropped from 0.31 to 0.07 (Good).
- GTM audit: 7 inactive legacy tags deleted. Heatmap and live chat moved to an "after first click" trigger. INP dropped from 490 ms to 145 ms (Good).
- Google Fonts self-hosted on the same origin, eliminating the cross-origin DNS lookup step.
After the 28-day CrUX update period, all three Core Web Vitals showed Good in Search Console. Over the following 60 days: organic traffic increased from 150 to 195 visits/month (+30%), conversion rate increased from 1.9% to 2.4%, and organic quote requests went from 2–3 to 3–5 per week — a 22% per-visit improvement compounded by the traffic increase. The project cost was recovered in the first month of improved lead volume.
For industry-specific design benchmarks and examples relevant to trades and professional services, see website examples by industry.
Frequently Asked Questions
What are Core Web Vitals?
Core Web Vitals are three Google-defined metrics measuring real-user page experience: LCP (loading speed of the largest visible element), INP (visual response time to interactions), and CLS (unexpected layout movement). All three are confirmed Google Search ranking signals as of 2024.
What is a good LCP score?
Google considers LCP under 2.5 seconds Good, 2.5–4.0 seconds Needs Improvement, and above 4.0 seconds Poor. Most unoptimized Canadian business sites score 4–8 seconds on mobile, primarily due to large, uncompressed hero images and slow server response.
Did Google replace FID with INP?
Yes. Google replaced First Input Delay (FID) with Interaction to Next Paint (INP) in March 2024. INP measures the full visual response time across all interactions during a page visit — not just the first — making it a more comprehensive and stricter interactivity standard.
Does page speed directly affect Google rankings?
Yes, since the Page Experience Update in June 2021. Core Web Vitals are confirmed ranking signals. They primarily act as a tiebreaker when competing pages have similar content quality. In competitive local niches — trades, healthcare, web services — they are often a decisive differentiator between page one and page two.
How much does a Core Web Vitals audit cost in Canada?
A freelance CWV audit typically costs $400–$800 CAD. An agency audit with a written report runs $800–$2,000 CAD. Full WordPress audit plus optimization is generally $1,500–$4,000 CAD. PageSpeed Insights and Google Search Console are free starting points that identify most issues.
What is CLS and how do I fix it?
Cumulative Layout Shift measures unexpected page movement. Common causes: images without explicit width and height, late-loading web fonts that reflow text, and cookie banners that push content down on arrival. Fix by setting image dimensions, preloading critical fonts, and reserving space for dynamic elements before they load.
How do I measure Core Web Vitals for my website?
Start with Google Search Console's Core Web Vitals report for domain-wide real-user field data. Run PageSpeed Insights on individual URLs. Use Chrome DevTools Lighthouse for file-level diagnostics. Use WebPageTest from a Canadian location for waterfall analysis. Always check mobile — that is what Google uses for ranking decisions.
Which CMS is best for Core Web Vitals?
Webflow and Next.js produce the best CWV scores by default. WordPress achieves excellent scores with LiteSpeed hosting, WP Rocket, and ShortPixel for images. Shopify is reliable if you audit and remove unused apps. Wix and Squarespace have improved significantly but offer less granular optimization control than open platforms.
Get a free Core Web Vitals review
Tell us your site URL and your biggest pain point — we send back a prioritized fix list and a quote to implement it. No payment required.