Skip to content
Just.Digital
← All writing

Local GEO checklist for roofers

Dom Jedro, Managing Director at Just Digital
By Dom Jedro, Managing Director at Just DigitalPublished · Last updated · 13 min readBuilt from a content workflow behind a B2B site (307 pages scored) and local search captures. Not yet tested on a roofing company.

A 66-step local GEO checklist for roofers: how to get named by AI assistants, found on the map and linked to by local sites. Roofer examples throughout.

Local GEO checklist for roofers

Write down five questions you think an AI assistant asks when a homeowner types: who's a good roofer near me?

Fold the paper.

We'll open it in section 3.

This is the checklist I'd use to get a roofing company named by AI assistants like ChatGPT and found on the map. It covers the website, the Google profile and the reviews, in 66 checks and nine sections, from the first search to the first link. Swap the trade and the steps hold for any local service business.

It comes from two sources. One is the content workflow behind a large B2B site, where we scored 307 pages against Bing citations and Google AI impressions. The other is the local searches we captured for window cleaners and plumbers. I haven't run this on a roofing company yet, so each step is tagged with how much evidence sits behind it.

  • Gate means stop if it fails.
  • Fault check means a check that caught broken live pages.
  • Data means a signal in our B2B numbers.
  • Seen means something we saw in local searches.

The local basics, such as matching your business details everywhere, are in the local SEO checklist I wrote with Engin. This one covers what comes after: the pages, proof and links that make AI assistants name you.

Auf Deutsch lesen: Deutsche Version dieses Artikels.

Is this page worth writing?

Run this before you write anything. A failed gate item means a different page, or no page.

  • 1.1 The page pairs one service with one place and the map results show demand for that pair. (Gate)
    Check the search on a phone, in the town itself.
    Roofer example: Roof repair in [town], not "roofing services".
  • 1.2 It carries one thing only a local roofer knows: a price from your own jobs, a local permit rule, the damage local weather causes, or the house types in the area. (Gate)
    Write it in one line at the top of your notes. If you can't, stop.
    Roofer example: "Most 1960s homes in [suburb] have [roof type]. Here is what replacing it costs."
  • 1.3 It is not a copy of another town page. Swap the town name for another town and the page must stop making sense. (Gate)
    If it still reads the same, don't publish it.
  • 1.4 You have real jobs in that town to show: photos, dates, suburbs. (Gate)
    Don't write a town page for a place you have never worked in.
  • 1.5 The page has one goal: a phone call or a quote request. The number, hours and next step are on it.

What does the business profile need to say?

The base that every page leans on. Fix it once, then keep it identical everywhere.

  • 2.1 The Google profile uses the primary category that matches the main job. Add other categories only for work you do.
    Roofer example: The primary category is Roofing contractor. Add a second only if you really do, say, gutters.
  • 2.2 Name, address and phone are identical on the site, the profile and every directory.
    A business run from a home hides the address on the profile and shows the service area instead.
  • 2.3 Every service you sell is listed on the profile and has its own page on the site.
  • 2.4 One short business description is reused word for word across profiles.
  • 2.5 Local business markup (schema) is on the site. It tells search engines your name, phone number and service area in a form they read directly, using the roofing subtype and links to your profiles.
    Validate it after every site change.
  • 2.6 Licence and insurance details are visible on the site, as local law requires.

What should you research before writing?

Local facts only you have are what make a page worth quoting. Collect them before writing.

  • 3.1 Search the service in the town on a phone. Record the three map results, the organic results and any AI answer. (Seen)
    Note which results are directories and which are real roofers.
    What we saw: In one capture of "plumber near me" in Sydney, 7 of 10 organic links were directories.
  • 3.2 List the facts the top results leave out: price ranges, timelines, material brands, warranty terms, permit steps, insurance claim steps.
    That gap is your page.
  • 3.3 Write the 10 questions homeowners ask: cost, how long, repair or replace, insurance claim, permit, which material, storm damage, emergency leak, warranty, how to choose.
    Compare the list with the five you wrote down at the top, then add the questions customers ask on calls.
  • 3.4 Read the reviews of the top three competitors. List what customers praise and complain about, in their words.
  • 3.5 Check your rank from several points across the service area, not one. (Seen)
    Rank changes street by street.
    What we saw: In one scan of map points for a window-cleaning business, the profile showed in the top 20 at none of 277 points in its home town but at 11 to 12 of 25 points in the next town.
  • 3.6 Find the primary sources: the council permit page, the manufacturer's install and warranty documents, the building code, the weather service's hail records.

A rank is a map, not a number

Checking from one point, usually the business's own pin, shows its best case. Check from the points around the service area as well and the picture changes street by street. That is why the scan in 3.5 gives two numbers for one business.

Facts the top results leave out

Step 3.2 is the rule that shrank in our data. In the first 50 to 60 pages, the share of a page's facts that no top result had looked like the strongest signal (a correlation of 0.42 to 0.50). At 242 pages it was 0.12. Keep it anyway, because it is the one rule a small roofing company can beat a directory with, but don't expect it to carry the page alone.

Check what each town searches for first

Before you write a town page, look up what people in that town type. For a window cleaner we checked one nearby city: people there searched for eavestrough cleaning three times as often as window cleaning, 420 searches a month against 140. So that town's page leads with eavestrough cleaning. Check your own towns the same way. The roof repair page may need to lead with a different job in each one.

How do you write a page AI engines can quote?

AI engines lift single passages. Each section has to make sense alone.

  • 4.1 Each section's first sentence answers its heading.
    Roofer example: "How much does a roof replacement cost in [town]? Most homes cost [range] for [material], based on [n] of our jobs since [year]."
  • 4.2 Prices come as ranges and say what is included, the roof size, the material, and the basis: your own jobs and the date.
  • 4.3 Use numbers with units: days on site, warranty years, roof area.
    "Two days for a 150 m² roof" beats "quick turnaround".
  • 4.4 Put repair versus replace in a table: the sign, what it means, what to do.
    Use a real HTML table.
  • 4.5 Each town page carries real local detail: house age, roof types you see, weather, the permit office, suburbs served, and two or three jobs with dates. Google calls a page that only swaps the town name a doorway page.
  • 4.6 Each section opening reads alone. Name the material or the job. Don't start with "it" or "this".
  • 4.7 Use the homeowner's words. Write "roof leak", not "water ingress".
    Keep sentences short.
  • 4.8 Build the FAQ from real People Also Ask results and the questions customers ask on calls.
  • 4.9 No "best roofer in town", no slogans, no urgency lines such as "call before it's too late".
  • 4.10 A call button is visible at the top on a phone and again after each section. The number is a tappable link.
  • 4.11 Run a pass that strips AI-sounding phrases. Then read the page as the homeowner and as the owner whose name is on it.

What proof makes a page trustworthy?

What a homeowner, and an AI engine deciding whom to quote, look for.

  • 5.1 A named person, the owner or lead estimator, appears with years in the trade and licence number. (Data)
    The named author was the clearest signal in our B2B numbers.
  • 5.2 Job photos are your own, with the date and suburb in the caption and the alt text. No stock photos.
  • 5.3 Review quotes are word for word, first name only, with the customer's permission. Never edit or invent one.
  • 5.4 Warranty terms are written out: what is covered, for how many years, and who honours it.
  • 5.5 A visible published date and updated date are shown. Update the page when prices change.
  • 5.6 Every strong claim has been attacked and trimmed: "never leaks", "lifetime", "guaranteed".
    Roofer example: Replace "never leaks" with the warranty terms in years.
  • 5.7 FAQ schema is present if the page has an FAQ. Don't add star-rating markup for reviews of your own business on your own site.
    Google doesn't show stars for that.

Is the live page the page you meant to publish?

Check the published URL, not the draft. On a large B2B site, these checks found faults nobody had noticed.

  • 6.1 Open the live page, not the draft.
  • 6.2 The right town is on the right page. No other town, suburb or phone number is left over from the template. (Fault check)
    The same kind of template leak broke live pages on the B2B site.
  • 6.3 No placeholder text anywhere: [Insert], TBD, lorem ipsum, {{, XX%.
  • 6.4 Phone and address match on the page, the footer, the schema and the profile.
  • 6.5 The call button, the quote form and the map work on a phone. Tap each one.
  • 6.6 No banner or form sits between a heading and its first paragraph, or inside a paragraph.
  • 6.7 Every outbound link works and points to what it is cited for, including permit and manufacturer links.
  • 6.8 Run these checks again after every theme or plugin update.

How do reviews become content?

Reviews are the text local engines read most. Treat them as part of the page set.

  • 7.1 Ask every customer within a few days of the job, with a direct link.
  • 7.2 Ask them to say what job was done, where, and how it went. (Seen)
    What we saw: In one capture of 113 review lines from six local searches in Sydney, 66 named the job and 31 mentioned arriving on time.
  • 7.3 Reply to every review in plain words and name the service.
  • 7.4 Move the best quotes onto the matching service page and town page.
  • 7.5 Don't buy reviews, don't write them, and don't ask only your happy customers.
    This breaks the platform's rules.

How do you earn local links?

This is my reasoning, not measured results. Step 8.12 sets up the measurement.

  • 8.1 Publish one citable local number: what roofs cost in [town], this year, from your own jobs. State the method, the number of jobs and the dates.
  • 8.2 Write the key figure as one sentence a reporter can copy as it stands: subject, number, unit, source, date.
    Put it near the top of the page.
  • 8.3 After a local storm or hail event, publish a dated page with your own photos and a plain list of damage signs.
  • 8.4 Publish a permit and rules page for the town, linking to the council's own pages.
    Inspectors and agents link to pages like this.
  • 8.5 Give your method a name, such as a free five-point roof check, and publish it.
    A named thing gets linked. A generic claim doesn't.
  • 8.6 Find who already links to your weaker local competitors. Look up who links to the top three and list the local sites: papers, clubs, chambers, estate agents, supplier lists.
    A backlink tool such as Semrush shows this.
  • 8.7 Pitch each site once, number first, link second. Offer the local paper the cost figure with a photo.
    One short message each. No sequences.
  • 8.8 Get listed on the installer pages of the manufacturers and suppliers whose products you really are certified to fit.
  • 8.9 Sponsor local clubs, schools or events only when you really fund them, and ask for the link as part of the deal.
  • 8.10 Give agents, inspectors and insurance brokers a resource to share: a roof condition checklist as a page and a download.
  • 8.11 Don't buy links and don't mass-submit to directories.
  • 8.12 Log referring domains for each page on publish day and again at 90 days.
    This shows whether section 8 works.

How do you know it's working?

One row per page, kept from day one.

  • 9.1 Write a baseline row before publishing: rank from several map points, calls, profile views, reviews, referring domains.
  • 9.2 Track calls by source: a separate tracking number on the profile and on the site, plus "how did you hear about us" on every quote.
  • 9.3 Monthly: profile calls, direction requests, rank from several map points, review count.
  • 9.4 Ask AI assistants three questions and note whether they name the business.
    Small samples are noisy.
    Roofer example: "Best roofer in [town]", "how much to replace a roof in [town]", "who fixes storm damage in [town]".
  • 9.5 Quarterly refresh: update prices, add new jobs, log what changed.
  • 9.6 Score the page against this list after each refresh and keep the score in the baseline row.
    Target: every Gate and Fault check passed, and 80% of the rest.

How much of this is proven?

Less than the checklist's length suggests. We scored 307 pages on structure, substance and integrity and compared the scores with Bing citations and Google AI impressions, with search demand held constant.

Once demand was controlled, no single structure rule had more than a weak link to Bing citations (about 0.1). The clearest signal was a named author against Google AI impressions (0.18). A larger count of lists and tables tracked live AI citations at 0.42, but that is 34 pages, so the range is wide. Correlation is not proof of cause. Older pages differ from newer ones in many ways at once.

The local steps rest on practice and on captures we ran for window cleaners and plumbers: map searches, review text and rank checks from several points. They show what local results look like. They don't show what makes a roofer rank or get cited. The links section is design logic and isn't measured yet, which is why step 8.12 sets up the measurement.

So treat the page structure as hygiene, put the effort into local facts only you have, and run the live-page checks every time.

Frequently Asked Questions

What is local GEO?

Local GEO is making a local business easy for AI assistants to name and quote when someone asks for a service nearby. It sits next to the map and search results people already use.

Is local GEO different from local SEO?

It builds on local SEO. The profile, matching business details and reviews are local SEO. The added part is writing pages an AI can quote from a single passage, and checking whether it names you.

How long does it take to work?

We don't have roofing results yet, so we can't give a number. The checklist ends with a baseline row so you can measure your own starting point and your own change.

Do I need a new website?

No. Most steps change existing pages and your Google profile.

Questions about a step?

Message Dom on LinkedIn.

Written by Dom Jedro, Managing Director at Just Digital. Proof-first marketing and buyer-language copywriting at justdigital.world.