Case study

The Downfall of INP

A performance campaign I led at Seox across 20 WordPress publishers, from main-thread investigation to changes in Publisher.

Metric Before After Δ
Mobile p75 median 287.5ms 137.5ms −52%
Passing sites 6/20 15/20 +45 pp

Fourteen sites above the threshold

While working at Seox, I led this performance campaign across 20 client sites running on Publisher, the company’s platform. In March 2025, 14 of them were above 200 ms at mobile p75. The fleet median was 287.5 ms. The problem appeared in field data after days of real use, even when Lighthouse looked good.

On a news site, a click shares the main thread with navigation, video players, ads, consent, Analytics and everything else the page needs to operate and make money. CrUX records that experience over a rolling 28-day window. A single PageSpeed run could not diagnose it.

Too many owners for one main thread

By then, Google had already replaced FID with INP. Many publishers began failing their Core Web Vitals assessment because they had not yet adjusted to the new metric. I validated results in CrUX across more than one page type. In 2025, the number of sites above the threshold turned the work into a product campaign.

I went through the sites one by one, cross-referencing CrUX data, DebugBear traces and script execution. The same pattern kept appearing: too many listeners, measurement code loading too early, GTM holding up Analytics and third parties competing for the main thread when someone clicked.

We disabled add-ons that cost more than they returned, changed how we served GA4, removed GTM where it was unnecessary and opened a separate workstream for ads, navbars, the modal and the news reader.

The diagnosis became product work

The team brought some of the fixes into the platform itself. Publisher 3.1 deprecated the GDL and CWV add-ons with the explicit goal of improving INP. It also changed how Google Analytics was delivered to reduce the weight of GTM. Publisher 3.2 extended the changes to Ads, Modal, Navbars and News Reader.

From 287.5 to 137.5 ms

To compare the two periods without changing the sample halfway through, I used the same 20 clients in March and October 2025. All of them were already clients before the campaign and had mobile p75 data available in both months.

Between March and October 2025, the mobile p75 median fell from 287.5 to 137.5 ms, a 52% reduction. Sites in the passing range, with INP ≤ 200 ms, went from 6 to 15 within the same fleet.

MonthSites measuredPassing sitesp75 median
Mar/2025206287.5 ms
Oct/20252015137.5 ms

At site level, 19 of the 20 improved. One held steady.

After green

The release dates and the curve show association, not causation on their own. Ads, consent, commercial changes and rollout pace also affect the result.

On an ad-supported news site, any new script can put work back on the main thread. We kept checking INP after deployment: measure, locate the interaction, attribute it to a component and validate it again with field data.