Technical SEOApr 26, 202613 min read

Local SEO pages at scale

Building 35+ city-targeted service pages for A-TEX Roofing without falling into the "swap the city name" trap — the system, the QA, and the duplicate-content guardrails.

Jhastine MacalinoWordPress · Front-End · Technical SEO · Pampanga, PH

When A-TEX Roofing needed dozens of city pages, the temptation was obvious: write one template, swap the city name, ship 35 pages by Friday. Google would have eaten that for breakfast — and so would any prospect who clicked two of them in a row.

Instead, I built a page system with locally-relevant content for each market. Here is how it works.

The Google Sheet is the source of truth

One row per city. Columns for: target queries, primary services, service-area context (neighbourhoods, landmarks), unique hero copy, unique H2 set, internal-link plan, status. The sheet is the spec; Elementor is just the implementation.

The duplicate-content guardrail

Before publishing, I run the new pages through Screaming Frog with the duplicate-content checker on. Anything flagged as >70% similar gets sent back for unique-copy rewrite. No exceptions.

Result: 35 pages, zero duplicate-content flags, brand voice consistent across every market.

— Read next

My monthly SEO audit workflow