To separate seasonality from a real SEO change, measure a page against pages you left alone over the same calendar days and read the gap. Seasonality is a pattern in search demand that repeats on the calendar, so a seasonal swing in clicks is not evidence that a change worked or failed.
- Google suggests setting the Search Console date filter to the last 16 months to see whether a drop recurs yearly because of a holiday or trend (Google, Search Central, read 30 October 2026).
- Search Console retains the most recent 16 months of data, which leaves only the newest 4 months (16 minus 12, our arithmetic) open to a same-date comparison with a year earlier (Google, Analytics Help, read 30 October 2026).
- Penlid's content decay check sets a page's last 28 days against the 84 before them, then subtracts the rest of the site's move over the same days (Penlid, content decay check, read 30 October 2026).
- Penlid gives no decay verdict for a page under 3,000 impressions in the trailing 90 days (Penlid, methodology, read 30 October 2026).
What counts as seasonality in SEO data?
Seasonality in SEO data is any rise or fall in clicks or impressions that repeats on a calendar rhythm: weekly, monthly or yearly. Google's debugging guide says demand for queries can shift with a new trend or with seasonality over the year, and that seasonality differs by industry. A season moves many pages at once, so it lands in the same weeks as your edits and can be mistaken for their effect.
How can you see a season in your own Search Console data?
Set the date filter to the last 16 months and look for the same rise or dip at the same time each year. The first three rows below come from Google's debugging guide; the fourth, other pages on your own site, is the one this guide builds on.
| Check | Where it falls short |
|---|---|
| Last 16 months in the date filter | Shows a pattern, not its cause |
| Compare, last 3 months year over year | Only the newest 4 months (16 − 12) have a same-date partner |
| Google Trends for the affected queries | Shows whether the whole web moved, not why your page did |
| Other pages on your site, same calendar days | Assumes those pages share your page's season |
Sixteen months is one year plus four months, so only 4 of the 12 calendar months appear twice and the other 8 appear once (our arithmetic); a bump in one of those 8 has no second year to be compared with. To go past 16 months, Google says you could use the Search Analytics API or bulk data exports to pull the data and store it in your own systems.
How does comparing a page with the rest of your site take a season out?
Comparing a page with the rest of your site takes out the part of a season that hits every page alike, because both are measured over the same calendar days. Penlid's content decay check works this way: it sets a page's last 28 days against the 84 before them and subtracts the rest of the site's move over the same days. Without that, our methodology says, every page on a site looks like it's decaying every January
. The tool page puts the result in one line: a January dip that hit everything reads as healthy
, and a page that fell while the rest of the site held does not.
The decay check's page says Search Console's own Download CSV export does not produce the day-by-day table the tool needs (Date and Page columns, one row per page per day), but a Data Studio (formerly Looker Studio) table or a Search Analytics API query does. Ask for at least 112 days (28 + 84).
The same idea judges a change you made on purpose. If you know which page you changed, the did-it-work check reads the same export plus a list of what you changed and when; see how to tell if a content update worked. The estimator behind it was tested on simulated sites where nothing was done to the page. Across 675 such scenarios, which included site-wide moves of −30%, none and +50%, a change was called significant 3.26% of the time on average when the estimator runs alone, where a 95% test allows 5% (methodology).
Why must the comparison use the same calendar dates?
A window's place in the calendar decides which part of a season it catches, so every page must be summed over identical dates. The decay check's page explains the trap: Search Console leaves out a page's row on days it got nothing, so counting "the last 28 rows" spans four weeks on a busy page and four months on a quiet one. Penlid's check sums every page over identical calendar days instead, and a missing day counts as zero
.
Weekdays need the same care: when comparing two date ranges, Google says aggregating by week or month neutralizes the day-of-the-week effect. A 30-day window is 28 days plus 2, so two weekdays appear five times and the other five appear four times. The decay check's windows of 28 and 84 days are 4 and 12 whole weeks, so each weekday appears equally often (our arithmetic).
What can still pass for a season, or hide behind one?
Four things can still fool a same-days comparison: uneven exposure, a Google update in the same weeks, pages picked because they were low, and data errors.
- Uneven exposure. The baseline is the rest of the site, so a page whose season is sharper or flatter than the site's keeps the difference; Penlid's methodology notes that a season hits one page more than another. Our reasoning: such a page can read as decaying after every peak, so give it comparison pages that share its topic; the guide to control pages covers choosing them.
- A Google update in the same weeks. A comparison among your own pages cannot separate two causes that both reach the whole site; see how to measure what a Google update did to your site.
- Pages picked because they were low. A page chosen for a seasonal trough is a page chosen for decline. In Penlid's simulations, pages whose last 28 days sat at least one standard deviation below their own average, then left unchanged, came back "improved" 5.50% to 9.20% of the time, against at most 3.10% otherwise (methodology). See regression to the mean.
- Data that changed underneath you. Google lists a logging error that left impressions, CTR and average position inaccurately reported from May 13, 2025 to April 27, 2026; clicks were not affected (Google, Search Console Help). Our reasoning: a year-over-year comparison of impressions with one side inside that period and the other outside it compares unlike data, so read clicks.
Example (illustrative numbers)
These counts are invented to show the arithmetic; they are not data from any site. An export ends on 31 January, so the last 28 days are the January window and the 84 days before them take in the holiday peak.
| Group | Preceding 84 days | Last 28 days | Ratio, last 28 ÷ before | Ratio ÷ rest of the site |
|---|---|---|---|---|
| Page A | 2,520 (30.0 a day) | 588 (21.0 a day) | 0.70 | 1.00 (0.0%) |
| Page B | 4,200 (50.0 a day) | 784 (28.0 a day) | 0.56 | 0.80 (−20.0%) |
| Page C | 1,680 (20.0 a day) | 490 (17.5 a day) | 0.875 | 1.25 (+25.0%) |
| Rest of the site | 84,000 (1,000 a day) | 19,600 (700 a day) | 0.70 | the yardstick |
Divide each window's clicks by its length for a daily rate. Page A: 2,520 ÷ 84 = 30.0 a day before and 588 ÷ 28 = 21.0 a day now, a ratio of 21.0 ÷ 30.0 = 0.70, or −30.0%. The rest of the site also went from 1,000 to 700 a day, a ratio of 0.70, so page A scores 0.70 ÷ 0.70 = 1.00: its dip is the season's and it reads as healthy.
Page B fell further, 28.0 ÷ 50.0 = 0.56 or −44.0%, but against the site 0.56 ÷ 0.70 = 0.80, which is 20.0% below where the season alone would put it. Page C looks like a loser at −12.5% (17.5 ÷ 20.0 = 0.875), yet 0.875 ÷ 0.70 = 1.25, which is 25.0% ahead of the site.
Now change only the month. If the rest of the site had stayed flat at 1,000 a day, the three pages would read −30.0%, −44.0% and −12.5% against it: the pages are identical and only the rest of the site changed. This is a simplified ratio form of the idea; the tool page prints no formula, so the tool's own output may differ.
What this cannot tell you
- A verdict dates a move; it does not explain it. A lost ranking, a lost link or an edit nobody recorded looks the same. For a change you made on purpose, Penlid's methodology says one that happens to coincide with something else page-specific will still be misattributed.
- One earlier year is thin evidence. A pattern seen twice can still be coincidence, and last year's dates may hold their own update, outage or edit. Our reasoning: treat a repeat as a reason to look closer, not as proof of a season.
- Small pages get "can't tell". Below 3,000 impressions in the trailing 90 days, or with less history than the window needs, the check gives no verdict, and the methodology warns that small sites may never reach significance.
- Penlid's test figures do not model a real season. The SEO test calculator's page says
Real pages also have seasonality and regression to the mean. The calculator does not simulate either.
The false-alarm rate above comes from simulated sites with site-wide moves and drift between pages, and the methodology gives no error rates for the decay check itself. Our reasoning: read a decay verdict as a pointer to where to look.
Questions people also ask
What is seasonality in SEO?
It is the regular rise and fall in searches, and so in clicks and impressions, that follows the calendar. Wikipedia names weather, vacation and holidays among the factors that may cause it, and Google's debugging guide counts seasonality among the reasons demand for a query moves over a year. The practical difficulty is that one season shifts many pages together, so a single page's chart cannot show whether the calendar or your edit moved it.
Does seasonality look the same in retail, tourism and other industries?
No. Google's debugging guide says seasonality differs by industry and suggests checking the affected queries in Google Trends to learn whether only your site dropped or the whole web did. A shop and a travel site can peak in different months, so use your own history, or pages on your own site that share the topic, as the yardstick instead of a generic calendar.
How do you analyze seasonal SEO data?
Begin with the longest view Search Console gives you, 16 months, and note whether this time of year has moved before. Then measure the page against others across identical dates, so that whatever the season did to all of them alike cancels out; this borrows the idea of seasonal adjustment, which Wikipedia defines as any method for removing the seasonal component of a time series. The free content decay check makes that comparison from a day-by-day export and answers "can't tell" where the data is too thin.
What are seasonal SEO strategies?
The phrase usually means planning when to publish or refresh pages around demand that follows the calendar. This guide covers only the measuring side: log each change with its date, and judge a seasonal page against pages that share its season or against the same dates a year earlier, so that months later you can still tell the season from the edit.
Sources
- Debugging drops in Google Search traffic, Google, Search Central, read 30 October 2026.
- Connect Search Console to Google Analytics, Google, Analytics Help, read 30 October 2026.
- Performance report (Search results): Advanced filtering and comparison, Google, Search Console Help, read 30 October 2026.
- Data anomalies in Search Console, Google, Search Console Help, read 30 October 2026.
- Seasonality, Wikipedia, read 30 October 2026.
- Methodology: how we measure, and what we can't, Penlid, read 30 October 2026.
Without that, every page on a site looks like it's decaying every January, and you'd spend your refresh budget on pages that are fine.
- Content decay check: which pages are losing traffic?, Penlid, read 30 October 2026.
so a January dip that hit everything reads as healthy, and a page that fell while the rest of the site held reads as what it is.
Every page here is summed over identical calendar days and a missing day counts as zero.
- SEO test calculator, Penlid, read 30 October 2026.
Real pages also have seasonality and regression to the mean. The calculator does not simulate either.