Get in touch

Keyword modifiers: turning a query pattern into a page list

Updated August 19, 2026 · 9 min read · Search intent : informational · Fundamentals

Programmatic projects do not start from a keyword list. The keyword list is the output. What you start from is a pattern, and the quality of that pattern determines everything downstream.

Long tail demand distribution across query modifiers
Long tail demand distribution across query modifiers

Anatomy of a pattern

[head]        + [modifier]  + [entity]
"alternative" + "free"      + "to Notion"
"salary"      + "junior"    + "python developer"
"how to"      + "export"    + "an Airtable table"

The head sets intent. The modifier sets the segment. The entity sets the data row. A workable pattern pairs a high-cardinality entity (hundreds of values) with a low-cardinality modifier (two to five values). Invert that ratio and you get near-identical pages competing with each other.

Entity valuesModifier valuesPagesVerdict
40031,200Healthy — entity carries the differentiation
1240480Risky — 40 near-identical pages per entity
2,00012,000Healthy if data per entity is rich

Where real modifiers come from

Modifiers are observed, never invented. Four sources, ordered by signal quality:

  1. Search Console query report — queries already producing impressions on your pages. The only source that reflects your site specifically.
  2. Autocomplete and related searches — frequency-driven, and not filtered out by a volume threshold the way keyword tools are.
  3. People Also Ask — Google's own view of adjacent questions. Excellent raw material for subheadings.
  4. Subheadings of ranking competitors — the H2s in the top five reveal the structure the SERP rewards.

A modifier absent from all four sources does not exist. Generating it produces a page with no demand behind it.

The 20-page pilot

Before generating N pages, generate 20 chosen to span the whole distribution — the five highest-demand variants, the five lowest, ten in between — then wait six to ten weeks and read the outcome.

Observed on the pilotDecision
Over 70% indexed, impressions on mostShip the full batch
Indexed, no impressionsIntent mismatch — revisit the gate
Crawled, not indexedPerceived value too low — add data
Discovered, not crawledLinking or sitemap problem

The last two rows are diagnosed in crawl budget on large sites and internal linking at scale.

Unit economics decide the cutoff

page_value = monthly_volume x expected_CTR x conversion_rate x conversion_value
page_cost  = generation_cost + (annual_maintenance / 12)

keep the page if  page_value > page_cost x 3

The factor of three absorbs uncertainty about the position you actually reach. On a 20-searches-a-month variant, a page is only viable when a conversion is worth a lot — which is why programmatic works better in B2B SaaS than in ad-funded publishing, and why the ad-funded version of this model collapsed into the content farm pattern.

Cluster before you generate

Two variants whose SERPs overlap by more than 60% should not become two pages: they will compete. Merge them into one page that handles both phrasings — one in the H1, the other as an H2.

overlap = |top10(query_A) ∩ top10(query_B)| / 10
if overlap > 0.6: merge

This clustering step determines the final page list, and therefore the URL structure and where canonicals need to sit.

Frequently asked questions

How much search volume justifies a long tail page?

It depends entirely on conversion value. In B2B SaaS a ten-searches-a-month query can pay for itself; in ad-funded publishing it usually takes several hundred.

How do I spot cannibalisation between two generated pages?

Compare the SERPs for the two queries. If more than 60% of the top ten URLs are shared, Google treats them as one intent and two separate pages will compete.

Are keyword tools enough for a programmatic project?

No. They under-report or omit very low volume queries, which make up most of a programmatic batch. Autocomplete, related searches and Search Console fill the gap.