A falling page RPM is one of the most stressful numbers a publisher can see, and the first instinct is usually to change something. Resist it for a few days. Most RPM drops have a findable cause, and the order in which you look matters more than how quickly you act. This checklist starts with the cheapest explanations and works toward the ones that need deeper investigation.
Step 1: Confirm the drop is real
Before treating a drop as a problem, make sure you are comparing like with like. A surprising share of "RPM drops" turn out to be reporting artifacts.
- Same metric definition. Page RPM (revenue per 1,000 pageviews) and impression RPM (revenue per 1,000 ad impressions) move differently. Check that the dashboard, export or partner report you are reading uses the same one you used last time.
- Finalized versus estimated revenue. Recent days are often estimates that get adjusted later, for example after invalid traffic is removed. Compare finalized periods with finalized periods.
- Time zone. If your ad platform reports in one time zone and your analytics in another, daily pageviews and daily revenue will not line up, which distorts daily RPM.
- Currency. If revenue is converted from another currency, exchange-rate movements alone can shift RPM.
- Reporting delays. A partner whose data arrives late can make the last day or two look weak. Wait for the data to settle before drawing conclusions.
- Pageview counting. A change to your analytics setup, such as a new tag, a consent banner or a single-page-app routing change, can inflate or deflate pageviews and move RPM without any change in revenue.
Step 2: Separate traffic mix from yield
Page RPM is an average across very different audiences. If the mix of visitors changes, the average can fall even when nothing about your ad setup has changed. This is a mix effect. A yield effect is when the same kind of visitor is earning less.
Here is a deliberately simple, hypothetical example with round numbers. Suppose a site has two audience segments, A and B.
| Scenario (hypothetical) | Segment A pageviews and RPM | Segment B pageviews and RPM | Blended page RPM |
|---|---|---|---|
| Baseline month | 50,000 at $10 | 50,000 at $2 | $6.00 |
| Mix effect | 30,000 at $10 | 70,000 at $2 | $4.40 |
| Yield effect | 50,000 at $7 | 50,000 at $2 | $4.50 |
Both scenarios show a similar blended drop, but the causes are completely different. In the mix scenario, each segment earns exactly what it did before; there is simply more of the lower-earning traffic. In the yield scenario, the audience is unchanged but segment A is monetizing worse. The fixes are different too, which is why this split comes first.
Break RPM down by the dimensions that usually differ most:
- Country or region
- Device (desktop, mobile, tablet) and, where relevant, browser
- Traffic source (search, social, direct, referral, newsletters, aggregators)
- New versus returning visitors
- Page type or content category (articles, galleries, tools, home page)
It also helps to split page RPM into its parts: ad impressions per pageview multiplied by impression RPM. If impressions per pageview fell, look at layout, lazy loading and page experience. If impression RPM fell, look at demand, pricing and eligibility.
Step 3: Account for seasonality
Advertiser budgets are not spread evenly across the year. A common pattern is that demand is strongest in the fourth quarter and weaker at the start of the first quarter, as new annual budgets are set and spending resumes gradually. Quarter and month boundaries can also show shifts. This is a pattern, not a guarantee, and it varies by country and vertical.
The useful comparison is year over year for the same period, not just the previous month. If your RPM in early January is down from December but similar to last January, seasonality is the likely explanation.
Step 4: Look for demand-side changes
If the drop is a yield effect and not seasonal, check what changed in how your inventory is sold. Keep a change log if you do not already have one; it makes this step far faster.
- A demand partner was removed or paused, or a partner changed its own buying behavior.
- Bidder timeouts. A shorter timeout, a slower page or a new script can cause bids to arrive too late to compete.
- Floor price changes. Floors set too high can reduce fill; floors set too low can reduce competition for valuable impressions. Check both manual and automated pricing rules.
- Ad unit or layout changes. New sizes, removed sizes or moved placements change both impressions per page and how buyers value them.
- Lazy-loading changes. Loading ads later can improve viewability but reduce impressions per pageview, and the net effect is not always predictable.
- Wrapper, tag or platform updates that shipped around the date the drop began.
Step 5: Check measurement and eligibility
Some drops happen because fewer impressions are eligible for full demand, not because demand fell.
- Consent. In regions with consent requirements, a lower consent rate or a consent signal that is not reaching partners correctly can limit personalized advertising. Check your consent management platform's reporting and whether the signal is being passed to each partner.
- ads.txt and sellers.json. Missing, outdated or mistyped ads.txt lines can stop buyers from purchasing through a partner. Confirm your file is reachable and matches what each partner has asked for. The IAB Tech Lab ads.txt page describes the standard.
- Policy issues and limited ad serving. Check the policy and site status sections of your ad platform. Google's AdSense Help Center and Ad Manager Help Center explain how policy actions and ad serving limits are reported.
Step 6: Review page experience
Buyers increasingly value impressions that are likely to be seen. Changes to the page itself can lower what each impression is worth.
- Slower pages mean users scroll past or leave before ads load.
- Layout shifts frustrate readers and can push ad slots out of view. Google's Core Web Vitals documentation covers how this is measured.
- Ad slots below the fold on templates where few readers scroll that far.
- Viewability. Compare viewability by placement and device before and after the drop.
The checklist, in order
- Confirm the metric, the reporting status (finalized or estimated), time zone, currency and pageview counting.
- Mark the exact date the drop began and list everything that changed around it.
- Split RPM by country, device, traffic source, new versus returning and page type to separate mix from yield.
- Split page RPM into impressions per pageview and impression RPM.
- Compare year over year to rule seasonality in or out.
- Review demand partners, timeouts, floors, ad units and lazy loading.
- Check consent rates and signals, ads.txt, sellers.json and policy status.
- Review page speed, layout stability and viewability by placement.
What not to do
- Do not change several things at once. If you adjust floors, add a partner and move placements in the same week, you will not know which change helped or hurt.
- Do not chase RPM by adding ads. More ad units can lift page RPM briefly while slowing pages, lowering viewability and eroding the returning audience that sustains revenue.
- Do not react to one or two days of data, especially when recent figures are still estimates.
- Do not assume the cause is external. Market conditions matter, but internal changes are often easier to find and fix.
When to get a second pair of eyes
If you have worked through these steps and the cause is still unclear, or the data points in several directions at once, an independent review can help. Someone outside your day-to-day setup can compare reports across partners, check configuration you may not have visibility into, and tell you which explanation the evidence actually supports. If that would be useful, you can discuss your website with PubOS.
Common questions
What is the difference between page RPM and impression RPM?
Page RPM is revenue per 1,000 pageviews. Impression RPM is revenue per 1,000 ad impressions. Page RPM depends on both how many ads load per page and what each impression earns, so the two can move in different directions.
How long should I wait before reacting to an RPM drop?
Wait until the affected days are finalized rather than estimated, and until you can see whether the drop persists for more than a few days. Use that time to gather data rather than to change settings.
Is it normal for RPM to fall in January?
It is a common pattern. Advertiser demand is often strongest in the fourth quarter and weaker at the start of the year. Compare against the same period last year to see whether the drop is in line with seasonality.
Can an ads.txt error lower my RPM?
Yes. If a partner's ads.txt line is missing or incorrect, some buyers may not purchase your inventory through that partner, which can reduce competition and revenue.