AI SEO for Roofers: Hire an Agency or Do It Yourself?

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI SEO for Roofers: Hire an Agency or Do It Yourself?
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for AI SEO for Roofers: Hire an Agency or Do It Yourself?

Do it yourself if you can spare about three hours a week: the work is a complete Business Profile, a page for each service, genuine reviews and a monthly visibility test. Hire an agency if you can't, but only on terms you can leave: you own the site, profile and analytics, and reports show calls rather than rankings.

Google's own advice anchors both routes. It says there are no additional requirements to appear in AI Overviews or AI Mode, no special optimisation and no special files or markup, so a quote that prices "AI search optimisation" as a separate extra deserves questions. The useful question is whether an agency will do ordinary local SEO well and show you the results in calls.

Follow me on Instagram@sagnikteaches

Four jobs roofers need from SEO, and who can do each

Strip out the jargon and a roofer needs four things from search. A complete Google Business Profile comes first, because the map result is where urgent calls start. Next come pages for each service you really sell, backed by finished-job evidence. Then a steady flow of genuine reviews, and finally a way to see which calls search produced. AI answers can draw on the same material, which is why the work overlaps.

Connect on LinkedInSagnik Bhattacharya
JobDoing it yourselfWith an agencySensible split
Business ProfileAbout three hours once, then 15 minutes a week for photos and posts.Set-up and monthly posts; risk is who ends up owning the profile.You hold the keys; an agency gets a manager role at most.
Service and project pagesOne page every week or two, 60 to 90 minutes each with an AI draft.Writes and publishes pages; quality depends on the job facts you supply.Either; you supply photos and facts and approve every page.
ReviewsAsk each customer within days; reply to every review.Can automate requests, but your crew's behaviour decides the content.You ask; tools only send.
Tracking callsSearch Console, Bing Webmaster Tools and a "how did you hear about us" question.Monthly report; check it shows calls, not just rankings.Accounts in your name, always.

What agencies promise against what to check they delivered

Google's page on hiring an SEO, updated in June 2026, is the best checklist I know of, and it is on the Search Central site. It says no one can guarantee a number one ranking and that if an SEO promises first place you should find someone else. It warns against firms that email you out of the blue or are secretive about what they will do, and it advises granting only read access to Search Console at the audit stage. For firms selling AEO or GEO (answer-engine and generative-engine optimisation) it says to check that their advice matches Google's official guidance on generative AI features. Use it to test each claim in the pitch:

Subscribe on YouTube@sagnikteaches
What the pitch saysWhat to check
"Number one in 90 days."No one can guarantee it. Ask for two client examples showing calls or booked inspections, not rankings.
"AI search needs its own service."Ask which Google or OpenAI page each recommendation comes from. Google says no special optimisation is needed.
"We will publish 50 area pages."Google's spam policy names generative AI used to create many pages without adding value as scaled content abuse. Ask for three sample pages with real job evidence.
"Our link package builds authority."The same policy lists buying or selling links for ranking as link spam. Ask for the list of linking sites and how each was earned.
"We will add FAQ markup for rich results."Google ended FAQ rich results in May 2026, so the promise is out of date.
"We will add an llms.txt file."Google says AI text files aren't needed for its AI features.
"We will manage your Google profile."Ask who is the owner. Owners can remove users and delete the profile; managers cannot.

A longer treatment of choosing among agencies sits in how to choose an SEO agency that understands AI search. If a salesperson is selling leads rather than SEO, the pay-per-appointment and retainer models are compared in buying AI lead generation for roofing.

What an agency costs, and the arithmetic of paying for it

Ahrefs' SEO pricing study (last updated in August 2024, from a poll of 439 SEO providers) puts local SEO at about $1,557 a month on average, with agencies near $1,819 and freelancers near $1,150. Those are providers' self-reported prices from a study now more than two years old, so use them to sanity-check a quote, not to predict one.

Here is the break-even sum for an illustrative six-person roofing firm that makes $4,000 gross profit on an average replacement and is quoted $1,800 a month. The agency's own time costs you two hours a month of approvals and calls, valued at $60 an hour. The do-it-yourself route costs about three hours a week, roughly 13 hours a month, plus a $20 AI assistant subscription (OpenAI's help page gives ChatGPT Plus as $20 a month).

RouteCash a monthYour time a monthTotal costExtra jobs to break even
Do it yourself$2013 hours ($780)$8000.2
Agency retainer$1,8002 hours ($120)$1,9200.48

An agency pays for itself if it brings about one extra job every two months, which sounds easy until you add the ramp. A six-month term with no early results costs $10,800, or 2.7 jobs' worth of profit, before the first benefit. After the ramp, three extra booked inspections a month at a 30% close rate is 0.9 jobs, or $3,600, which clears the bill comfortably. One extra inspection a month is 0.3 jobs, or $1,200, which doesn't. So the number to demand is booked inspections from search, per month, in the report.

The do-it-yourself checklist: three hours a week

The first month is set-up, about twelve hours across four weeks. Then a weekly rota takes over.

  1. Week one, the Business Profile. Confirm you are the owner. Use your real-world business name, because Google's guidelines don't allow taglines, phone numbers or location details to be added to it. List your categories and services. If you work from a yard or home, hide the street address and set a service area (Google says service areas shouldn't extend much beyond about two hours' driving from your base). Upload at least ten photos of finished jobs.
  2. Week two, pages. One page for each service you sell (replacement, repair, storm inspection, flat roofing if you do it), each with licence and insurance details, warranty terms, your process, three project photos and a call button. Add a page explaining what you do and don't do with insurance claims, using the wording rules from the roofing receptionist tutorial. If your site builder supports it, add business markup using the RoofingContractor type from schema.org.
  3. Week three, measurement. Set up Search Console and Bing Webmaster Tools. Check your robots.txt isn't blocking OAI-SearchBot. Make "how did you hear about us?" a standard question for your phone or AI receptionist, so calls can be tied to search.
  4. Week four, reviews. Write the ask, create your review link and send it individually to your last 30 customers. Google's rules bar incentives and selective asking, so everyone gets the same request and nobody is screened first.

The weekly rota afterwards: Monday, 30 minutes asking three recent customers for reviews and replying to any new ones. Wednesday, 90 minutes on one new project or service page, drafted with AI and finished with your own job details. Friday, 30 minutes adding a photo set or post to the profile. On the first Friday of the month, 60 minutes for the visibility test below and a look at Search Console. That is about 2 hours 45 minutes a week once the monthly hour is averaged in. Free listings on Apple Business (formerly Apple Business Connect) and Bing Places are worth claiming in week one, because Apple Maps and Bing draw on them.

Keeping up with the weekly jobs is the real test of the DIY route. If the habit slips, automate the checks first and keep the writing yourself, because the checks are routine and the project facts are not.

Testing whether ChatGPT and Google name you

Run this test monthly, in a private window, with 12 prompts: four urgent ("who should I call for a leaking roof in [town]"), four research ("how much does a roof replacement cost in [town]"), two insurance-related ("roofer who documents hail damage for insurance claims in [town]") and two brand queries that name your company. Ask each prompt three times at different times of day, because answers vary between runs. Write down whether you were named, whether a page of yours was cited, and which competitors appeared. Here is one filled-in row from an illustrative sheet:

PromptNamed in 3 runsAI Overview shown?Cited pageCompetitors named
Who should I call for a leaking roof in [town]?0Yes, in two of three runsNone of oursCompetitor A (3), Competitor B (2)
How much does a roof replacement cost in [town]?1NoOur pricing guide, onceCompetitor A (2)
Is [your company] a good roofer?3NoBusiness Profile and two review sitesNone

Read the sheet for patterns. Zero mentions on urgent prompts, as in row one, usually points to the profile and to a missing "leaking roof" page. Brand queries that work while general prompts don't suggest your name is known but your service pages aren't being cited. Look at what the answers cite, because those are the pages you must beat. In the illustrative run, Competitor A's winning page was an emergency page answering "what to do while you wait for a roofer", which became the next page on the DIY list.

Two reports add numbers without adding leads. Search Console's Generative AI performance report, rolled out to all sites by 31 August 2026, counts impressions in AI Overviews and AI Mode by page, device and date. Bing Webmaster Tools' AI Performance report (a public preview since 10 February 2026) shows citations and grounding queries across Copilot and AI summaries in Bing. Both count appearances; only your call log counts jobs. OpenAI's bot documentation, at its crawler page, is where to confirm what OAI-SearchBot controls. For the same method applied to a neighbouring trade, getting named by ChatGPT and AI Overviews as a plumber has a second worked example.

A service page that earns its place: before and after

An AI draft with no input reads the same for every roofer. This is the kind of paragraph that goes into a page a hundred times over:

"At [company] we pride ourselves on high-quality roof repair services. Our experienced team uses the best materials to make sure your roof lasts for years."

Nothing in it can be checked, so nothing in it earns a citation or a call. Fill the same slot with facts from a real job, and it changes (the details below are an illustration; replace them with yours):

"Last month we repaired a lifted ridge on a two-storey house after hail. Water had soaked about 3 square metres of underlay. Two roofers took one day to strip the ridge, replace the underlay, rebed new ridge tiles and re-point them, and we left photos of each stage with the owner. We quote repairs like this in writing after an inspection and give a 10-year workmanship warranty."

The prompt that gets you from notes to that paragraph tells the assistant what it may not add:

You are drafting a project page for a roofing company's website.
Use only the facts in JOB NOTES. Do not add prices, guarantees,
certifications, reviews or promises about speed that are not in the notes.
If the structure needs something the notes lack, write [ASK OWNER].
Structure: the problem; what we found; what we did; how long it took;
cost in general terms; what the customer received; our guarantee.
Plain English, under 250 words, no superlatives.

JOB NOTES
Hail last month. Lifted ridge, two-storey house. Underlay wet, about
3 square metres. Two roofers, one day. Stripped ridge, replaced underlay,
rebedded new ridge tiles and re-pointed. Photos of each stage left with
the owner. Written quote after inspection. 10-year workmanship warranty.

In an illustrative run, the first draft followed the structure but slipped in three phrases the notes never contained: "fully licensed and insured", "same-day emergency service" and "at a competitive price". The first may be true, but a page should carry your actual licence and insurance details rather than a slogan; the second is a promise your storm-week capacity can't keep; the third tells a reader nothing. The draft also put [ASK OWNER] in the cost slot, which is the instruction doing its job. Delete the additions, fill the gap in the general terms you would use on the phone ("priced in writing after an inspection"), and the draft is ready for your photos.

Use the same short template for every page: the problem, what you found, what you did, how long it took, what it cost in general terms, what the customer received and what you guarantee. ChatGPT is good at turning your notes into that shape, and poor at inventing the facts. For service-area pages the same rule holds, and writing service-area pages without duplicate content shows how to keep them distinct. An illustrative audit of an agency's 40 town pages that were about 90% identical can show many of them listed as "Crawled, currently not indexed" in Search Console's page indexing report, which is one practical cost of scaled content.

The one-page monthly report to insist on

Whoever does the work, the report should fit on one page and end with money. Ask for the same table every month so movement is visible. This is a filled-in version for the illustrative six-person firm at month three (all figures are made up to show the shape):

MeasureMonth 1Month 2Month 3
Search Console web clicks140190255
Generative AI impressions (Search Console)310480620
Business Profile calls141927
Calls the receptionist tagged "search"91521
Inspections booked from search479
Jobs won from those inspections012
New reviews687
Work doneProfile, 3 service pages2 project pages, 1 emergency page3 project pages

The top rows are leading indicators, and the middle rows are where the money shows up. A report where impressions climb while booked inspections stay flat tells you traffic is not turning into work, so fix the pages or the call handling before paying for more traffic. An agency that cannot produce the tagged-calls row has no way to know whether it is working, and neither do you.

Contract red flags and the clauses to ask for

This is practical guidance, not legal advice: have a lawyer read any contract before you sign.

Red flagClause to ask for
Guaranteed rankings or "guaranteed AI mentions".Leading indicators agreed in writing (profile calls, booked inspections, impressions), reviewed at 90 days.
Agency owns the site, domain, ad accounts or analytics.You are registrant and owner of all of them; the agency holds editor or manager roles.
Business Profile created under the agency's account.You are the primary owner; the agency is a manager, who cannot add or remove users or delete the profile.
Twelve-month minimum with auto-renewal.A three-month initial term, then monthly with 30 days' notice (my suggestion; negotiate).
Vague "SEO services".A written monthly list: pages, posts, review requests, reports, hours.
Link packages.Named sites and how each link was earned; no bought links.
Mass-produced AI pages.A cap on pages, with real job evidence on each and your approval before publishing.
Reports that show rankings only.Calls and booked inspections by source, with Search Console screenshots.
No exit terms.Within 14 days of ending: all logins, editable copies of all content and any tracked numbers.

One more safeguard comes straight from Google: during an audit, give read-only access to Search Console, and widen it only when you have decided to proceed.

A 90-day plan with three checkpoints

Whether you do the work or pay for it, judge it at fixed points. At day 30 the set-up should be finished: profile complete, service pages live, tracking in place and a baseline test sheet saved with this month's call count. At day 60 you should have five new pages, about 20 new reviews and a second test sheet to compare with the first. Day 90 is the decision.

At the decision, diagnose by stage, because each stage has a different cure. If you are not named in the tests, the problem is the profile and the pages. If you are named but the clicks are flat, the problem is how the listing looks: photos, review count and page titles. If clicks rise but calls don't, look at the page itself, the visible phone number and how quickly the phone is answered, which is where a receptionist earns its fee. Only when all three stages work and results are still thin does it make sense to pay for more content or links.

Three roofing firms, three decisions

A one-crew roofer who does the quotes personally, in a market with few strong competitors, should start with the DIY month and nothing else. The cost is hours. Pay a freelancer for a one-off audit if you want a second pair of eyes; Ahrefs' study gives $75 to $100 as the most common hourly rate for local SEO.

A ten-person firm with a sales manager but no one free to write should take an agency on a three-month term with the clause table above, and keep review requests in-house because only the crew can make them genuine. Measure booked inspections from search from the first report onwards.

A storm-season firm should split the work. Keep the profile, reviews and receptionist capture in-house. Use an agency or freelancer for a one-off burst of project and emergency pages before the season, then drop back to the weekly rota. The content side is mapped in a worked storm-season content plan.

Questions roofers ask about SEO and AI search

Should I block AI crawlers on my roofing site?

Blocking OpenAI's OAI-SearchBot keeps your site out of ChatGPT's search answers, though it can still appear as a plain link. GPTBot is the separate crawler for model training. If you want to be found, leave OAI-SearchBot alone; OpenAI says a robots.txt change can take about 24 hours to reach its search results.

Do I need llms.txt or special markup to appear in AI Overviews?

Google's guidance says no. It lists no additional requirements for AI Overviews or AI Mode and says you need no new machine-readable files, AI text files or special markup. Pages must be indexed and eligible to show with a snippet, which is ordinary SEO housekeeping.

How long before roofing SEO shows results?

Nobody can promise a date. Google's hiring advice says to ask an SEO what results to expect and in what timeframe, and an audit should give realistic estimates. Agree leading signals for a 90-day review, such as profile calls and Search Console impressions, instead of waiting for rankings.

Can ChatGPT write all my service and area pages?

It can draft them, but publishing many pages without adding value is what Google's spam policy calls scaled content abuse, and generative AI is named as an example. Use it for first drafts and add your own project details, photos and prices before anything goes live.

Further reads

Sources: Google Search Central pages on hiring an SEO, AI features and spam policies; Google's Business Profile guidelines and user-role help page; Google's June 2026 announcement of Search Generative AI performance reports; Bing Webmaster Tools' AI Performance announcement; OpenAI's crawler documentation and ChatGPT Plus help page; Ahrefs' SEO pricing study (updated August 2024; 439 providers polled); all read 29 October 2026.

Want an honest second opinion on an SEO quote?

On a 1:1 call we'll go through the quote or your DIY plan, pick the three jobs worth doing first, and decide what to keep in-house and what to hand over.

Book a 1:1 call with me