Local SEO: guide and schema markup to win on Google (2026)
Local search rests on three pillars: a flawless Google listing, identical contact details everywhere, and structured data Google can read.
When someone searches "plumber near me", Google is not ranking websites: it is ranking businesses. Local search therefore follows different rules from classic search, and they are simpler than people think.
The three pillars
1. The Google Business Profile listing. It decides your place in the block of three businesses shown above the results. Not your website.
2. Consistent contact details. Name, address, phone: identical, character for character, everywhere they appear. Website, Google listing, directories, social media.
3. Structured data. Markup that tells Google explicitly: here is a business, here is its address, its hours, its phone number.
The Google listing, in practice
What makes the difference, in order:
- The primary category. Pick the most precise one, not the broadest. "Plumber" rather than "Contractor".
- Real hours, kept current, holidays included.
- Recent photos. A listing with no new photo in two years sends the wrong signal.
- Reviews, and above all the replies. Answering a negative review calmly is worth more than ten positive reviews with no reply.
- The description: what you do, for whom, in which area. No keyword stuffing.
Consistency: the most common mistake
"123 Main Street, suite 4" on the site, "123 Main #4" on the listing, "123, Main Street, unit 4" in a directory. To you, it is the same address. To a search engine, those are three possible establishments.
Inventory every place your contact details appear, pick one way of writing them, and align everything on it. It is tedious, it is done once, and it clears a problem that holds back plenty of businesses without their knowing.
Structured data, without the jargon
`LocalBusiness` markup is a block of code, invisible to the visitor, that tells Google what it should not have to guess. At a minimum:
- the exact business name
- the full address, broken into fields
- the phone number
- the opening hours
- the type of business
It goes in once, in the code of the home page and the contact page. Most platforms have an add-on that does it; otherwise, a few lines are enough.
One thing to understand: markup does not lift a page. It keeps Google from getting it wrong. It is clarity work, not persuasion.
The order of works
- Claim and complete the Google listing
- Make contact details uniform everywhere
- Add the markup on the home and contact pages
- Ask for reviews, and answer them every time
- Create one page per city you actually serve — with content specific to each, not a copy-paste with the name swapped
That last point comes with a warning: a page per city is only worth something if it says something specific about that city. Twenty identical pages with a substituted name is exactly the sort of thing Google spots and penalizes.
