1
0 Comments

Generating 166,000 keywords was easy. Choosing which 23 to publish was the hard part.

Posting the part I got wrong first, because it is the part that is actually interesting.

Setup: long-tail buy-intent keywords, shaped as product plus buyer type plus city, published to platform accounts rather than my own domain. The bet is that a new page on a trusted domain beats a new page on mine, which the Ahrefs data supports: only 1.74% of new URLs reach the top 10 in a year, and 72.9% of the pages already there are over three years old.

Generating the list is trivial

Three lists and a nested loop.

31 heads x 86 verticals x 99 cities = 166,114 keywords

Score each one as head weight x vertical weight x city weight, where the weights encode commercial value rather than search volume. A personal injury firm is worth an order of magnitude more than a yoga studio, so that ordering falls out of the weights.

That took about twenty minutes. I assumed it was the hard part. It was not.

One filter did matter: drop combinations where the head noun equals the vertical. A cartesian product happily generates "best seo agencies for seo agencies". But the test has to be equality, not overlap, because "best link building services for seo agencies" is a real query with real buyers, and a sloppy overlap check kills it too.

Choosing 23 a day is the actual problem

Obvious approach: sort by score, take the top 23.

This is wrong, and it is wrong in a way that is invisible until you look at the output.

Score ties break alphabetically. So the top 23 all share the same head term. You publish the same phrasing, on the same day, across every account you own. That is not a distributed content strategy, that is a signature.

What selection actually has to enforce, within a single day:

  • every buyer vertical unique
  • every city unique
  • no head term more than twice
  • a fixed mix of keyword shapes, so one pattern cannot take over

The head cap is 2 rather than 1, deliberately. Forcing 23 unique heads means you spend a slot on your 31st best head every single day. The batch fills with your weakest terms while your strongest ones queue behind an artificial constraint. A cap keeps the day varied without starving the good heads.

Then the constraints relax in a defined order if the pool runs thin: drop the city uniqueness first, then the vertical. A slightly repetitive day beats publishing nothing.

Ordering, not filtering

The thing that took longest to internalise: the score does not decide whether to publish a keyword. It decides when.

Every one of the 166,114 gets published eventually, at roughly 23 a day, which is about twenty years of runway. So there is no need to be clever about pruning. There is a lot of need to be right about ordering, because the first year determines whether the thing pays for itself before you lose patience with it.

Sort by commercial value, publish top-down, and the highest-value combinations are live in month one instead of month forty.

Formatting for two different consumers

Google ranks pages. Language models cite passages. Same article, two jobs.

  • Summary block up top, three to five sentences that survive being quoted with no surrounding context. That is what gets lifted into an AI answer.
  • Answer the query in the first paragraph, before any preamble.
  • FAQ section using the questions people actually type. Pull them from Search Console with a regex filter on question words rather than guessing.
  • One image, keyword as both filename and alt text.
  • Internal links to your own earlier posts on the same account, never across accounts.

That last one is worth a sentence. Cross-linking your accounts draws a clean graph between them. One author linking to their own previous work is just normal behaviour. You get the same SEO benefit without publishing a map of your own network.

The rule that keeps it defensible

Every article has to contain a number that only you have. Billing data, product analytics, support tickets.

Generic advice does not get cited by anything. A specific figure does.

The corollary matters more: never let the model invent one. Automation decides what gets written and when it ships. It does not get to decide what is true. A fabricated statistic attributed to your company outlives any traffic it earned.

Numbers so far

  • 166,114 keyword universe, ~20 years at current cadence
  • 23 accounts, one article each per run
  • ~4.5 min per article end to end, sequential
  • First unattended run: 18 of 23 published

No ranking data yet, the posts are days old. Anyone quoting traffic at this stage is guessing, and I would rather post the method than a number I cannot stand behind.

Happy to go deeper on the selection logic if it is useful to anyone.

(I build https://distribb.io, which does this as a product.)

on August 4, 2026