How should you structure service and location pages on a local website?
Service pages, city pages and city-plus-service pages each fit a different kind of business. Choose by how many real places you operate from and how different the work is in each place, not by how many towns you would like to rank in.
Which URL structure should a local business use?
Most local businesses should use /service/ pages for each main service and, if they have more than one real location, one /locations/city/ page per location. City-plus-service pages such as /toronto/emergency-plumber/ only fit when a location has its own team, offer or conditions for that service.
A single-location business needs no city folders at all: its city appears in titles and copy. Structure becomes a real decision only when you have more than one place, or a service area wide enough that customers in different towns expect different things.
Google's guidance on people-first content asks whether content was created mainly to attract search visits rather than to help people, and whether you are producing lots of content in the hope that some of it performs well in search. A URL structure built from a spreadsheet of towns usually fails both questions. One built from your actual locations and services usually passes. Relevance, distance and prominence explains why distance limits what city pages can do anyway.
When does each structure fit?
Use the first table to understand each pattern, and the second to pick one by business type.
| Pattern | Example URL | Fits when | Main risk |
|---|---|---|---|
| /service/ | /emergency-plumbing/ | Always: one page per main service | Thin pages for minor variations |
| /city/ or /locations/city/ | /locations/ottawa-kanata/ | You have a real office, branch or crew base there | Pages for towns with no presence |
| /city/service/ | /locations/ottawa-kanata/drain-cleaning/ | That location has its own team, equipment, pricing or rules for that service | Hundreds of near-duplicate pages |
| Service area section | Part of /locations/ottawa-kanata/ | You serve nearby towns from one base | Long lists of town names |
| Business type | /service/ | /city/ | /city/service/ |
|---|---|---|---|
| Single-location storefront or clinic | Yes | No; city goes in titles and copy | No |
| Service-area trade, one base | Yes | One page for the base; others as a service area list | No |
| Service-area trade, several crews or depots | Yes | One per base, plus neighbourhood pages only with real local work | Rarely; only where a base runs a distinct service |
| Multi-location clinic or retailer | Yes, shared across locations | One per branch | Only for services offered at some branches with distinct staff |
| Franchise network | Yes, written by the brand | One per franchise territory or outlet | Only where a franchisee adds real local content |
What does the URL tree look like for different businesses?
Four fictional businesses, four structures. In each, the number of pages matches what the business can describe honestly.
/Home: Glenmore Physiotherapy, Calgary/physiotherapy/Main service/sports-injury-rehab/Service with its own process and staff/pelvic-health/Service with its own therapist/team/Each therapist with credentials/contact/Address, parking, transit, hours/Home: Rideau Valley Plumbing, Ottawa/drain-cleaning/Service page/water-heaters/Service page/emergency-plumbing/Service page; after-hours line staffed/service-area/Map plus list of neighbourhoods served/service-area/kanata/Depot here; 2 technicians; local job log/service-area/orleans/Depot here; local job log and photosBarrhaven, Nepean, StittsvilleListed on /service-area/, no own page yet/Home: Harbourside Physio and Massage/locations/Clinic finder with map/locations/halifax-quinpool/Own NAP, team, hours/locations/dartmouth-crossing/Own NAP, team, hours/locations/bedford/Own NAP, team, hours/locations/bedford/concussion-care/Only Bedford has the concussion team/physiotherapy/Shared service page linking to all clinics/massage-therapy/Shared service page; notes which clinics offer it/Home: Brightpane Window Cleaning (franchise brand)/residential-window-cleaning/Brand service page/gutter-cleaning/Brand service page/locations/Find your local Brightpane/locations/london-on/Franchisee team, territory map, local photos/locations/barrie/Franchisee team, territory map, local photos/locations/barrie/commercial-window-cleaning/Only Barrie runs a commercial crew with liftsWhat makes a location page genuinely unique?
Unique does not mean rewritten. Running the same template through a paraphrasing tool gives you different words and the same nothing. A location page is unique when it carries facts that are true only for that place.
| Unique element | Example | Hard to fake? |
|---|---|---|
| Address, phone, hours matching that Business Profile | 712 Belmont Ave W, 555-0164 | Yes |
| Named staff based there | "Priya and Marc work at this clinic" | Yes |
| Photos of the premises and local work | Storefront, parking lot, finished jobs nearby | Yes |
| Arrival details | Parking, transit stop, entrance, accessibility | Yes |
| Services and hours specific to that site | "Concussion care only at Bedford" | Yes |
| Local conditions that change the service | Older homes with cast-iron drains in a neighbourhood | Partly |
| The city name in headings | "Plumber in Kanata" | No: this alone is the doorway pattern |
Pages that funnel visitors from many towns to one generic page are a doorway pattern, which Google's spam policies prohibit; the policy wording and a full comparison are on location pages. Very similar city pages also tend to be left out of the index, so the effort is wasted even before any penalty.
Build pages for places you can photograph.
If you cannot show the premises, the team or the finished work in a place, a page for that place has nothing unique to say. Put the town in your service area list instead.
How do navigation, breadcrumbs and markup support the structure?
The structure only works if people and crawlers can move through it. Three supporting pieces matter.
- Navigation. Services and Locations as top-level menu items. On mobile, a location finder near the top of the homepage.
- Hub pages. /locations/ lists every branch with address and a link; each service page links to the branches that offer it. See internal linking.
- Breadcrumbs. Home › Locations › Bedford › Concussion care shows where a page sits.
- Structured data. LocalBusiness markup on each location page; Organization markup describing the brand on the homepage.
Google's introduction to structured data explains that markup helps Google understand what a page is about, recommends JSON-LD, and notes that valid markup does not guarantee a rich result. Treat markup as a description of the structure you already built, not a way to create relevance a page lacks. The code is in LocalBusiness schema.
What mistakes should you avoid when restructuring?
- Changing URLs without redirects. Every old URL needs a 301 redirect to its closest new page. See the website migration SEO checklist.
- Keyword-stuffed slugs. /best-cheap-emergency-plumber-ottawa-ontario/ helps nobody. Short, readable slugs are easier to share and maintain.
- Two pages for one intent. /ottawa-plumber/ and /plumber-ottawa/ compete with each other. Keep one and redirect the other.
- Mixing patterns. Some branches under /locations/ and others at the root makes the site harder to maintain. Pick one pattern.
- Profiles pointing to old pages. After a restructure, update every Business Profile website link to the new location page.
- Building pages you cannot maintain. A page with last year's hours or a departed team member does more harm than no page.
What should you measure after choosing a structure?
Measure whether each page type does its job: service pages win service searches, location pages turn Maps visitors into calls and visits.
| Page type | Primary measure | Warning sign |
|---|---|---|
| /service/ | Enquiries started per page | Impressions without clicks for the main query |
| /locations/city/ | Calls, bookings and direction clicks per branch | Profile visitors bouncing to the hub |
| /city/service/ | Enquiries that would not come from the parent pages | Not indexed, or ranking below the parent page |
| Hubs | Clicks through to branch and service pages | Visitors leaving without choosing |
If a city-plus-service page never earns its own queries after several months, merge it back into the location page. Fewer, stronger pages beat a large grid.
Frequently asked questions
Should I put the city in my URLs?
Only for real location pages, such as /locations/kanata/. A single-location business does not need the city in URLs; titles and copy carry it.
Is /city/service/ bad for SEO?
Not in itself. It becomes a problem when it produces many near-identical pages. It fits when a location genuinely offers that service differently.
How many location pages can I create for a service-area business?
One per real base, plus neighbourhood pages only where you have substantial local work, photos and details to show. List the other areas instead.
Should service pages be inside location folders?
Usually no. Keep shared service pages at the root and link them to the locations that offer them. Nest a service under a location only when it is specific to that location.
What structure should a franchise use?
Brand-level service pages, plus one location page per franchise territory or outlet kept current by the franchisee. Add city-plus-service pages only where a franchisee offers something the others do not.
Does changing my URL structure hurt rankings?
It can for a while. Redirect every old URL to the closest new page, update internal links and Business Profile links, and monitor Search Console for errors.
What is a doorway page?
A page made to rank for a particular search, often a city name, that sends visitors on to a single generic page. Google's spam policies prohibit doorway abuse.
Do breadcrumbs matter for local sites?
They help people see where a page sits, such as Locations then Bedford, and make the structure clear. They are most useful on multi-location sites.
Should I use subdomains for each location?
Generally no. Folders such as /locations/bedford/ keep everything on one site and are simpler to manage than separate subdomains.
Sources & further reading
Regulator rules, platform policies and local data change. These sources let you check the facts on this page, last checked October 7, 2026.