Back to the journal
ArticlePublished 23 Jun 20267 min readUpdated 23 Jun 2026

Local SEO Pages: Why Your Competitors Rank by City While You Lose Customers

Multi-location SMEs creating generic local pages are losing out to competitors who truly differentiate their content by city. Here's the complete method: URL architecture, unique content, s…

Local Visibility
Local SEO Pages: Why Your Competitors Rank by City While You Lose Customers

Key takeaways

  • 1Differentiate at least 60% of content per local page: geographical context, local testimonials, city-specific FAQs.
  • 2Implement schema.org LocalBusiness with `areaServed` and `sameAs` on each page to strengthen your entity reputation with search engines and AIs.
  • 3Inconsistent NAP across your site, GBP, and directories is enough to drop your ranking in the Map Pack.
  • 4Structure your URLs as a hub + local pages to concentrate authority and facilitate internal linking between cities.
  • 5Measure conversions by city (CTR, calls, forms) and re-evaluate each local page every six months.
Table of contents

46% of Google searches have local intent (SearchEngineRoundtable, 2026). Yet, most multi-location SMEs settle for a single contact page with a list of cities. The result: they are invisible where their customers are searching, and their competitors snatch up the Map Pack.

Here's how to structure local pages that rank, convert, and resist Google's duplicate content penalties.

Why a single "service areas" page is no longer enough

A generic page listing ten cities doesn't target any of them effectively. Google needs strong geographical signals to associate your site with a precise local query: dedicated content, schema.org markup, NAP (Name, Address, Phone) consistency, and anchoring in the local ecosystem.

On mobile, 88% of local searches lead to a store visit within a week (Think with Google). If your page doesn't answer "plumber Lyon 3" or "accountant Bordeaux Chartrons", you simply don't exist for that user.

The classic trap: creating ten almost identical pages, changing only the city name. Google detects this duplicate content, devalues the entire domain, and can even trigger a manual action. The challenge is therefore to differentiate without multiplying production costs.

URL architecture: laying the foundations before writing

Website sitemap diagram with a hierarchical hub-and-spoke structure, showing a service hub connected to multiple city-specific local pages.

Before writing a single line, define a consistent and scalable URL structure. Two models work well for SMEs:

  • /services/plumbing/lyon/ — service > city logic, ideal if you have multiple services
  • /lyon/plumbing/ — city > service logic, relevant if the geographical area is your customers' primary filter

Some non-negotiable rules:

  1. A unique URL per city/service combination. Never a dynamic parameter (?city=lyon).
  2. Lowercase slugs, no accents, no unnecessary stop words (/accountant-bordeaux/ and not /accountant-in-bordeaux-gironde/).
  3. A "hub" parent page (/services/plumbing/) that links all local variations — this is what concentrates authority and redistributes it.

This architecture also facilitates internal linking: each local page points to the hub, the hub points to each city, and local pages link to each other for nearby cities.

City-differentiated content: the 60% rule

The practical rule: at least 60% of the content must be unique to each local page. This isn't an arbitrary constraint — it's what separates a page that ranks from a page Google ignores.

Specifically, here's what you can differentiate without blowing your production budget:

  • The hook and local context: mention a neighbourhood, an event, a specific city issue (e.g., parking constraints for a tradesperson in Lyon city centre, seismic standards in Provence).
  • Local client references: a testimonial from a client in Nantes doesn't have the same value on a page targeting Bordeaux. Adapt it.
  • Local market data: average price per m² for a real estate agency, business creation rate for an accountant — these figures anchor your expertise in local reality.
  • Local team or contact person: if you have a sales representative based in Marseille, highlight them on the Marseille page.
  • Local FAQs: questions vary by city. "Do I need a building permit for a conservatory in Strasbourg?" is different from the same question in Paris.

The service presentation block (what you do, how, why you) can remain 40% common. This is your brand foundation. But everything related to geographical anchoring must be original.

Schema.org LocalBusiness: the markup that speaks to search engines and AIs

Computer screen displaying JSON-LD Schema.org code with search engine and AI agent icons in the background.

Schema.org LocalBusiness is the most powerful structured signal for local SEO. It allows Google — and AI agents like ChatGPT or Gemini — to extract your information directly, without having to interpret your HTML.

Here are the essential properties for each local page:

```json
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Your Company — Lyon",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 rue de la République",
"addressLocality": "Lyon",
"postalCode": "69001",
"addressCountry": "FR"
},
"telephone": "+33 4 XX XX XX XX",
"url": "https://your-site.fr/services/plumbing/lyon/",
"areaServed": {"@type": "City", "name": "Lyon"},
"openingHoursSpecification": [...]
}
```

Two often-forgotten points: the areaServed property (which specifies the service area, distinct from the physical address) and sameAs (which links your Google Business Profile, your LinkedIn page, your Pages Jaunes profile). These cross-links strengthen your entity reputation in the eyes of search engines.

If you don't have a physical address in each city, use the Service type combined with areaServed rather than fabricating a false address — Google penalises fictitious addresses, especially on Google Business Profile.

Consistent NAP: the error that sabotages everything else

Illustration of consistent business listings on Google, directories, and social media, with green validation checkmarks.
Photo : henry perks / Unsplash

The NAP (Name, Address, Phone) must be rigorously identical on your website, your Google Business Profile, directories (Pages Jaunes, Yelp, Mappy, Tripadvisor), and social media. A comma difference, an inconsistent abbreviation ("Av." vs "Avenue"), an old phone number — and Google loses confidence in your data.

In practice:

  • Audit your existing citations with a dedicated tool. Solutions like BrightLocal or Yext can detect inconsistencies — but their cost (often several hundred euros per month) and complexity reserve them more for large brands. For an SME, a targeted local visibility audit is often more cost-effective.
  • Standardise a reference format (full company name, standardised La Poste postal address, international format number).
  • Prioritise updating high-authority sources: Google Business Profile, Apple Maps, Facebook, Pages Jaunes.

Inconsistent NAP dilutes your local signal and can cause your Map Pack ranking to drop, even if your content is excellent.

The pitfalls of duplicate content: what Google truly punishes

Google doesn't automatically penalise duplicate content — it devalues it. The least unique page will be ignored in favour of the one Google considers the "canonical source". In a multi-city context, this means that only one or two of your local pages will be indexed if they are too similar.

The most common errors observed in the field:

  • Simple city replacement: "We operate in [CITY] for all your plumbing needs" copied and pasted ten times.
  • Identical title tags and meta descriptions: each local page must have a unique title including the city and service (Plumber Lyon 3 — Fast 24/7 Intervention | YourCompany).
  • Absence of canonical tag: if you have similar pages for technical reasons, use <link rel="canonical"> to indicate the reference version.
  • Local pages without inbound links: an isolated page, without internal linking or external citation, will never be well-ranked. Build links from local directories, regional professional associations, local press articles.

A semantic audit precisely identifies which pages are cannibalising each other and which deserve to be consolidated or enriched.

Conversion: turning local traffic into customers

Mobile mockup of a local SEO page with a call button, customer reviews, and an integrated Google Maps.

Ranking is one step. Converting is another. A local page that generates traffic but no calls or forms is a wasted investment.

Conversion elements specific to local pages:

  • A geolocated CTA: "Call our Lyon team" with a local number (or a tracking number per city) is more reassuring than a generic national number.
  • Local social proof: Google reviews filtered by city, testimonials with first name and town, recognisable local client logos.
  • A short form with pre-filled city field: reduce friction. If the user lands on /plumbing/lyon/, the "Your city" field should already display "Lyon".
  • Integrated Google Maps: it strengthens geographical credibility and improves time spent on the page.
  • Local opening hours and intervention times: "Intervention within 2 hours in Lyon and its metropolitan area" is much more convincing than "Fast intervention".

Businesses in the top 3 of the Map Pack get 126% more traffic and 93% more actions than those ranked 4th to 10th (Semrush, 2026). Every optimisation counts.

Measuring and evolving your local strategy

A local page strategy is not a "one-shot" project. It is managed over time with precise indicators:

  • Positions per page and per city in Google Search Console (filter by URL)
  • Click-through rate (CTR): a low CTR on a well-ranked page signals a title or meta description that needs reworking
  • Conversions by geographical source in Google Analytics 4 (segments by city)
  • Evolution of Google reviews per establishment, if you have multiple GBP listings

Re-evaluate each page every six months. A city that generates no traffic after six months of indexing deserves either content enrichment or consolidation with a neighbouring page.

If you're starting from scratch or want to audit existing content, a 360° visibility audit will give you a precise map of opportunities by area — and identify pages that are cannibalising each other before they penalise your entire domain. This is often the most cost-effective starting point for an SME that wants to scale its local presence without starting from scratch.

Common questions on this topic

How many local pages should an SME operating in 10 cities create?

Create one page per priority city/service combination, starting with cities with the highest commercial potential. It's better to have 5 truly differentiated pages than 10 almost identical pages that Google will devalue. Consolidate secondary cities into a regional page until you have the resources to develop them.

Can a local page be created without having a physical address in the targeted city?

Yes, provided you are transparent. Use the `Service` type in schema.org with the `areaServed` property rather than fabricating a fictitious address. On Google Business Profile, a fake address risks profile suspension. Clearly state your service area on the page.

How can I avoid duplicate content penalties on my local pages?

Differentiate at least 60% of the content (local context, testimonials, market data), write unique title tags and meta descriptions for each city, and ensure each page receives inbound links. Simply replacing the city name in identical text is the number one cause of devaluation by Google.

Is schema.org LocalBusiness useful if I don't yet appear in the Map Pack?

Absolutely. Structured markup helps Google understand and index your geographical data faster, which accelerates your rise in rankings. It also benefits your visibility in AI agent responses (ChatGPT, Gemini) which directly extract structured data to answer local queries.

What's the difference between a local SEO page and a Google Business Profile listing?

These are two complementary levers. The GBP listing manages your presence in the Map Pack and Google Maps. The local page on your site targets classic organic results and is entirely yours. Both must coexist with consistent NAP and reinforce each other through cross-linking.

How long does it take for a local page to start ranking?

Generally, 3 to 6 months for significant results on moderately competitive local queries. This timeframe depends on your domain authority, content quality, and the number of local citations. Well-structured pages with schema.org and strong internal linking progress faster.