A location page template that scales without going thin

One template generating forty pages is either an efficient system or a doorway factory. The difference is what the template automates and what it refuses to.

Where templates go wrong

The failure is always the same: the template tries to write the whole page. Every output is then the same page in a different hat, and the estate fails the swap test together. A template should carry structure and facts. It should not manufacture prose that pretends to be local.

Tokens are for facts

Merge tokens earn their keep on facts: the service name, the area name, your phone number, your business name. A heading like “Boiler installation in {{area_name}}” is honest templating. A paragraph of fake local colour built from tokens is not, and stripping the tokens out shows there is nothing underneath.

Variations need to be deterministic

Rotating between alternative passages reduces sibling similarity, but only if it is reproducible. If regeneration shuffles which page got which passage, you cannot audit anything and your diffs are noise. Deterministic selection, seeded by the page, means the same page always picks the same variant and a regeneration never rewrites your estate behind your back.

Leave a hole in the template

The strongest design decision a location template can make is a named, deliberately empty space for the local paragraph. The template does structure; a human does the part that makes the page worth ranking. If the hole is still empty, the page is not ready, whatever else the template filled in.

Flat or hierarchical URLs

Both work. Flat (/boiler-installation-rye/) keeps URLs short and reads naturally for one service. Hierarchical (/boiler-installation/rye/) gives each service a hub page that anchors its areas, supports breadcrumbs, and scales better across several services. Pick one before generating, because moving pages later means redirects.

Where Townsmith fits

This is a description of Townsmith blueprints: a normal block-editor document with merge tokens, deterministically seeded copy variations, and the empty local content slot, generating real WordPress pages in either URL scheme. Pages that come out too similar to a sibling are caught by similarity scoring before they publish.