An affiliate publisher improves page speed and ad viewability with lazy-loaded ad zones
Blockframe, a crypto comparison publisher, was loading eleven ad units on every page view. Loading fewer, later, earned it more.
- 2.1s (from 4.8s)
- Largest Contentful Paint (mobile, p75)
- 0.04 (from 0.31)
- Cumulative Layout Shift
- 71% (from 46%)
- Ad viewability
- +19%
- Revenue per thousand sessions
The problem
Blockframe Media is a fictional name for an anonymised affiliate publisher that runs exchange and wallet comparison pages, coin price pages, beginner guides and a news section across four European markets. Around three-quarters of its traffic arrives on phones from search.
Its revenue came from two sources: affiliate commissions and display advertising. The display side had grown by accretion. A typical article carried eleven ad units, all requested as soon as the page opened through a header bidding setup with a long timeout. The consequences were measurable. On mobile, the 75th percentile Largest Contentful Paint was 4.8 seconds, well outside the 2.5 second threshold Google treats as good. Ads arriving late pushed content down the screen, giving a Cumulative Layout Shift score of 0.31 against a good threshold of 0.1. Search visibility had been slipping for a year.
The advertising numbers were no better. Average viewability was 46 percent, meaning most impressions served were never actually seen, and direct advertisers had started buying on viewable impressions only. The publisher was paying a performance cost for ads that earned little.
What they did
- Audit and cut. Revenue was analysed by slot position. Four units at the bottom of pages together produced under 5 percent of display revenue. They were removed, along with a second in-article unit on short pages.
- Reserved space. Every remaining zone was given fixed dimensions in the page layout for each breakpoint, so that the space exists before the ad does and nothing moves when it fills.
- Lazy loading. Only the first unit is requested at page load. Every other zone is watched with the browser's IntersectionObserver interface and requested when the reader scrolls to within roughly one screen height of it. Header bidding auctions for those zones run at that moment, with a shorter timeout.
- Scripts out of the way. Ad and analytics scripts were deferred until after the main content rendered, and two redundant tags were removed. Refresh was limited to units that had been in view for at least thirty seconds.
- Compliance unchanged. Affiliate disclosures and the risk warnings that some markets require alongside crypto promotions stayed in the page itself and were not moved into lazy-loaded components, so they render immediately regardless of scrolling.
The changes were rolled out to half of traffic for four weeks to allow a like-for-like comparison.
Results
Mobile Largest Contentful Paint at the 75th percentile fell from 4.8 to 2.1 seconds, and Cumulative Layout Shift from 0.31 to 0.04. Total ad impressions fell by about a third, as expected. Viewability rose from 46 to 71 percent, which lifted the average price achieved per impression and brought two direct advertisers back. Net display revenue per thousand sessions rose by 19 percent. Pages per session increased modestly, and organic search traffic began recovering in the following quarter, though the publisher is cautious about attributing that to a single cause.
What others can take from it
Impressions that are never seen are a cost, not an asset. They slow the page, depress viewability averages and lower what buyers will pay for the rest of the inventory.
Reserving space is the cheapest fix on the list. It took two days of work and accounted for almost all of the layout shift improvement.
The trigger distance matters. Set too close to the viewport, ads appear after the reader has scrolled past; set too far, the benefit is lost. Blockframe tested several values and settled on about one screen height, slightly more on fast connections.
Finally, the split test was what persuaded the commercial team. Fewer ads earning more money is a hard claim to accept without a control group.