Seasonality: the reason your comparison is probably wrong
Your traffic changed and you cannot tell whether it is your work, the season, or the day of the week.
Short answer
Search traffic moves on cycles you did not cause: a strong weekly cycle, monthly patterns, holiday effects and annual seasonality in most categories. Comparing any two arbitrary periods imports those cycles into the result. Compare whole weeks, and compare against the same period last year rather than against last month.
The weekly cycle is the one that catches everyone
Most categories have pronounced weekday and weekend patterns, often differing by a large margin. A comparison window containing a different number of weekdays than its comparison has a built-in difference before anything you did. This is the most common invisible error in SEO reporting.
Month lengths are not comparable
February against March is three days short before anything else happens. Comparing calendar months without normalising to a daily average builds an error of around ten percent into the comparison, which is larger than most of the effects people are trying to detect.
Annual seasonality
Most categories have one. Tax, education, retail, travel and B2B software all have predictable annual shapes, and B2B has the additional pattern of demand collapsing over holidays and recovering in January. A December decline is usually December.
How to see yours
Plot daily clicks over the longest period you have and look for the repeating shape. If you have a year, compare the same month across both years. If you do not, that is the strongest argument for holding on to your exports: seasonality is only visible in history you kept.
Compare like with like
Year on year is the cleanest comparison, because it holds the season constant. Trailing twenty-eight days against the previous twenty-eight is the best available when you lack a year of data. Month against previous month is the worst common choice and the most widely used.
Separating season from a real problem
A seasonal decline affects your whole category and shows up as impressions falling with position roughly stable. A real problem usually shows position moving, or the decline concentrated on specific pages or queries while the rest holds. Segment before concluding.
Why this matters more than it sounds
Every SEO decision rests on a comparison. If the comparison is wrong, the decision is unfounded, and you will not find out, because the traffic keeps moving for other reasons and the story keeps making sense.
Questions
- I do not have a year of data. What do I compare against?
- Trailing twenty-eight days against the previous twenty-eight, in whole weeks. It does not remove annual seasonality but it removes weekday composition, which is the larger error at short horizons.
- Does seasonality affect rankings or just volume?
- Mostly volume: the same position with fewer searchers produces fewer clicks. If your position is also moving seasonally, that usually means competitors are more active in the same window.
- How do I report this to a stakeholder?
- Show the year-on-year comparison alongside the month-on-month one. The gap between them is the seasonality, and it is far more persuasive than describing it.
Measured, not asserted
A full history is what makes this visible. ihatepdf.cv accumulated 224 days of daily data on the way to 100,542 users, and reading month against month within it produced very different conclusions from reading the whole series: one month grew 61% with nothing shipped, which no month-on-month reading would have explained correctly.
Free tool for this: Noise or Signal. No account, nothing uploaded.
Where this goes deeper
Every number on this page comes from one complete dataset: one product taken from zero to 100K+ users on search alone, with nothing spent on advertising. The full argument is Chapter 14 and Chapter 15 of the book. Five chapters are free to read.