AI SEO In Detail › Module B · Search Traffic Analysis › Episode 13
Seasonality and Trend Analysis for Organic Traffic
Episode 13 of AI SEO In Detail, a free course in practical SEO analysis: Seasonality and Trend Analysis for Organic Traffic.
Video coming soonThis episode is scripted and in production. The transcript below is the script as written; it may change before the video is published.
Full transcript
1,291 words · script draft, under review.
Intro
Say your clicks are down a quarter compared to last month. Someone asks what went wrong. You start looking for a broken page, a lost ranking, a Google update.
But maybe nothing went wrong. Maybe fewer people searched. Every December, every summer, every end of a season, demand moves, and your traffic moves with it.
In this episode I'll show you how to separate the two, on one of my own sites: a change in demand, which you can't control, and a change in rankings, which you can. With rolling averages, search volumes as a demand baseline, and year over year once you have the history. Which, as you'll see, my own site doesn't have yet.
Three things that move clicks
Think of your clicks as the product of three things.
Demand: how many people search for the things you rank for. Visibility: how often you're shown when they do, which depends mostly on your rankings. And click-through rate: how often people click when they see you.
A drop in clicks can come from any of the three. Episode eleven was about click-through rate. This episode is about the first two, because they're the ones people confuse most. A seasonal dip in demand looks exactly like a ranking loss if all you watch is clicks.
So the goal is to measure demand on its own, and see what's left over.
There's a shortcut you already have: impressions. If your positions are stable, impressions rise and fall with demand. But once rankings move, impressions move too. That's why we need an outside baseline.
Year over year and rolling averages
These are weekly clicks from one of my own sites. The data is real, but anonymized: the domain, the URLs and the search terms are replaced, to keep the focus on the principles and not on the search terms. The numbers are untouched.
The classic first tool is year over year: compare with the same period last year. If clicks drop twenty-five percent from November to December, and they dropped about that much the year before too, you've probably found seasonality, not a problem.
Now look at the left edge of this chart. My site's Search Console history starts in early March this year. Seven months. There is no last year to compare with.
The second tool still works: the rolling average. Daily search traffic is noisy, with a weekly rhythm on most sites. A seven-day average, or simply weekly totals, removes that rhythm. A four-week average, the line on screen, shows the underlying trend. Here it's flat at under two hundred clicks a week through spring, climbs from June, and has levelled off around two thousand four hundred a week since mid-September.
And that's exactly where it gets hard. Is that levelling off a season ending, or growth stalling? With less than about thirteen months of history, you can't separate seasonality from growth.
So here's what you can do instead. Smooth with rolling averages, as here. Bring in an outside demand baseline, which is next. And start storing your own daily pulls now, as we set up in episodes four and six, because Search Console only keeps sixteen months. When you do get a full year, line up the weeks, not just the dates, and watch moving holidays like Easter.
Search volume as a demand baseline
Year over year tells you if the pattern repeats. But it can't tell you what happened to demand this year. For that, you need an outside baseline: monthly search volumes.
Here's the method. Take your most important queries, the ones that bring most of your clicks. Send them to the Google Ads search volume endpoint in DataForSEO. For each keyword, you get a volume per month. That's Google's own advertising data, grouped into monthly buckets. And it typically covers the past twelve months, so it can show you the market's season even when your own history is too short, like mine.
Add up the volumes per month across your basket of keywords, and turn it into an index, with an average month set to one hundred. Now you have a demand curve for your topic, independent of your own site. On screen is the basket for my site: its top hundred queries by clicks, brand searches excluded, with the keywords replaced by placeholders, as always.
Choosing the basket is the real work. Keep it to the queries that drive most of your clicks. Fifty to a few hundred is plenty. Keep the same basket over time, or your index starts measuring a different market.
It's cheap. One task covers up to a thousand keywords and costs around nine cents.
Two traps from this data. First, keywords that are close variants of each other often come back with exactly the same volume. That's one group in Google's data, not two searches. Count it once, or your index double-counts. Second, small keywords report zero when they're below the measurement floor of about ten searches a month. Zero means too small to measure, not no one. We'll go deeper on both in episodes eighteen to twenty.
Separating demand from rankings
Now put three lines on the same chart: your clicks, the demand index, and your average position. First, the two typical patterns, drawn as sketches.
Pattern A. Clicks fall. Demand falls by about the same amount. Position is flat. That's seasonality. Your share of the market didn't change. The market got smaller for a while. Nothing to fix. Note it, and plan your content calendar around it.
Pattern B. Clicks fall. Demand is flat, or even up. Position slips. That's not seasonality. You lost visibility, and it's time for the diagnostic checklist in episode sixteen.
Here's my site, month by month. Clicks rose every single month, from about five hundred in March to over ten thousand in September. Position moved around, between about eight and fourteen, and ended the period at its best. That's neither pattern A nor pattern B. That's growth. The question is how much of it came from the market.
Now the demand line. From March to August it barely moves, from ninety-six to ninety-four. Over the same months, clicks went from about five hundred to almost eight thousand. Demand flat, clicks up more than fifteen times. So this growth is mine: rankings and coverage, not the market.
A useful single number is clicks divided by demand. If that ratio holds steady while both move, the change came from the market. If it moves, the change came from you. Here it climbed every month.
And look further left. Last September the index was at a hundred and forty-seven, almost half again above an average month, and it fell through the winter. That's a hint of seasonality in this topic, something seven months of my own data could never show. Whether it repeats, the next monthly volumes will tell.
Traps in trend analysis
A few traps. If your site grew a lot over the year, with many new pages, as mine did, year over year mixes growth with season. Compare the same set of pages, or the same queries, in both years.
Don't read trends from small numbers. A page with twenty clicks a week can swing thirty percent from pure chance. Group pages by section or topic, and read the trend of the group.
Monthly volumes are rounded, and they arrive late: mine end in August. They're good for the shape of the year, not for a single week.
And skip the latest few days: Search Console data is still incomplete there.
Wrap-up
So: smooth with rolling averages, build a demand index from monthly volumes, compare year over year once you have more than a year of history, and look at clicks per unit of demand. The trend template is linked in the description. Next episode: branded versus non-branded traffic, and why your brand can hide what your SEO is really doing.