Last December I pulled up Search Console for an agency site we'd just retired. Three months of data on 17 location landing pages. Total clicks: eight. Eight clicks across pages titled "Law Firm Web Design in Washington DC," "Law Firm Web Design in Tampa," "Law Firm Web Design in Chula Vista," and fourteen others.
That was the moment I stopped selling location landing pages as a service.
This piece is the slightly longer version of what changed, why it changed, and what works now. If you currently pay someone to build city pages for your firm, read this before the next invoice.
What we used to ship
Between 2019 and 2024, almost every law firm we built a site for got somewhere between 12 and 25 location landing pages bundled into the package. We weren't subtle about it. The pages had names like:
- /law-firm-website-design-dc/
- /law-firm-website-design-tampa/
- /law-firm-website-design-chula-vista/
- /law-firm-website-design-philadelphia/
- /law-firm-website-design-port-st-lucie/
Each one had a header image with the city skyline, a hero block ("Law firms in [City] face unique digital marketing challenges..."), a section about local SEO, a section about local bar rules, three testimonials lifted from the firm's main site with the city name lightly edited in, and a contact form.
The templates were honest enough work. The body copy was 600 to 800 words, not 200. The cities were ones our clients actually wanted clients from. We weren't running a content farm.
But the math broke anyway.
The exact data
Pulling Search Console for that retired site, here's what three months of February through April produced across the 17 location landing pages:
- Impressions: 2,181
- Clicks: 8
- CTR: 0.37%
- Average position: 27.4
The DC page alone produced 437 impressions and zero clicks. The Tampa page: 211 impressions, two clicks. The Chula Vista page: 89 impressions, zero clicks. The five clicks we could attribute to a target market (US-based, firm-side search intent) split across three pages and one country.
For context, the same site's "About" page produced 38 impressions and four clicks in the same window. The About page outperformed 17 city pages combined.
When I went back and looked at the agency's older Search Console history, the pattern was visible from late 2023 onward. In 2021, those same city pages had averaged about 23 clicks per page per quarter. By 2023 it was 6 per quarter. By 2024 it was barely a click per page per quarter. By early 2026, the well was dry.
What changed
Three things, in order of severity.
Google's Helpful Content updates. The first one rolled out August 2022. The next in December 2022. Then a heavier one in September 2023 that explicitly targeted what Google was calling "doorway pages" and "thin programmatic location pages." A 2024 update extended the reach. Sites that leaned heavily on city-variant pages started seeing both the pages themselves and other pages on the same domain demoted. The collateral damage is the part most agencies don't tell their clients about.
The AI Overview rollout. Google started showing AI-generated answers on legal queries broadly in late 2024 and aggressively through 2025. By early 2026, a majority of question-based legal queries trigger an AI Overview above the blue links (Pew Research, 2025). That's a chunk of vertical real estate the city page used to occupy. Now it just doesn't.
The local pack reshuffle. Google's local pack used to show three local businesses with a small map. Around mid-2024 the local pack started taking more vertical space and showing reviews more prominently. Combined with the AI Overview, by the time a user reaches blue links on a "[practice] [city]" search, they've already seen three to five firm names. Your seventh-position city page is fighting for the leftover scroll attention. There isn't much.
Why AI engines don't cite city pages either
This part is less covered.
When we started running AEO audits on law firm sites in mid-2025, we expected ChatGPT and Perplexity to cite well-written city pages on "best personal injury lawyer in [city]" queries. They almost never did.
What they cited instead, in roughly this order:
- The firm's main practice-area page (if it was substantive)
- The state or county bar association directory
- Avvo and Martindale profiles
- Local news where the firm had been quoted
- Justia case law mentions
The "personal injury lawyer in [city]" page might rank in Google. It almost never gets cited in AI. The signals AI engines look for (entity reinforcement, structured data, third-party validation, conversational answer formatting) are usually weakest on city pages, because city pages were built around keyword density and template scaling, not around being a substantive resource on a topic.
What we charged for it
Nothing now. We don't sell city pages anymore.
For context, we used to charge somewhere around $250 per page as a line item, often bundled into a website build. A firm getting 15 city pages was paying us $3,750 to ship a few thousand words of templated content per metro. It worked when it worked. Now it costs the firm a fraction of their authority signal and pays back nothing.
If your current agency is still charging you to build or maintain city landing pages, the right question to ask them is: "Pull up Search Console, filter pages by city slug, show me clicks and average position for the last 90 days." If the numbers look like ours did, the bill has stopped making sense.
What works instead
Three things, ordered from least to most effort.
One real service-areas page. A single URL (we use /service-areas/) listing the metros the firm serves, with substantive content about each. Not 50 words per city. Three to five paragraphs naming the metro, the courthouses you've appeared in, the practice variations that come up locally (Texas vs California PI law differs, for example), and a CTA. ProfessionalService schema on the page with areaServed covering the full region.
A snippet of what the schema looks like in JSON-LD:
{
"@context": "https://schema.org",
"@type": "LegalService",
"name": "Adams Park Personal Injury",
"areaServed": [
{"@type": "City", "name": "Austin"},
{"@type": "City", "name": "San Antonio"},
{"@type": "City", "name": "Houston"}
],
"serviceType": "Personal Injury Law"
}
That's one page, fifty lines of JSON-LD, and an honest description of where you work. It does more for "do you serve [city]" discovery than 17 thin pages ever did.
Practice-area pages that name places naturally. Your "Workers' Compensation" page mentions the cities you serve in the body content. Not a list at the bottom. Real prose: "Our workers' compensation practice covers Travis, Williamson, and Hays counties, with most cases filed at the Texas Department of Insurance's Austin office." LegalService schema with areaServed populated. Honest mention of the courthouses you've actually appeared at. The page ranks for "workers comp lawyer Austin" because the page is about workers' comp and the firm is in Austin, not because the URL has Austin in it.
Real local entity reinforcement. This is the one that actually moves rankings now. State bar listing with the firm name and address exactly matching the website. County bar listing the same. Google Business Profile with the same NAP. Quotes in regional papers as a local legal expert. PACER and state docket appearances showing the firm name. Each one is an independent third-party confirmation that the firm exists, operates in this region, and practices in this area. AI engines weight these signals heavily. You can't fake them by spinning up 17 city pages, and that's the point.
When city pages still make sense
One real exception.
Firms with multiple physical offices in different metros. If your firm has a Chicago office and a Milwaukee office and a Madison office, each one deserves its own location page with its own LocalBusiness schema, its own attorneys named, its own real photos, its own phone number, its own street address. That's not programmatic. That's just describing your business honestly.
In that case, the test for whether the page deserves to exist is: would someone visiting that office in person actually find the address useful? If yes, the page earns its place.
Everything else, in 2026, is more honestly served by stronger pillar content, a single service-areas page that doesn't pretend, and the slow patient work of building local entity reinforcement on surfaces you don't control.
The audit you can run tonight
Open Google Search Console for your own site. Go to Performance > Pages. Filter pages by the URL pattern most likely to be your city pages (often "city" or specific city slugs like "dallas" or "houston"). Look at the last 90 days. If clicks are zero or near-zero and impressions are scattered, the pages are dead weight. They're also possibly dragging your other pages down via the Helpful Content classifier.
If your dashboard looks anything like the one I pulled in December, the kindest thing to do for the rest of your site is redirect those URLs to your service-areas page and let the soil rest.