Short answer
Compare the same weeks against the previous year rather than the previous month. A seasonal decline leaves average position stable while clicks and impressions fall together, and it recovers on the same calendar pattern. A demotion moves average position, and it does not recover when the season turns.
Almost every traffic diagnosis starts by comparing this month against last month, which is the one comparison guaranteed to confuse seasonality with an algorithm change. Demand moves on a calendar. Rankings do not.
Getting this wrong runs in both directions and both are expensive. Treating a seasonal dip as a demotion sends a team into months of unnecessary content work. Treating a real demotion as seasonality means doing nothing while the cause sits unaddressed through reassessment after reassessment. The test that separates them takes about fifteen minutes.
What is the year-on-year test?
Set Search Console to compare the affected period against the same dates last year, not against the preceding period. Seasonality repeats annually, so comparing like calendar periods removes it from the picture entirely and leaves only what actually changed.
- Open Performance, Search results, then the date filter and choose Compare.
- Select Custom, and set your affected dates against the identical dates one year earlier.
- Enable all four metrics: clicks, impressions, CTR and average position.
- Read the four together rather than looking at clicks alone.
- Repeat with the year before that if your data reaches back far enough, since one year could itself have been unusual.
Search Console retains sixteen months, which is just enough for a single year-on-year comparison and not enough for two. If this matters to your business, export the data annually so the comparison stays available.
How do I read the result?
Four metrics produce four distinct signatures, and they are unambiguous once you know what to look for.
| Clicks | Impressions | Average position | Verdict |
|---|---|---|---|
| Down vs last year | Down | Held or improved | Demand fell. Seasonal or market-wide, not a demotion |
| Down vs last year | Down | Worse | A genuine ranking loss |
| Down vs last year | Held | Held | Click displacement, covered separately |
| Held vs last year | Down | Improved | A reporting change, nothing happened |
| Up vs last year | Up | Any | You are fine. Month on month misled you |
The first row is the seasonal signature and the key detail is average position. If your positions held, Google did not demote you. Fewer people searched, or fewer of the people searching were yours to win.
The last row is more common than you would expect. A business whose traffic is up 12 percent year on year can be convinced it is in crisis because last month was its annual peak and this month is not.
Which industries have the strongest seasonality?
If your sector is on this list, run the year-on-year test before anything else. In these verticals a month-on-month comparison is almost meaningless on its own.
- Retail and ecommerce. November and December carry a disproportionate share of the year, so January always looks catastrophic against December and never is.
- Travel and hospitality. Booking demand peaks months before the travel itself, so the seasonal curve does not align with the season you would expect.
- Tax, accounting and legal. Sharp annual spikes around filing deadlines, then near-silence. The off-season is not a decline.
- Education and training. Enrolment cycles produce two or three peaks a year with deep troughs between them.
- Health and fitness. January dominates, and the decline from February onward is the pattern rather than a problem.
- B2B and professional services. Weaker seasonality but real holiday effects, with July, August and late December consistently soft in most markets.
Even outside these sectors there is a weekly rhythm worth knowing. Most B2B sites lose half their weekday traffic at weekends. A report that starts on a Saturday and compares against a period starting on a Tuesday will show a drop that means nothing.
How do I separate a seasonal drop from an update that ran at the same time?
This is the genuinely hard case, and it happens more often than chance would suggest because Google has repeatedly shipped updates in December. The December 2020 core update, the December 2021 product reviews update, the December 2022 helpful content and link spam updates, the December 2024 core and spam updates and the December 2025 core update all ran through the retail peak.
When both are in play, three checks separate the contributions.
- Compare against last year, not last month. If you are down 40 percent on last month but level with last year, the season explains it and the update did not touch you.
- Check whether position moved. Demand does not change your position. If average position is worse year on year, something reassessed you regardless of the season.
- Check whether the recovery arrived on schedule. Seasonal traffic returns when the season does. If January came and your traffic did not recover to last January’s level, the decline was not seasonal.
That third check is the most reliable and the most patient. It requires waiting for the season to turn, but it is definitive in a way the others are not.
What if my industry itself is declining?
There is a third possibility that gets misread as both. Search demand for your topic can fall permanently, which looks like a seasonal dip that never recovers and like a demotion that never responds to fixes.
The signature is impressions falling year on year while your average position holds or improves, and it persisting across multiple annual cycles. You are ranking as well as ever for searches that fewer people are making.
Google Trends confirms it in two minutes. Check your main topics over five years. If the curve is falling independently of your site, no amount of recovery work reverses it, and the correct response is to widen into adjacent topics rather than to rewrite what you have.
This matters commercially because it is one of the situations where recovery work is the wrong purchase. It belongs in the same category as the cases covered in how long recovery takes: a real problem with no algorithmic solution.
This is not seasonality if
- Your average position got worse year on year. Demand does not change where you rank. Something reassessed your site.
- The drop happened on a single date rather than as a curve. Seasonality is gradual. A step change on one day is an event.
- Only one section of the site fell. Seasonal demand affects a whole category, not one template while its siblings hold.
- Competitors in the same sector held steady. If the season fell, it fell for everyone. Check a few competitor domains in any visibility tool.
- The season turned and nothing came back. The definitive test. Seasonal traffic returns on schedule; a demotion does not.
- Your indexed page count fell. That is technical. Demand does not remove pages from the index.
How do I stop confusing the two in future?
Build the comparison into how you report rather than reaching for it only in a crisis. Three habits remove most of this problem permanently.
- Report year on year as standard. Month on month is for operational pacing. Year on year is for judging whether anything is actually wrong.
- Export your Performance data annually. Sixteen months of retention means a two-year comparison is impossible unless you keep it yourself, and two years is what you need to know whether a single year was odd.
- Record your seasonal shape once. A simple month-by-month index of a normal year, built from two or three years of data, turns every future question into a five-minute check.
Once seasonality is ruled out, the remaining causes are covered in the four causes triage, and the drop analyzer will find whether your decline is a step change on a date or a gradual curve, which is itself one of the strongest signals in this whole diagnosis.
Frequently asked questions
How do I know if my traffic drop is seasonal?
Compare the same weeks against the previous year rather than the previous month. If clicks and impressions fell while average position held, demand changed rather than your rankings. If average position also got worse, it is not seasonal.
Why is month-on-month comparison misleading?
Because demand moves on an annual calendar. January against December always looks catastrophic for retail and never means anything. Year-on-year removes the seasonal shape and leaves only what genuinely changed.
Can a Google update and a seasonal dip happen together?
Yes, and it has happened repeatedly because Google has shipped December updates in 2020, 2021, 2022, 2024 and 2025. Check average position year on year, since demand cannot move your position but a reassessment can.
How long does seasonal traffic take to recover?
It returns when the season returns, on the same calendar pattern as previous years. If the season turned and your traffic did not come back to the equivalent level, the decline was not seasonal.
What if search demand for my topic is falling permanently?
Check Google Trends over five years. If impressions fall year on year while your position holds, you rank as well as ever for searches fewer people make. No recovery work reverses that, and the answer is to widen into adjacent topics.
Does weekend traffic count as seasonality?
It is the same effect on a weekly cycle. Most B2B sites lose around half their weekday traffic at weekends, so any comparison whose periods start on different weekdays will show a difference that means nothing.
Ruled out the season and still down?
Then something did reassess your site, and the next question is which system and when. Send your Search Console access and within 48 hours I will tell you the cause and the date it started. Free, no obligation, and if the answer turns out to be demand rather than rankings I will tell you that too.
Get free recovery audit