SEO content calendar: how to plan 90 days of publishing (and what to measure)
Table of contents
Most content calendars die in week three: too many ideas, no priority. The fix is not publishing more, but deciding what goes first with the data you already have in Search Console. An SEO content calendar is a decision about capacity, not a wish list.
What an SEO content calendar is (and what it is not)
It is the sequence of publications for a period: every row states the date, which URL or intent it covers, what kind of work it involves and which internal links land on that piece. If a row does not say which URL it touches and where the links come from, it is not an SEO slot, it is an idea with a date. Five minimum columns: date, intent or URL, type, links received, and who does it.
What it is not: a list of ideas with no owner and no date, nor a social media calendar under another name. A social calendar starts from the channel; this one starts from the URL that exists or is missing.
The four kinds of line in the calendar
New (the URL does not exist), refresh (it exists and is losing), consolidation (two URLs merged into one) and link (a linking pass over pages that already exist). All four take a slot and are planned the same way; only the work behind them changes.
Before dates: the inventory
The inventory comes from the Performance report in Search Console, using the Pages dimension and then Queries: both tabs sit above the same table. Three lists come out of it in about an hour:
- Hooks. Queries with impressions and an average position between 11 and 30: you already exist for that topic but rank poorly. Either a paragraph is missing or the page is missing.
- Drops. Pages with declining clicks when comparing two periods of equal length, not one month against another with different day counts.
- Gaps. Topics in the cluster with no URL answering them.
Two caveats from the official documentation: the most recent data can be preliminary, and chart totals do not always match table totals because the aggregation differs.
Hard rule: if a URL already answers the query, you do not create another one. That is cannibalization, and the slot becomes a refresh.
The filter that prevents invented calendars
If the site is new and the query does not appear in Search Console, run the inventory backwards: start from the URLs that do have impressions and look for the sibling questions left unanswered. Never plan from a tool export without checking whether a page already exists.
How to size a cluster before you write it
A cluster is one pillar and its supporting pages. The pillar answers the main intent; the supports answer the variants. Practical number: one pillar and four to eight supports. More than that usually means two clusters got mixed together.
The paragraph test decides what deserves a URL: if the answer fits in a paragraph inside another page, it needs an H2 in the pillar, not its own URL. That separates a cluster from a keyword list; the grouping mechanics live in keyword clustering.
Where it lives: Google's SEO guide recommends grouping similar thematic pages into directories, because that helps it understand how often URLs in a given directory change. Translated: one cluster, one coherent section, not twenty loose URLs at the root.
The real capacity math
Real hours per week divided by the hours one finished piece costs (research, writing, review, image, publishing, linking), rounded down. Reserve 30% for refreshes and links: if the calendar only holds new slots, all your work competes against the ageing of what is already published.
Four good pieces a month sustain a cluster. Twelve weak ones compete with each other and cannibalize.
The order: what goes first
Priority one: refreshes with demand already earned, pages sitting in positions 5 to 20 that already have impressions. It is the fastest return because the URL is indexed and carries history.
Priority two: pieces that complete an open cluster. Every new URL receives links from the pillar and its siblings, and Google finds pages mainly through links from pages it has already crawled: a piece with no inbound links is born orphaned. Priority three: new high-demand topics that open a cluster.
The criterion is not keyword volume but impressions times expected CTR. Sort high to low and cut where capacity runs out, not where ideas run out.
The pillar-last mistake
If the pillar ships last, its supports spend weeks without links or context. If it ships first and empty, it is a page with no answers. The sequence that works: the pillar with the complete answer and, in the same batch, the first support that links to it.
What else belongs in the calendar (that is not a new post)
A calendar holding only new URLs ages by itself. What else takes a slot:
- Refresh with a review date set in advance, at 6 and 12 months. Updating is not changing the date: Google explicitly asks whether you change page dates so pages look updated without substantially changing the content.
- Consolidation: two URLs answering the same thing get merged and redirected. It frees crawl budget.
- Linking pass: every five or six new pieces, links from the pages with the most internal authority toward the new ones.
- Pruning: a quarterly review of pages with no impressions and no links, using the criteria in content pruning.
- Cannibalization check: when a new query shows up, confirm it does not compete with an existing URL.
A split I use as my own rule, not as Google doctrine: out of every ten slots, four new, three refreshes, two links and one pruning. It gets adjusted each quarter; what does not change is that it exists.
Ahrefs published an analysis of the content lifecycle in March 2026: most content teams invest heavily in the first three phases (traction, growth, peak) and almost nothing in the last two (plateau and decline).
Publishing frequency: what Google says and what it does not
There is no official number. Google does not publish a preferred publishing frequency and, in its helpful content guide, answers the preferred-word-count question with a flat "Not true". Any claim that Google recommends X articles per month is invented.
What is published is scaled content abuse: large amounts of non-original content that provides little or no value, regardless of how it was created, AI included. The policy does not look at your pace, it looks at value per page.
Choosing a cadence you can keep
Start from what you can sustain for twelve weeks in a row, not one. Leave one slot free per month for the unexpected: a mass 404, an outage, a migration. Calendars filled to 100% break on the first problem. And indexing is not instant: first results arrive after Google crawls, as covered in how long SEO takes.
How to measure 90 days without fooling yourself
You measure the cluster, not the article: total impressions for the set, new queries, clicks for the set. A single article can look fine while the cluster fails to cover the intent.
Three checkpoints. Day 30: are all URLs indexed? Day 60: are new queries appearing, are impressions rising? Day 90: did the cluster average position improve, which slot is failing? The honest window is the same period last year or a 28-day moving average; comparing against last month on a seasonal site is self-deception.
Two conclusions you do not draw: "it did not work" before the URL is indexed, and "it worked" just because impressions rose while CTR and clicks stayed flat.
The minimum dashboard
Four metrics: cluster URLs indexed, impressions, new queries and cluster clicks. All of them come from the Performance report.
A 90-day template in five steps
The spreadsheet columns, in this order:
Week | Date | Slot | URL or intent | Type | Links it receives
At two pieces per week that is 24 slots: ten new, eight refreshes, four links and two prunings. Adjust the split, not the total.
Closing checklist:
- Every slot has a URL or an intent, not a vague topic.
- No topic duplicates an existing URL.
- Every new piece has one planned inbound link.
- Review dates at 6 and 12 months are set.
- One free slot per month.
- The cluster dashboard is defined before you start.
Honest closing: the calendar breaks. What you protect is not the dates, it is the split between new, refresh and link work.
Sources: helpful content, spam policies and the SEO starter guide from Google Search Central; the Performance report docs; and Ahrefs on content decay.