Monthly reviews are too frequent: most SEO and content changes take 4 to 8 weeks to show up in data, so a 30-day window mostly reacts to noise. Yearly reviews are too slow: industry studies put typical content decay at 20 to 30% of organic clicks lost every six months, so an annual cadence lets two full decay cycles run before you act. Quarterly is the sweet spot, but only if the review is structured. A free-form “let me look at analytics” almost always produces zero decisions.
TL;DR
- Block 4 hours every 90 days and run the same fixed template each time.
- Hour 1: 90-day-vs-prior-90-day clicks delta from the Search Console API. Hour 2: incognito SERP checks per top category, watching for AI Overviews. Hour 3: stale-content sweep. Hour 4: a written decision log.
- Always end the data window about 3 days ago, because GSC data lags 24 to 72 hours.
- Produce exactly six decisions: 5 articles to refresh, 3 to retire, 1 category to expand, 1 technical fix, 1 experiment. Anything more is overreach.
- The cadence pays off by quarter two, once you have a baseline to diff against.
Why drift is invisible
Drift on content sites happens silently: rankings slip a position per month, an algorithm update halves traffic on one article, a category goes stale because the underlying tools were renamed (think Gemini Advanced becoming Google AI Pro in early 2026, which dated every screenshot referencing the old name). None of these trigger an alert. The job of a quarterly review is to put a regular checkpoint between you and slow decay, and to produce decisions, not observations.
The newest source of silent drift is AI Overviews. As of June 2026 they appear on roughly 13% of Google queries, up from under 5% during the 2025 limited rollout, and field studies measure a 50 to 61% drop in organic click-through rate on queries where an AI Overview shows. A category can keep its rankings and still bleed clicks because the answer now sits above your blue link. A quarterly review is where you catch that pattern, because it only becomes visible across a 90-day window.
How to tell you need this
- Your last “review” was actually just opening Search Console for 10 minutes.
- You have articles you have not opened in a year and do not know if they still rank.
- Your monthly traffic graph is flat or declining and you cannot explain why.
- You discover algorithm-update impact 2-3 months late, on Twitter.
- You cannot answer “which 5 articles drove the most growth this quarter?”
Quick verdict
Block 4 hours every 90 days. Use the same template every time. Produce a decision log, not a slide deck. The point is action, not measurement.
The 4-hour template
Hour 1: traffic deltas. Pull last-90-days vs prior-90-days in Search Console. Sort by absolute clicks change. Look at the top 20 winners and top 20 losers. Pull the data through the Search Analytics API so you can diff two windows programmatically:
# clicks delta query (paste into GSC searchAnalytics API)
# NOTE: end the window ~3 days back; GSC data lags 24-72 hours
curl -X POST "https://www.googleapis.com/webmasters/v3/sites/$SITE/searchAnalytics/query" \
-H "Authorization: Bearer $TOKEN" \
--data '{"startDate":"2026-02-21","endDate":"2026-05-21",
"dimensions":["page"],"rowLimit":25000}' > q-current.json
# repeat with the prior 90 days into q-prior.json, then join on page
The API caps rowLimit at 25,000 rows per request (the default is only 1,000, so set it explicitly) and 50,000 rows per day per property; for sites under a few thousand URLs one request covers everything. Remember GSC retains only 16 months of data, so archive each quarter’s pull if you want longer trend lines. For each big loser, ask: algorithm update, lost backlink, competitor outranked, content went stale, AI Overview ate the click, or seasonal? Write the cause next to each row.
Hour 2: topical drift check. For your top 5 categories, search 3 to 5 representative queries in an incognito window. Note where you rank and, critically, whether an AI Overview is present. With AI Overviews now on about 13% of queries and pushing the top organic link’s CTR down 50 to 61% when they appear, a category can hold its rank and still lose traffic. Compare to last quarter’s notes. A category sliding everywhere is a signal: either the SERP shifted (AI Overview, new format), or your content is aging.
Hour 3: stale content sweep. Filter articles by updatedAt > 365 days ago AND impressions > 100. These are still working but might be lying: outdated screenshots, dead links, renamed tools, old model versions. The refresh math is favorable. Systematic content refreshes commonly recover 20 to 40% of traffic on the updated post within 60 to 90 days, and Google usually recrawls an updated page within 1 to 2 weeks. Pick 10 for refresh next quarter.
Hour 4: decisions and quarter plan. Write down: 5 articles to refresh, 3 articles to retire, 1 category to expand, 1 technical fix to ship, 1 experiment to run. That is the whole next-quarter plan. Anything beyond this list is overreach, because position changes on your refreshes will not be statistically clear for 1 to 2 months anyway, and you want one clean batch to attribute results to.
What a decision log looks like
Save it to reviews/2026-Q2.md in the repo. Format:
## 2026-Q2 Review (May 23)
Wins:
- ai-applications +38% clicks (new tag pages indexed)
- indie-dev /pick-niche article reached page 1
Losses:
- prompt-library -22% (AI Overview took position 0 on 4 queries)
- 14 articles in `troubleshooting/` dropped 5+ positions
Decisions:
- Refresh: firebase-rewrite-issue, astro-deploy-firebase, [3 others]
- Retire: 3 thin tool-comparison articles from 2024
- Expand: indie-dev/content-ops cluster (only 8 articles)
- Ship: per-article LCP audit by 2026-06-30
- Experiment: shorter intros on 20 articles, measure CTR
Reviewing last quarter’s decisions before writing this quarter’s is the highest-value 10 minutes of the whole exercise.
Common mistakes
- Treating the review as data collection. Without decisions, you might as well not run it.
- Comparing month-over-month instead of 90-day blocks. Monthly noise drowns the signal.
- Skipping the decision log because “I will remember”. You will not.
- Trying to fix everything in the review itself. The review identifies; the next 12 weeks execute.
- Doing it alone when you have a team. A 30-minute team walkthrough doubles the catch rate on category drift.
FAQ
- Why 90 days and not monthly?: Most SEO and content changes take 4 to 8 weeks to surface in data, and position changes after a refresh are not statistically clear for 1 to 2 months. A monthly review reacts to noise; a quarterly review reacts to signal.
- How do I separate an AI Overview loss from a ranking loss?: In Hour 2, check whether the query now shows an AI Overview. If your rank held but clicks fell, AI Overviews are the likely cause (they cut top-link CTR 50 to 61% where they appear). The fix is different from a ranking loss: target the answer box and bottom-of-funnel intent rather than re-optimizing for position.
- Should I review by language separately for bilingual sites?: Yes. Markets diverge: a refresh on the EN side does not affect ZH rankings, and AI Overview coverage differs by language and region. Run two parallel review passes.
- What tooling do I actually need?: Search Console (free), Google Analytics 4 or Plausible (free tier), a CSV diff tool, and your own content inventory. No paid SEO suite is required for this cadence. The only non-obvious gotcha is the GSC 24-to-72-hour data lag, so end every window about 3 days back.
- How long until the cadence pays off?: Two quarters. The first review establishes the baseline; the second is when you can diff against it and see compound learning.
- Can AI do the review for me?: AI is good at summarizing query lists and clustering losers by likely cause. It is bad at deciding which articles to retire, which requires context about your strategy. Use a tool like Claude Opus 4.7 or Gemini 3.1 Pro for Hour 1 summarization, then do Hours 2 to 4 yourself.
Related
- Running a Site-Wide Content Audit
- Content Site Staffing and Roles
- When to refresh old articles
- Managing a content site after 1,000 articles
Tags: #Indie dev #Content ops #SEO #review-cadence #operations