How GridGenius got its users
Two generated URL patterns, one per topic and one per clue phrase, put a page on the exact wording solvers type, with a printable twin doubling the whole topic set.
Best guess. A working hypothesis. Useful to think with, not to repeat as fact.
You could start this on Monday. No budget, no audience, no permission needed.
- A traffic base that does not collapse when you stop publishing
- Acquisition that owes nothing to any social platform
- A proprietary or painful-to-assemble data source
- A template with a reason to exist page by page
- 6 to 12 months before it compounds
Programmatic SEO in 2026
Still alive, but the bar has moved. Thin pages get deindexed, so you need real data on every single page.
Everything on this channel →The play
5 steps, in the order they ran them.
- 1
Pick an entity list where each row is already a phrase someone types. GridGenius runs two: topic names (its index claims 12 categories and 135+ topics) and clue text used directly as the slug, e.g. /crossword-clue/the-star-at-the-center-of-our-solar-system/.
done whenYou can write out 100 URLs from your list without inventing a single entity, and each one reads like a query rather than a category label.
- 2
Make one template worth landing on before you generate the set. /topics/pokemon/ carries a matching headline, five playable puzzles at different grid sizes, roughly a dozen sample clues with answers, a short facts block, a link to its printable version and a link back to its parent category.
done whenPublish one page alone, with no set behind it, and ask whether a stranger landing there gets what they came for. If it only makes sense as part of a batch, the template is too thin.
- 3
Mirror the list into a second URL pattern only where the format answers a different search. Here every topic page has a /printable/{slug}/ twin, so one list ships as two series.
done whenYou can say in one sentence how the two patterns differ in intent. If you cannot, you have published the same page twice.
- 4
Give the set entry points that do not depend on search. The clue database is browsable by answer length (3 to 15 letters) and A to Z, topics roll up into 12 categories, and roughly 70 blog articles with tag pages sit alongside on solver questions.
done whenFrom your homepage, you can reach any page in the generated set in three clicks, without using site search.
- 5
Wrap free surfaces around the set that carry a link or a connector back: six tools with no account required (Crossword Solver, AI Clue Solver, Anagram Solver, Clue Database, Embed Widget, Crossword Maker), an /embed/ iframe aimed at WordPress, Ghost, Substack and Notion whose snippet keeps an attribution link, and an MCP connector at api.gridgenius.app/mcp with robots.txt allowing GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot and ChatGPT-User.
done whenAt least one free surface of yours ships a link a publisher would keep on their own page, and your robots.txt names by hand the crawlers you want reading you.
Run this against your own product
Carries the play above, and is written to tell you no when this channel is out of reach for you.
The same twelve channels as an agent skill. It reads your repository and eliminates what you cannot run. Open source, MIT.
curl -o ~/.claude/skills/howtodistribute/SKILL.md https://howtodistribute.com/skill.md
How big it got
The /crossword-clue/ index claims "9,041 crossword clues with verified answers from real puzzles". The /topics/ index claims "12 categories and 135+ topics", and every topic slug is published twice, at /topics/{slug}/ and at /printable/{slug}/, with both series listed back to back in /sitemap.xml. No sitemap count was taken.
What else they ran
Nothing else identified. One channel carried it.
They ran the same play
Want this verdict on your product?
Describe it. You get back the channel I would run in your place, the 30-day plan, and the number at which you stop.