jarrah
Blog/Analytics

Does Page Speed Affect SEO? What Marketers Get Wrong About Core Web Vitals

Page speed matters for SEO — but not the way most marketers think. We break down lab vs field data, show which metrics Google actually uses for rankings, and share real tag-level audit data showing what's actually slowing your site down.

04 Jun 202612 min readJarrah Growth Marketing

If you've ever run your site through Google PageSpeed Insights and panicked at a score of 40-something, you're not alone. Marketing teams routinely treat their Lighthouse score like a credit score — a single number that determines their fate in Google's rankings.

The reality is more nuanced than that. Page speed does affect SEO, but not through the metric most marketers are watching. The Lighthouse Performance score that PageSpeed Insights shows you is a lab test. Google's actual ranking signal comes from an entirely different dataset — real user measurements collected over 28 days.

This article breaks down what Google actually measures, why your Lighthouse score can be misleading, and what you should focus on instead. We'll include real data from a tag-level performance audit we conducted on a SaaS company's homepage — because the theory only goes so far without numbers to back it up.

Yes, Page Speed Affects SEO — But It's a Tiebreaker, Not a Dealbreaker

Google confirmed in 2021 that page experience — including Core Web Vitals — is a ranking signal. But it's important to understand what kind of signal it is.

Core Web Vitals act as a tiebreaker. When two pages are equally relevant, equally authoritative, and equally well-optimised for a search query, the one with better page experience may rank higher. But page speed alone will not rescue thin content, and a slow site with genuinely useful content will still outrank a fast site with nothing to say.

This matters because it affects where you should invest your effort. If your content strategy is weak or your backlink profile is thin, spending weeks optimising your Lighthouse score won't move the needle on rankings. Fix the fundamentals first.

That said, page speed has a direct impact on something that matters more than rankings: conversion rate. Research consistently shows that every 100ms improvement in load time correlates with roughly a 1% lift in conversions. For high-traffic sites, that's real revenue — and it's a stronger business case for performance work than the SEO signal alone. These are the kinds of marketing metrics that actually matter when building a case for technical investment.

The Three Core Web Vitals Metrics That Google Actually Uses

Core Web Vitals are three specific metrics that Google uses to assess page experience. Each one measures a different dimension of the user's experience:

LCP

Largest Contentful Paint — Loading

How long until the largest visible element (usually a hero image or headline) renders. Threshold: ≤ 2.5 seconds is "Good". LCP is the metric most directly tied to perceived load speed — if the main content takes too long to appear, users bounce.

INP

Interaction to Next Paint — Interactivity

How long the browser takes to respond to user interactions (clicks, taps, key presses). Threshold: ≤ 200 milliseconds is "Good". INP replaced First Input Delay (FID) in March 2024 because it captures all interactions during a session, not just the first one.

CLS

Cumulative Layout Shift — Visual Stability

How much the page layout shifts unexpectedly while loading or during interaction. Threshold: ≤ 0.10 is "Good". CLS is caused by images without dimension attributes, dynamically injected banners, late-loading fonts, and consent pop-ups that push content around.

The critical point: these metrics are measured on real users via the Chrome User Experience Report (CrUX), not in a lab. Google collects anonymised performance data from Chrome users who visit your site and aggregates it over a 28-day rolling window. That aggregated field data is what determines your Core Web Vitals assessment — and your eligibility for any SEO benefit.

Core Web Vitals thresholds

LCP
Good: ≤ 2.5s
Needs work
Poor: > 4.0s
INP
Good: ≤ 200ms
Needs work
Poor: > 500ms
CLS
Good: ≤ 0.10
Needs work
Poor: > 0.25

Lighthouse Score vs Core Web Vitals — Why They're Not the Same Thing

This is where most marketers go wrong. They open PageSpeed Insights, see a Performance score of 37, and assume Google is penalising them. But the Lighthouse score and Core Web Vitals are fundamentally different measurements.

Lab data vs field data

Lighthouse is a lab test. It loads your page once in a simulated environment — a throttled CPU, a throttled network connection, no extensions, no cached data. It measures metrics like Total Blocking Time (TBT) and Time to Interactive (TTI) that only exist in this synthetic context.

Core Web Vitals use field data from CrUX. This is aggregated performance data from real Chrome users visiting your site on their actual devices, with their actual network connections, their actual browser extensions, over a 28-day window.

The gap between these two can be enormous. In a recent audit we ran on a SaaS company's homepage:

  • Lighthouse Performance score: 37 (mobile, simulated throttling)
  • Lighthouse CLS: 0.000 — zero layout shift detected in the lab
  • CrUX CLS (field): 0.50 — five times the "Poor" threshold
  • CrUX LCP (field): 0.7s desktop, 1.7s mobile — both "Good"
  • CrUX INP (field): 106ms desktop — "Good"

The Lighthouse score of 37 suggests a deeply broken page. But in the field, real users experienced good loading speed and good interactivity. The actual CWV failure was CLS — layout shifts that only occurred during real user interaction (scrolling, consent banners appearing, dynamically injected elements). The lab test missed it entirely because Lighthouse only measures the initial page load, not ongoing user interaction.

Conversely, a site can score 90 on Lighthouse and still fail CWV if layout shifts are triggered by real-world user behaviour that the lab test doesn't simulate.

Different interactivity metrics

Lighthouse measures TBT (Total Blocking Time) — the total time the main thread is blocked by long JavaScript tasks during page load. It's a useful diagnostic metric, but it's lab-only and does not factor into Google's ranking algorithm.

CWV measures INP (Interaction to Next Paint) — the actual responsiveness of the page when real users click, tap, or type. INP has the strongest published correlation with conversion rate of any web performance metric. It's also what Google uses for rankings. TBT is a proxy for INP in the lab, but it's not the real thing.

Lab vs field — same site, different story

Lighthouse (Lab)

Performance37
TBT1,721ms
LCP11.3s
CLS0.000

Single synthetic page load

CrUX (Field)

CWV AssessmentFAILED
INP106ms
LCP0.7s
CLS0.26

28-day real user data

Same site. Lab says interactivity is the problem (TBT). Field says it's layout stability (CLS).

Your Marketing Tags Are Probably the Biggest Problem

Every article about page speed tells you to "optimise images" and "minify CSS." That advice isn't wrong, but it misses the elephant in the room for most marketing sites: the JavaScript loaded by your tag manager.

We recently audited a SaaS company's homepage by systematically blocking individual tags and re-running Lighthouse after each change. The results were striking.

The GTM baseline

When we blocked all GTM-loaded tags, the performance impact was dramatic:

+10

Performance score

−67%

Main-thread blocking

−9.1s

Time to interactive

That's a 9-second improvement in time-to-interactive — just from removing the tag manager's payload. The page went from taking over 20 seconds to become fully interactive on a mobile device to around 11 seconds. Still not great, but the tags alone accounted for nearly half of the total delay.

Tag-by-tag impact ranking

We then tested each tag individually. Here's how much main-thread blocking time (TBT) each one contributed, ranked from worst to least impactful:

#Tag categoryTBT reduction
1Ad platform pixel (primary)−831ms
2Analytics property #3−763ms
3SEO analytics tool−748ms
4Call tracking script−746ms
5A/B testing platform−743ms
6Analytics property #1−724ms
7Ad remarketing pixel−703ms
8Analytics property #2−686ms
9Consent management platform−664ms
10Ad platform pixel (secondary)−647ms

Three things jump out from this data:

  • Three duplicate analytics properties were loaded simultaneously. Each runs its own JavaScript runtime. Deduplicating to one property would eliminate roughly 700ms of redundant blocking time — a pure configuration fix that requires no code changes.
  • An A/B testing platform was contributing 743ms of TBT despite having no active experiments running on the homepage. Tags should be paused when not in active use.
  • The consent management platform appears to add 664ms of TBT — but removing it actually made things worse (more on this below).

The consent manager paradox

One of the most counterintuitive findings: blocking the consent management platform reduced its own TBT contribution by 664ms, but increased overall Time to Interactive by 8.3 seconds.

Why? The consent manager was gating other tags from firing until the user granted consent. Without it, every deferred tag fired simultaneously at page load — ad pixels, analytics, remarketing scripts, all at once. The consent banner was acting as an unintentional performance optimisation by staggering when tags could execute.

The lesson: you can't evaluate tags in isolation. Removing a tag that looks "slow" can make performance worse if it's controlling when other tags fire. This is why a systematic, tag-by-tag audit matters — and why you should always measure the full page impact, not just individual TBT deltas.

The GTM Paradox — Google's Own Tool Hurting Google's Own Metrics

There's an uncomfortable irony at the centre of this conversation. Google tells you to improve your Core Web Vitals for better search rankings. Google also provides Google Tag Manager, which is the primary vehicle for loading the JavaScript that degrades those same metrics.

Every tag you add to GTM fires JavaScript on the user's main thread. GA4 alone loads hundreds of kilobytes of script. Add in ad conversion pixels, remarketing tags, A/B testing platforms, and analytics tools, and you can easily accumulate 1-2MB of JavaScript executing during page load — all orchestrated by Google's own tag management system.

The solution Google offers for this problem is server-side GTM (sGTM). Instead of loading tag JavaScript in the user's browser, sGTM moves tag execution to a server you control. The browser sends a single measurement hit to your server, and the server handles forwarding data to Google Analytics, Google Ads, Meta, and any other platform.

Server-side tagging genuinely solves the performance problem — and improves data quality by routing measurement through your own domain as first-party traffic. If you want the performance benefit with less operational overhead, Google Tag Gateway offers a simpler (but more limited) alternative that only covers Google's own services. We've written a detailed comparison of Google Tag Gateway vs server-side GTM if you want to evaluate which approach fits your stack.

But sGTM requires infrastructure (Cloud Run or App Engine hosting), ongoing maintenance, and deeper technical expertise. It's the right investment for businesses with a multi-platform media mix and serious measurement requirements — but it's not a quick fix you can implement on a Friday afternoon.

What Marketers Should Actually Do (and What to Stop Wasting Time On)

Stop doing these things

  • Stop using your Lighthouse score as a KPI. It's a diagnostic tool, not a ranking signal. Report on CrUX field data instead.
  • Stop optimising for TBT as an SEO metric. TBT is lab-only. Google's ranking signal uses INP from real users. TBT is useful for debugging, but it's not what moves rankings.
  • Stop assuming a low Lighthouse score means Google is penalising you. Check your CrUX data first. You may be passing CWV in the field despite a mediocre lab score.

Start doing these things

  1. Check your CrUX data monthly. Open Google Search Console → Core Web Vitals. This is the data Google uses for rankings. If all three metrics are "Good" here, your page experience is not hurting your SEO — regardless of what Lighthouse says.
  2. Audit your tag stack. Open GTM, list every tag, and confirm each one is actively needed. Remove duplicate analytics properties, pause A/B testing tags when no experiments are running, and verify legacy ad pixels are still connected to active campaigns.
  3. Prioritise CLS if your CWV is failing. In our experience, CLS is the most common reason sites fail Core Web Vitals — not JavaScript load time. Check for images without explicit width/height attributes, dynamically injected banners, late-loading web fonts, and consent pop-ups that shift content. These are front-end fixes, not tag management issues.
  4. Wait 28 days after changes before measuring. CrUX is a rolling window. Don't deploy a fix and check the next day — the old data needs to cycle out. Set a calendar reminder for 4 weeks post-deployment.
  5. Make the business case on conversions, not SEO. A 100ms improvement in load time correlates with ~1% conversion lift. That's a revenue number your CFO can act on. The SEO benefit of CWV is real but modest — the conversion impact is where the ROI case is strongest.

How to Check Your Core Web Vitals

Three tools, in order of usefulness for marketers:

1. Google Search Console → Core Web Vitals

The most actionable view. Shows which URLs are "Good", "Needs Improvement", or "Poor" — grouped by issue type. This is the same data Google uses for ranking. Check it monthly.

2. PageSpeed Insights → "Field Data" section

Enter any URL and look for the "Discover what your real users are experiencing" section at the top. This shows CrUX field data. Ignore the lab data section below it for SEO purposes — it's useful for debugging but doesn't affect rankings.

3. CrUX Dashboard or BigQuery

For historical trend analysis, the CrUX dataset is publicly available in BigQuery (chrome-ux-report.all.YYYYMM). You can query any origin without needing Search Console access — useful for competitive benchmarking.

If your site doesn't have enough traffic to appear in CrUX (the threshold is roughly 1,000+ monthly page views in Chrome), CWV won't factor into your rankings at all. In that case, focus on content and authority first — page speed becomes relevant once you have the traffic volume for Google to measure it.

Frequently Asked Questions

Does Lighthouse score affect SEO?

Not directly. Google uses CrUX field data from real users for its ranking signals — not Lighthouse lab scores. A site can score 37 on Lighthouse and still pass Core Web Vitals in the field, or score 90 and fail. Lighthouse is useful for diagnosing issues, but your CrUX data is what matters for search rankings.

Do Core Web Vitals really matter for SEO?

Yes, but as a tiebreaker signal, not a primary ranking factor. When two pages are equally relevant and authoritative, the one with better CWV may rank higher. But strong content and backlinks still outweigh page speed. The bigger business case for CWV is conversion rate — faster, more stable pages convert better.

Does Google Tag Manager slow down my website?

It can significantly. In our audit, blocking all GTM-loaded tags reduced main-thread blocking time by 67% (−1,164ms) and cut time-to-interactive by 9 seconds on mobile. The impact depends on how many tags are loaded and how they're configured. Duplicate analytics properties and legacy ad pixels are common culprits.

What is the difference between Lighthouse and Core Web Vitals?

Lighthouse is a lab testing tool that runs a single synthetic page load under controlled conditions. Core Web Vitals are field metrics collected from real Chrome users over a 28-day rolling window. They measure different things: Lighthouse uses TBT for interactivity, while CWV uses INP from actual user interactions. Google uses CWV (field data) for rankings, not Lighthouse (lab data).

How long after fixing Core Web Vitals will I see results?

At least 28 days. CrUX data is based on a 28-day rolling window of real user data from Chrome. After deploying changes, you need to wait for the old data to cycle out. Set a calendar reminder for 4 weeks post-deployment rather than checking daily — the data won't change overnight.

Can I have a low Lighthouse score but still pass Core Web Vitals?

Yes. This is common. Lighthouse simulates a single mobile page load on a heavily throttled connection, which penalises heavy JavaScript. But in the field, real users on faster devices and connections may experience the site differently. A site scoring 37 on Lighthouse can have "Good" INP and LCP in CrUX because real-world conditions are less constrained than the lab simulation.

Need a performance audit?

Jarrah runs systematic tag-level performance audits for marketing teams — identifying which tags are costing you the most main-thread time, which can be safely removed, and whether server-side tagging is the right next step for your measurement stack.

Talk to us →

Keep reading

Similar articles