Marketers know that poor site performance does not just affect search engine rankings. For publishers, it carries a direct cost at every stage of the revenue chain, from organic traffic through to ad RPM. Only 37% of top 100,000 sites currently pass mobile Core Web Vitals, the worst rate of any traffic tier on the web.
Core Web Vitals are three performance metrics forming the basis of Google's page experience signals: LCP for loading performance, INP for responsiveness to user interactions, and CLS for visual stability. INP replaced First Input Delay (FID) in March 2024, making responsiveness a more complete measure of how a page reacts across the full user journey.
The ideal benchmark is to achieve LCP under 2.5s, INP under 200ms, and CLS below 0.1, based on actual user data. Publishers that hit all three on real user data protect organic traffic, ad viewability, and RPM simultaneously. This playbook covers the benchmarks, ad-specific fixes for each metric, and a monitoring framework to protect both rankings and revenue.
How Core Web Vitals Affect Ad Revenue
Core Web Vitals are a ranking factor in Google's page experience signals, but their impact on publisher revenue extends well beyond search position. Each metric influences a distinct stage of the monetisation process, and the stages connect directly. For a wider explanation of how display ads influence organic performance, see our article on the impact of display ads on SEO.
Search Visibility Brings the Inventory
Publishers with good Core Web Vitals tend to rank higher in Google Search and consistently attract more organic traffic. More traffic means more ad impressions served per day across every placement on the site. This is the foundation. Without it, every other revenue lever, including CPM rates, viewability, and demand quality operates on a smaller base.
Loading Performance Affects Whether Ads Render
If the web page has a slow loading speed, users immediately drop off from the site, even before the ad units have finished loading completely. Above-the-fold inventory is the most exposed, since it carries the highest CPMs and depends entirely on fast loading performance to register. Publishers passing all three Core Web Vitals have seen up to 18% revenue uplift through improved user engagement and more complete page sessions.
Visual Stability Protects Viewability
Cumulative layout shift measures visual stability, and if the CLS is high, it pushes ad units out of the viewport or generate accidental clicks. Both outcomes reduce viewability scores. Premium advertisers and private marketplace buyers set minimum viewability thresholds before bidding, and publishers with poor CLS regularly perform below those thresholds. Better visual stability keeps inventory eligible for the highest-value demand.
Responsiveness Determines Session Depth
Heavy third-party scripts competing for main thread resources make pages feel slow to respond to user interactions. Users exit the site if it's not loading quickly, affecting the scroll depth. As a result, fewer ad units reach the viewable threshold. Improving Interaction to Next Paint means more impressions are completed per session, and it generates more ad revenue per visit.
The chain is straightforward because rankings drive traffic, traffic creates impressions, impressions depend on viewability, and viewability depends on site performance across LCP, INP, and CLS.
The 2026 Core Web Vitals Thresholds
The Core Web Vitals to measure a site's performance have remained unchanged since Google has introduced them, though the metrics have evolved with time. Each metric is assessed at the 75th percentile of field data across page loads, with mobile and desktop measured separately. This means a page needs to perform consistently for actual users and not just in single, random tests.
Below is the snapshot of the ideal CWV benchmarks:
| Metric |
Good |
Needs Improvement |
Poor |
| Largest Contentful Paint (LCP) |
≤ 2.5s |
2.5s–4.0s |
> 4.0s |
| Interaction to Next Paint (INP) |
≤ 200ms |
200ms–500ms |
> 500ms |
| Cumulative Layout Shift (CLS) |
≤ 0.1 |
0.1–0.25 |
> 0.25 |
1. Largest Contentful Paint (LCP)
Largest Contentful Paint (LCP) measures loading performance, specifically the time it takes for the largest visible element in the viewport to render. For 76% of mobile pages, that element is an image, which makes image optimisation one of the most important levers for improving loading performance.
2. Interaction to Next Paint (INP)
Interaction to Next Paint (INP) measures responsiveness to user interactions such as clicks, taps, and key presses across the full lifespan of a page. Earlier, this metric used to be First Input Delay (FID) but it got replaced with INP in March 2024 because FID only captured the first interaction. INP captures all of them, making it a substantially harder standard to meet.
3. Cumulative Layout Shift (CLS)
Cumulative Layout Shift (CLS) measures visual stability by scoring how much content shifts unexpectedly during page loads. Dynamically injected ads without reserved space are among the most common causes of high CLS on publisher sites.
It's worth noting that Google scores each page using field data collected from real users via the Chrome UX Report. It is not some lab data from synthetic tests. Google Search Console surfaces this in the Core Web Vitals report on a rolling 28-day window. Changes you make today may take up to four weeks to reflect in your Core Web Vitals scores.
For a broader breakdown of how each metric works, see our ultimate guide to Core Web Vitals for publishers before moving into the revenue-specific fixes.
Where the Open Web Sits Today
The HTTP Archive Web Almanac 2025 captures Core Web Vitals performance across millions of websites using July 2025 CrUX field data. It is the most comprehensive public benchmark of real-world web performance available, and the numbers tell a clear story for publishers.
| Metric |
Mobile (% good) |
Desktop (% good) |
Publisher-relevant takeaway |
| All three CWV pass |
48% |
56% |
Mobile up from 44% in 2024; desktop improvement marginal. Roughly half the mobile web still fails. |
| LCP |
62% |
74% |
The LCP element is an image on 76% of mobile pages and 85.3% of desktop pages. Image performance is publisher CWV. |
| INP |
77% |
97% |
Mobile up from 74% year-on-year. The mobile-to-desktop gap has narrowed to 20 percentage points. |
| CLS |
81% |
72% |
65% of desktop pages still contain at least one unsized image, the dominant preventable CLS source. |
The Publisher Blind Spot: Top-100,000 Sites
The overall 48% mobile pass rate masks a more acute problem for publishers. Sites in the top 100,000 traffic tier, where most established publishers operate, have the worst mobile CWV pass rate of any popularity segment on the web:
- Top 1,000 sites: 51% mobile good CWV
- Top 10,000 sites: 42% mobile good CWV
- Top 100,000 sites: 37% mobile good CWV (lowest of any tier)
- Long tail (10M+ sites): 48% mobile good CWV
This U-shaped curve points to a familiar publisher problem. Mid-to-large sites often carry complex page templates, programmatic ad stacks, analytics tags, consent tools, video players, and other third-party scripts. They have more technical weight than smaller sites, but not always the same sustained performance investment as the largest platforms.
Three anti-patterns publishers should audit now
1. Lazy-loaded LCP images:
About 16–17% of pages lazy-load their LCP image, a figure that has held steady since 2024. Given the LCP element is an image on 76% of mobile pages, applying loading="lazy" to it delays the render of the most important visible element and pushes back the LCP timestamp directly.
2. Unsized images causing layout shifts:
65% of desktop pages still contain at least one image without explicit dimensions. When width and height are missing, the browser cannot allocate space for the element before it loads. Setting explicit dimensions, or using the CSS aspect ratio property, allows the browser to reserve space in the layout and prevents unexpected layout shifts from pushing ad units out of the viewport.
3. Main-thread blocking from third-party scripts:
Median mobile TBT rose 58% year-on-year to 1,916ms in 2025, up from 1,209ms in 2024. Desktop median TBT moved from 67ms to just 92ms over the same period. The Web Almanac specifically notes that news portals and e-commerce sites require more JavaScript execution than simpler websites, making good INP scores harder to achieve.
4. Secondary pages carry the hidden INP risk:
Mobile home pages now achieve 80% good INP, but secondary pages barely make it up to 69%. These pages accumulate third-party scripts and analytics tags that activate deeper in the user interactions flow. They are also where programmatic ads serve more frequently, making secondary page INP the most consequential optimisation gap for publisher revenue.
Where Publift-managed Publishers Sit
Here we compare how the publishers benefiting from Publift are faring against the Open Web benchmarks of 2025:
| Publisher Tier |
Open Web 2025 Benchmarks (Mobile – HTTP Archive) |
Improvements Achieved Using Publift |
| Small (<1M monthly views) |
~48% pass all three CWV |
5-letter-words.com fixed failing CWV and boosted page RPM 40% with fewer ads. |
| Mid-market (Top 100k tier) |
37% pass all three CWV (weakest tier) |
ShopGoodwill achieved 23% revenue growth with steady viewability and better UX. |
| Enterprise (Top 1k tier) |
51% pass all three CWV |
Trader Interactive’s lazy loading delivered 88% RPM uplift and 62% viewability gains. |
The data clearly shows these publishers are achieving stronger revenue and viewability outcomes by addressing Core Web Vitals issues directly within their ad stack.
The Core Web Vitals Playbook for Publishers
Follow these five steps in order to improve Core Web Vitals across your site. Each step builds on the previous one. Skipping diagnosis means fixing the wrong thing.
Step 1: Diagnose Your Baseline
Open the Core Web Vitals report in Google Search Console. It groups URLs into Good, Needs Improvement, and Poor buckets using field data from actual users. Note which metric is poor and which URL groups are affected.
For page-level detail, run PageSpeed Insights on the URLs with the highest traffic. It overlays field data with lab data and breaks LCP into its four sub-phases, showing exactly which element eats up the most loading time. Use the Web Vitals Chrome Extension to check core web vitals scores in real time as you navigate your own pages.
Identify whether the performance issues are consistent across the site or concentrated on specific page templates. Establish whether home pages or secondary pages are worse. For publishers, article pages, category pages, and review pages often carry heavier ad and analytics stacks than the homepage.
Step 2: Optimise CLS for Ads
Cumulative Layout Shift (CLS) on publisher sites is often caused by ad units loading into the page without pre-reserved space. Start by defining every major ad slot as an explicit container in the initial HTML before allowing ad scripts to run. This gives the browser a fixed space to work with before the ad creative loads.
Set explicit width and height attributes on every ad container. For responsive units where creative height can vary, use the CSS aspect ratio property or a minimum-height placeholder. For web fonts, apply font-display: swap so text renders immediately in the fallback font rather than creating a flash of invisible text that causes surrounding content to shift.
Step 3: Improve Your INP Scores
Interaction to Next Paint failures on publisher pages are caused by third party scripts blocking the main thread. Every SSP, analytics tag, and consent manager competes for the same execution thread each time a user interacts with the page. The result is delayed instant feedback and a failing INP score.
Load ad scripts with async or defer where supported. For header bidding, reduce auction timeout values and consolidate SSP calls. Use web workers to move non-UI JavaScript execution off the main thread entirely. For tasks that must remain on the main thread, break them into smaller chunks using scheduler.yield() to keep user input response times under the 200ms threshold.
Secondary pages are where INP tends to be worst. Audit their ad and analytics stack separately from home pages.
Step 4: Fix the LCP
Loading performance on publisher pages is primarily due to image or video files. With the LCP element being an image on 76% of mobile pages, optimising that single asset is the highest-leverage fix available.
Remove loading="lazy" from your LCP image and add fetchpriority="high". Then convert the image to a modern format such as WebP or AVIF, which reduces file size without sacrificing quality. It helps to reduce load speed significantly at the resource level. Serve images via a content delivery network to reduce round-trip latency for critical resources across multiple pages simultaneously.
Mobile friendliness directly affects LCP outcomes. Google uses mobile-first indexing, so slow mobile LCP affects search engine rankings even when desktop performs well. Always test LCP on throttled mobile connections before considering a fix complete.
Step 5: Monitor continuously
Core Web Vitals scores get affected as ad tags, plugins, and new content accumulate. The minimum cadence is to review the Core Web Vitals report in Google Search Console month on month.
Connect GA4 to the web-vitals JavaScript library to capture LCP, INP, and CLS from actual users in production. Correlating these performance metrics with Google Ad Manager RPM data gives publishers a direct view of the impact of the website's performance on revenue. Set alerts for any URL group moving from Good to Needs Improvement.
Ad-Specific Core Web Vitals Fixes
The following four fixes target the ad stack directly and do not require changes to core site architecture. For a deeper look, see our guide on how to load ads without impacting page speed.
1. Using Lazy-Load Judiciously
Lazy loading should only be applied to ad units that sit below the visible viewport on initial page load. Above-the-fold units need to load immediately because they carry the highest viewability and CPM potential.
Lazy-loading ads below the fold reduce initial load weight and improve loading performance without compromising on the viewability on your highest-value placements. Applying it to all ad units indiscriminately, including header or top-of-article positions, suppresses viewability scores, and where the LCP element is close to an ad unit, it pushes back your LCP timestamp.
2. Adapting Ad Density by Device and Connection
High ad density on mobile devices and slow connections create main thread congestion that degrades both INP and page loads. Use adaptive density controls that reduce the number of ad units based on detected device class and network speed.
Fewer, better-targeted ad units on constrained connections typically outperform a full ad load on viewability and CPM while protecting page speed. Publift's Fuse platform applies this logic automatically, adapting ad density to each user's connection and device so that website speed and revenue are managed together rather than traded off against each other.
3. Contain Sticky Ad Behaviour
Sticky ad units can create layout shifts when they activate late, resize unexpectedly, or rely on JavaScript to control their position during scroll. Use position: sticky inside a pre-sized container with explicit dimensions. This keeps the sticky unit within a defined space and reduces the risk of reflows as the user moves through the page.
Avoid using JavaScript to control sticky activation where possible. CSS-based sticky positioning is usually more stable because it does not require the browser to recalculate layout in the same way during scroll. Test on throttled mobile connections to ensure that visual stability is maintained throughout the scroll path before deploying to production.
4. Pre-Size In-Content Ad Placements
In-content ads are a common source of CLS because they are often injected into article bodies after the page has started loading. If the browser does not know an ad slot is coming, it cannot reserve space for it.
Define every in-content ad placement in the initial HTML. Use a minimum-height container that matches the smallest expected creative size, so the page layout remains stable even before the ad renders. For responsive formats, the CSS aspect ratio property maintains the correct dimensions across viewport widths and prevents unexpected layout shifts when the ad creative loads.
Tools to Measure Core Web Vitals
Site owners can measure Core Web Vitals using a combination of field data and lab data tools. Each serves a different purpose in the diagnostic workflow.
Field data (real user monitoring)
- Google Search Console (GSC): The Core Web Vitals report groups URLs by status and tracks trends using real user data over a rolling 28-day window. The GSC is the starting point for any publisher site performance audit.
- Chrome UX Report (CrUX): The Chrome User Experience Report is the field data source that powers Google Search Console and PageSpeed Insights. Use the CrUX Dashboard for no-code trend tracking or BigQuery for deeper core web vitals data analysis across multiple pages and popularity tiers.
- Google Analytics 4: Integrates with the web-vitals library to capture LCP, INP, and CLS from live sessions. Correlating web vitals metrics with revenue data from Google Ad Manager builds a direct page experience and RPM view alongside your standard additional performance metrics.
Lab data (diagnostic)
- PageSpeed Insights: Runs a Lighthouse audit on a single URL and surfaces CrUX field data where available. The best tool for breaking down LCP and identifying where time is being lost during the initial page load.
- Web Vitals Chrome Extension: Displays LCP, INP, and CLS in real time as you browse. It is the fastest way to spot-check Core Web Vitals issues across individual pages without opening DevTools.
- Lighthouse: It is the audit engine in Chrome DevTools. Run from the browser or in CI pipelines to catch site performance regressions before deployment. It provides the most detailed lab data breakdown for diagnosing core web vitals issues at the code level.
- WebPageTest: It provides a clear view of sequencing via waterfall charts, filmstrip views, and multi-location testing. Best suited for diagnosing ad script load ordering, critical resources blocking the initial page load, and how ad tech stacks behave under throttled mobile conditions.
Frequently Asked Questions
Do ads hurt Core Web Vitals?
Yes, ads can hurt Core Web Vitals when they are loaded without performance controls. Third-party scripts can worsen INP, unsized ad containers can increase CLS, and above-the-fold ad requests can compete with the LCP element. Publishers can reduce this impact with reserved space, deferred scripts, and adaptive density.
Does improving Core Web Vitals increase ad revenue?
Indirectly and measurably, yes. Better Core Web Vitals improve search engine rankings, which drives more organic traffic and more ad impressions. Lower bounce rates mean more impressions per session. Better visual stability also helps preserve viewability, which matters for premium advertisers and private marketplace demand.
Which Core Web Vitals have the biggest impact on ad revenue?
All three metrics affect revenue differently. LCP influences whether key content and ads load quickly. CLS protects viewability by maintaining stability for ad slots. INP affects session depth by measuring how quickly pages respond to user interactions. Publishers should track all three together.
What changed when INP replaced First Input Delay?
First Input Delay only measured the browser's response to the very first user input on a page. Interaction to Next Paint measures the response latency of every click, tap, and key press across the full session. For publishers, it has become more difficult to achieve. Ad scripts, consent managers, and analytics tags degrade main thread responsiveness continuously throughout the page experience, not just at initial page load. Many sites that passed First Input Delay comfortably are now failing INP.
How can publishers reduce CLS from ads?
Publishers can reduce CLS by reserving space for every ad slot before the creative loads. Use explicit width and height values, minimum-height containers, or the CSS aspect-ratio property. This helps the browser allocate space early and prevents unexpected layout shifts during page loads.
What Core Web Vitals scores does a publisher need to achieve?
Good Core Web Vitals require all three thresholds at the 75th percentile of real-user sessions: LCP under 2.5 seconds, INP under 200ms, and CLS below 0.1. Reaching these thresholds puts a publisher ahead of most of its competitive set on Google's ranking signals and creates stronger conditions for viewability-based ad revenue.