News and publishing sites live a contradiction that no other type of site experiences with the same intensity. Their business model rests largely on advertising, which requires scripts, real-time auctions, ads that arrive late and take up space. At the same time they depend on organic traffic and on Google channels such as Discover and Top stories, where page experience matters, and on readers who quickly abandon a slow or unstable page. Every ad added brings revenue and takes away performance.
This tension is not solved by giving up advertising, but by managing it well. In this article we look at the typical Core Web Vitals problems of news sites, magazines and ad-heavy blogs, and the solutions that let you keep revenue and reading experience together: ad slots that do not move the text, ads loaded at the right moment, care with infinite scroll and measurements that link the metrics to revenue.
CLS and ad slots
The most visible problem, and the one that most often takes a publishing site outside the thresholds, is CLS. An ad arrives after the text: the page is painted, the reader starts reading, then the auction ends, the ad loads and pushes everything that follows down. The reader loses their place, and sometimes taps the ad by mistake. On a page with five or six ad slots in the body of the article, these shifts add up quickly.
The solution is to reserve the space from the start: every ad container must have a minimum height equal to the format that appears in it most often. The figure comes from the ad system’s reports, which show for each slot the distribution of formats served. If a slot receives different formats, for example 300×250 and 300×600, you reserve the height of the most frequent one, accepting a shift only in the less common cases, or you choose to limit the slot to formats of similar sizes. An “Advertisement” label and a neutral background in the container make the empty space understandable to the reader while they wait.
.slot-pubblicita {
min-height: 250px; /* most frequent format for this slot */
display: flex;
align-items: center;
justify-content: center;
background: #f5f7fa;
}
@media ( min-width: 1024px ) {
.slot-pubblicita--laterale {
min-height: 600px; /* on desktop the sidebar slot serves tall formats */
}
}
What remains to be decided is what to do when the slot is not filled, because the auction produced no ad. Collapsing the empty container generates a shift; leaving it open leaves a hole. The reasonable choice depends on position: slots above or near the visible portion are better left open, perhaps with alternative content such as an internal promotion; those much further down can be collapsed before the reader gets there. The most widely used ad systems offer options to manage the collapsing of empty slots, to be configured with this logic.
Some formats are intrinsically more problematic. Expanding ads, banners inserted at the top of the page after loading and formats that open between paragraphs push the content by construction. Ads anchored at the bottom, with fixed positioning, and full-screen interstitials do not shift the layout, but the latter have a negative impact on the experience and Google considers them intrusive when they cover the content as soon as you land on the page.
The weight of programmatic advertising
The second problem is the work advertising demands of the browser. In programmatic advertising, before an ad is shown an auction takes place in which several buyers participate: each has its own script, its own network requests, its own checks. On top of this come the scripts of the ad management system, those for viewability and security verification, and the code of the ads themselves, sometimes heavy. On many publishing sites advertising is the main item of processor work.
The effect shows up above all in INP: ad scripts produce long tasks on the main thread just as the reader scrolls, taps a link or opens the menu. But it also affects LCP, when ad resources compete with the article’s lead image, and the data and battery consumption of mobile devices.
Levers to reduce it
- Fewer auction participants. Each additional buyer brings diminishing marginal revenue and constant performance costs. Analyzing which participants really win auctions often lets you remove several without significant losses.
- Shorter timeouts. The auction has a maximum time after which it proceeds with the bids received. Long timeouts wait for slow buyers at everyone’s expense; shorter ones reduce the wait with often negligible effects on revenue.
- Lazy loading of ads. Ads at the bottom of the article should not be requested when the page opens. The main ad management systems let you request them when the slot approaches the visible area, with benefits also for measured viewability and therefore for the value of the ads themselves.
- Reload in moderation. Reloading ads after a certain time increases impressions, but repeats all the auction work while the user reads. It should be limited to slots that are actually visible and with reasonable intervals.
- Scripts at the right moment. Ad code should be loaded asynchronously and after the article’s critical resources, never in a way that blocks the rendering of the text.
The lead image and LCP
In articles the LCP element is almost always the lead image or, in its absence, the headline. The rules are the general ones: image in the HTML with high priority, no lazy loading, correct dimensions and formats, as explained in the article on lazy loading. Publishing sites add two recurring pitfalls. The first is banners at the top of the page, above the headline, which can themselves become the largest element or push the article out of the visible area. The second is subscription systems and paywalls, which sometimes hide the content and then show it after a JavaScript check, delaying the painting of the text.
Infinite scroll of articles
Many news sites, at the end of an article, automatically load the next article, and then another, changing the address in the browser bar. The goal is to increase page views and ad impressions. From a performance point of view, though, this model behaves like a Single Page Application: the page keeps growing, with dozens of images and ad slots in memory; CLS and INP accumulate over the whole session and are attributed to the first article; every new article brings new auctions and new scripts. After a few articles, on less powerful smartphones scrolling becomes slow and interactions laborious.
An alternative is to offer, at the bottom of the article, a selection of related reads as normal links, and make the transition instant with Speculation Rules: each article stays a page of its own, with correctly measured metrics and memory freed on every navigation, and the reader still has the feeling of continuous reading. If infinite scroll is kept, it is worth at least limiting the number of articles loaded in sequence and removing from the document those already read.
AMP and after
For years many publishers published AMP versions of their articles, also because they were required to appear in some news sections of search results. Since 2021 that requirement no longer exists: normal pages can appear in those spots, and page experience is assessed with the same Core Web Vitals. Many publishers have abandoned AMP to concentrate on a single version of the site, fast for everyone. It is the most sustainable route: one version to maintain, optimized with the techniques described in this article, instead of two with different compromises.
Comments, embedded posts and video
Besides advertising, articles often contain external elements: embedded social posts to quote a statement, videos from sharing services, third-party comment systems, polls. Each brings its own JavaScript and, often, a height that changes when the content arrives. The solutions are those already seen for third-party iframes and for video: facades that load the content on click, reserved space, deferred loading. For social posts, a quotation in HTML with a link to the original keeps the journalistic value without the weight of the widget; for comments, loading the system only when the reader reaches the bottom of the article, or on a button click, avoids making those who do not read them pay the cost.
An example
An online magazine with mostly mobile traffic has a CLS at the 75th percentile of 0.32 and an INP of 380 milliseconds on articles. The analysis shows six ad slots in the body with no reserved height, a banner at the top that appears after the headline, a dozen auction participants with a three-second timeout and ads reloaded every thirty seconds even outside the visible area. The changes reserve the height of each slot based on format reports, move the top banner below the headline with reserved space, cut participants to the six most profitable with a timeout of a second and a half, enable lazy loading of ads and limit reloading to visible slots. After a month CLS falls to 0.05 and INP below 200 milliseconds; viewable impressions increase and revenue per session stays substantially unchanged, with more page views per visit.
Measuring revenue and experience together
The most effective way out of the opposition between advertising and performance is to measure both with the same data. A Real User Monitoring system, linked to analytics and ad data, lets you see for each page template the Core Web Vitals, page views per session, reading time and revenue per session. Often it emerges that sessions with faster, more stable pages produce more page views and more viewable impressions, partly or fully offsetting the reduction in slots or auction participants.
The most rigorous method is a controlled test: a lighter ad configuration, for example with fewer slots or fewer auction participants, is served to part of the readers, and revenue per session, page views and metrics are compared with those of the current configuration. A test of a few weeks gives an answer based on your own data, far more convincing than any external estimate, as we saw when discussing the economic return of performance.
In short
On publishing sites Core Web Vitals are put to the test above all by advertising: ads that arrive late and shift the text, auctions and scripts that occupy the processor, banners that compete with the lead image. To these are added infinite scroll, which accumulates work and memory, and paywalls that delay the content.
The solutions make it possible to preserve revenue: reserved space for every ad with the height of the most frequent format, fewer auction participants and shorter timeouts, ads loaded when they are about to become visible, moderate reloading, articles as separate pages with prerendering instead of infinite scroll. And above all measurements that put experience and revenue together, so that the decision on how much advertising is sustainable is taken on data and not on impressions.