Skip to main content
Every page targets exactly one search intent with exactly one keyword. The corollary is a cannibalization discipline: two of your own pages must never compete for the same intent, and a keyword doesn’t automatically earn its own page unless the intent is genuinely distinct. We triage keywords through a 2-dimension framework (intent × relevance) and only the “clean accept” ones survive.
“Does it target ONE search intent with ONE keyword?”

Why one intent per page, and no self-competition

If two of your pages chase the same intent, they split authority and confuse the engine about which one to rank. That’s self-cannibalization, and it caps a whole pillar without anyone noticing. Go the other way too: near-duplicate keywords that share an intent should collapse to one page rather than spawn two. The 2-D framework separates two things people tend to conflate. Intent is how commercial or high-purchase the query is (the BOFU-first axis from 1.3 is this axis in action). Relevance is how well the query actually matches your product. You keep only the high-intent, high-relevance terms and tag them for production. Leading with relevance is also what guards against chasing volume that never converts, because a high-volume term you’re not genuinely relevant for is a trap dressed up as a prize.

The discipline, in the gates and the build

The Landing Page Quality Gate asks “Does it target ONE search intent with ONE keyword?” Production tagging is an explicit accept/reject gate before anything gets built: “load all keywords into synscribe, annotate them and tag all the clean accept keywords as ‘Core’.” The framework itself lives at “see 2d keyword labeling framework.” And Wonderchat’s pillar list is deliberately non-overlapping by facet (industry vs tech vs data-source vs objective vs replacement vs compliance), so cannibalization is avoided by construction, before a single page exists. For the concrete “why remove / why add / why merge” tables and the keyword survival gates, see the Organise-keywords SOP.

How the two axes score

Intent is a set of seven tests a keyword can pass, and it’s multi-select: urgency, purchase, location, specification, product, problem-solution, and alternative. The more tests a keyword passes, the stronger its intent, so a term like “crm with call forwarding for agencies” stacks several at once. Relevance is single-select and ranked, most to least relevant:
Relevance (ranked)The keyword…
OFFERINGdescribes a core product or feature we provide
ALTERNATIVEnames a direct competitor we’re a viable switch from
COMPLEMENTARYa related product we integrate with or sit alongside
INCUMBENTa market default or free utility that’s impractical to displace
ALTERNATIVE shows up on both axes and that’s deliberate: on the intent axis it’s the “ready to switch” signal, on the relevance axis it’s “we’re a real alternative to a named competitor.” The whole point of the grid is the top-right corner, high intent and high relevance, meaning OFFERING or ALTERNATIVE terms with strong buying signals. Anything drifting toward informational intent or INCUMBENT relevance gets deprioritised or skipped. We keep a large pre-labelled keyword database on this scheme so the strategy conversation always runs in the same vocabulary. One thing the framework does not decide is winnability: whether we can actually rank is the SERP-cliff read from 1.4, not a separate gate here. Labelling picks the keywords worth winning; the cliff picks the ones we can win.

Operationalize it