Local SEO

Schema for a local roofing business.

The types that matter, where they go, and how to check they are actually valid.

What to implement

Six blocks cover nearly everything a roofing site needs.

01
RoofingContractor or LocalBusiness for the organisation, once, site-wide, with name, address, phone, hours, and licence detail.
02
Service with an Offer for each service page, describing what it is rather than restating the page title.
03
AreaServed on the organisation and on each city page, listing the suburbs that page actually covers.
04
FAQPage on any page with a real question section, matching the visible questions exactly.
05
BreadcrumbList on every page below the homepage, reflecting the real hierarchy.
06
Article on guide and blog content, with a named author and honest published and modified dates.

Getting it right

Write it as JSON-LD, not as microdata scattered through the markup, and never render it with a script. Keep every claim consistent with what is visible on the page and with the Business Profile. Schema that contradicts the page is worse than none, because it undermines the attribution it was meant to establish.

The failure that is always consistency

A different phone format in the schema than on the page. An address that has not been updated since the office moved. A service area listing suburbs the page never mentions. Hours that contradict the profile. Each one is clerical, each one is invisible until someone checks, and collectively they are the most common reason a technically complete schema implementation does nothing.

How to validate

Four checks, before launch and again after.

01
Run each template through a structured data validator and fix every error, not only the warnings you recognise
02
Check Search Console's enhancement reports a fortnight after launch, since some issues only appear at scale
03
Read the rendered JSON-LD in the page source on a live URL, not in a plugin preview
04
Re-validate after any template change, because schema breaks silently when markup moves

What schema does not do

It is not a ranking lever on its own, and it will not rescue a page that answers nothing. What it does is remove guesswork about who is answering, what they do, and where, which matters more when an answer appears without a click. Treat it as attribution infrastructure rather than an optimisation.

Where it fits in a build

Specified per template in the blueprint, written by hand, validated before launch, and re-checked in the post-launch crawl. That is deliberate: schema added afterwards by a plugin tends to duplicate the organisation block, contradict the page, and quietly break the next time the theme updates.

Re-validating after a theme or template change

Schema breaks silently. A template edit that moves a heading, a plugin update that changes how the head renders, or a builder update that re-wraps a section can strip a block or duplicate it, and nothing on the page looks different.

01
Keep a list of which schema types sit on which template, so there is something to check against.
02
After any theme, plugin, or template change, spot-check one live URL per template in a validator.
03
Watch Search Console's enhancement reports for a fortnight afterwards, since some errors only appear at scale.
04
Check for duplicated organisation blocks, which is the most common outcome of adding a plugin over hand-written schema.
05
Confirm the JSON-LD is still in the rendered source rather than being injected by a script.

What breaks most often

Two things. Duplicate organisation blocks, where a plugin adds its own alongside the hand-written one and the two disagree about the phone number or the address. And FAQPage blocks left behind after the visible questions were edited or removed, which asserts content the page no longer contains.

Keep a record of what was implemented

A one-page note listing each template, the schema types on it, and the date it was last validated. It takes ten minutes to write and it is the difference between checking five URLs after an update and guessing. On a rebuild here that note is part of the handover, alongside the blueprint and the query map.

See what your market rewards.

$2,500, and you get the city-by-city order to build in.