Sign in Start free

Build a Topical Map From Real Demand

A keyword export is a pile of strings, not a plan. The obvious approach - sort by volume, take the top 200 - buries you in head terms you cannot win and hides the long tail that actually converts. A topical map fixes the order of publication by grouping demand into entities and sub-entities, so each piece you publish makes the next one easier to rank rather than competing with it.

CATEGORY
Content strategy
FORMAT
topical-map-from-demand.md
STEPS
6
PRICE
Free - no account
WHEN TO REACH FOR THIS

Use when you have a subject area but no defensible list of what to publish, and keyword exports are giving you thousands of rows with no shape.

The skill file

topical-map-from-demand.md
---
name: topical-map-from-demand
description: Use when you have a subject area but no defensible list of what to publish, and keyword exports are giving you thousands of rows with no shape.
---

# Build a Topical Map From Real Demand

A keyword export is a pile of strings, not a plan. The obvious approach - sort by volume, take the top 200 - buries you in head terms you cannot win and hides the long tail that actually converts. A topical map fixes the order of publication by grouping demand into entities and sub-entities, so each piece you publish makes the next one easier to rank rather than competing with it.

## What you need first

- a keyword export with volume and current position
- your Search Console query export for the last 6 months
- a clear statement of what the site actually sells or does

## Method

1. Dump every query into one sheet, then cluster by SERP overlap rather than string similarity: two queries belong together if the top 10 results share 4 or more URLs. String clustering merges things Google treats separately and splits things it treats as one page.
2. Name each cluster after the entity it is about, not the keyword. "Van insurance for tradespeople" is an entity; "cheap van insurance quotes uk" is a phrasing of it.
3. Tag each cluster with the dominant intent of the current top 5 - transactional, comparison, informational, or navigational. If the top 5 disagree with each other, the SERP is unsettled and the cluster is a cheaper entry point.
4. Mark clusters as core (directly adjacent to what you sell), supporting (answers a question a buyer has on the way), or outer (traffic with no path to revenue). Cap outer at 20 percent of the plan.
5. Order publication so every supporting page has its core page already live, because the supporting page needs somewhere authoritative to link to and it is that internal link that carries the relevance signal.
6. Freeze the map for one quarter and record the date. Re-clustering mid-quarter destroys your ability to tell whether the plan worked or the execution did.

## What this produces

A ranked publication map of named entity clusters, each tagged with intent, tier, and its position in the build order.

## Where this goes wrong

- clustering by keyword string rather than SERP overlap, which produces clusters Google does not recognize
- building the outer ring first because those terms look easiest, so you end up with traffic that never touches a commercial page
- treating the map as a permanent artefact and rewriting it every time a new keyword idea arrives

---

From the QuQi skill library - https://www.quqi.io/skills/topical-map-from-demand
Free to download · no account, no email

What you need first

  • a keyword export with volume and current position
  • your Search Console query export for the last 6 months
  • a clear statement of what the site actually sells or does

Method

  1. 01 Dump every query into one sheet, then cluster by SERP overlap rather than string similarity: two queries belong together if the top 10 results share 4 or more URLs. String clustering merges things Google treats separately and splits things it treats as one page.
  2. 02 Name each cluster after the entity it is about, not the keyword. "Van insurance for tradespeople" is an entity; "cheap van insurance quotes uk" is a phrasing of it.
  3. 03 Tag each cluster with the dominant intent of the current top 5 - transactional, comparison, informational, or navigational. If the top 5 disagree with each other, the SERP is unsettled and the cluster is a cheaper entry point.
  4. 04 Mark clusters as core (directly adjacent to what you sell), supporting (answers a question a buyer has on the way), or outer (traffic with no path to revenue). Cap outer at 20 percent of the plan.
  5. 05 Order publication so every supporting page has its core page already live, because the supporting page needs somewhere authoritative to link to and it is that internal link that carries the relevance signal.
  6. 06 Freeze the map for one quarter and record the date. Re-clustering mid-quarter destroys your ability to tell whether the plan worked or the execution did.

What this produces

A ranked publication map of named entity clusters, each tagged with intent, tier, and its position in the build order.

Where this goes wrong

  • clustering by keyword string rather than SERP overlap, which produces clusters Google does not recognize
  • building the outer ring first because those terms look easiest, so you end up with traffic that never touches a commercial page
  • treating the map as a permanent artefact and rewriting it every time a new keyword idea arrives

Use this skill in your own AI

The download is a plain markdown file with the name and trigger in its frontmatter. Where an assistant supports skills it can load itself, that frontmatter is what it reads to decide this one applies.

Claude Code Save it as ~/.claude/skills/topical-map-from-demand/SKILL.md and Claude loads it on its own when what you are doing matches the trigger line. Put it in .claude/skills inside a project instead if the whole team should have it.
Claude Upload the file in the skills section of your settings. Once it is there it applies itself in any conversation where the trigger fits, so you do not have to remember it exists.
ChatGPT There is no skills format to install into, so paste the file contents into a Project instruction or a Custom GPT instead. It then applies to every chat in that project rather than only the one you paste it into.
Anything else Paste the markdown into the chat before your question. It works in any assistant, it just has to be pasted again each time.

Questions about this skill

When is mapping the demand better than working straight from the keyword export?

When the export is thousands of rows and the obvious move is to sort by volume and take the top 200. That buries you in head terms you cannot win and hides the long tail that converts. The map earns its extra day when publication order matters, because each page should make the next one easier to rank rather than compete with it.

What do I need in hand before starting?

A keyword export carrying volume and your current position, six months of Search Console queries, and a plain statement of what the site actually sells. Without positions you cannot tell a cluster you half own from a cold start. Without the statement of what the site sells, nothing separates core from outer, and the outer ring quietly grows past its 20 percent cap.

What do I end up with, and which part of it gets used?

A ranked publication map of named entity clusters, each tagged with intent, tier and its place in the build order. The build order is what gets used week to week. The tier tags decide what is cut when capacity slips, and the intent tag read off the current top five is what stops a brief being written for the wrong page format.

What ruins this most often?

Clustering by keyword string instead of SERP overlap. String similarity merges queries Google serves different results for and splits ones it treats as a single page, so you build two pages that compete or one that answers neither query properly. The cost is a quarter published against a structure the search engine does not recognise, and the map itself will never show you that.

More in Content strategy