The best content plan comes from queries Google is already testing the site against. Every impression is Google saying "this site might be relevant here". Clusters of those impressions that no page is built for are the gaps worth writing to, and they come with proof of demand attached.
Steps
-
Pull the query inventory.
google_search_console.querywithdimensions: ["query", "page"], a 90-day window ending 3 days ago,rowLimit: 5000. Strip branded queries. Keep rows with at least 30 impressions and state the floor. -
Cluster the queries. Group by shared head term and intent. Do this in
sequel_workbenchor by inspection; either way, state the method. Label each cluster with a representative query and an intent: informational, commercial investigation, transactional, or navigational. -
Score each cluster. Total impressions, total clicks, impression-weighted average position, the distinct pages that received impressions for it, and which single page received the most.
-
Classify the clusters.
- Gap: meaningful impressions, average position above 20, impressions spread thinly across pages that were not written for the topic. No page serves this; a dedicated one probably would.
- Cannibalised: several pages each receiving a solid share. Continue with
keyword-cannibalization-checkrather than adding another page. - Under-clicked: one page, good position, low CTR. Continue with
ctr-underperformers. - Served: one page, position under 10. Leave it alone.
-
Size the top gaps (if Ahrefs is connected). Pass the representative queries of the top gap clusters to
ahrefs.keywords_overviewfor volume, difficulty and CPC. Drop gaps whose difficulty is far above what the site already ranks for. High CPC marks commercial intent. -
Report. A cluster table (cluster, intent, impressions, clicks, position, serving page, classification), then briefs for the top five gaps: working title, the queries to target, the intent to satisfy, and which existing page should link to the new one. Explicitly list the clusters you are recommending nothing for.
Gotchas
- Plan clusters, not keywords. One page per cluster. A page per query is how cannibalization starts.
- Do not build a page for a cluster an existing page already serves at position under 10. Improve that page instead; a new one splits the signal.
- Search Console omits the anonymised long tail. The inventory is a sample of demand, not all of it. Clusters are more robust to this than individual queries, which is another reason to cluster.
- Ahrefs numbers are estimates. Use them to rank gaps against each other, not as a forecast of traffic.
- Intent decides the format. An informational cluster wants a guide; a commercial one wants a comparison; a transactional one wants a product or landing page. Say which in each brief.