Ultra Prompt

← All articles

How to answer a bad Google review as a contractor

You finished a roofing job in July. The flashing was clean, the crew cleaned up, the customer signed off. Then Monday morning hits and there's a one-star Google review calling the work "shoddy" and claiming you "never showed up." One review. And by the time you've had your coffee, three homeowners in your service area have already read it.

A bad rating can drop your position in Google's local pack and cost you estimate requests before you've had a chance to respond. The reply you post in the next 24 hours matters more than the review itself. Most contractors either fire back defensively, or they post something so vague it might as well be silence. Neither one works.

This guide gives you the exact framework, ready-to-copy response templates for the most common complaints, and the legal guardrails that keep you protected while you do it.


Read it twice before you type

The first read is an emotional read. You'll feel it. That's fine. Don't type anything yet.

The second read is a forensic read. Go sentence by sentence and sort every claim into one of three buckets:

  • Verifiably false (you have a receipt, a time-stamped photo, a signed inspection report)
  • Factually accurate but framed badly (the crew was 40 minutes late on day one, but finished two days early)
  • Subjective ("shoddy work," "unprofessional," "slow") with no specific claim you can disprove

Here's what that annotation looks like in practice:

// First pass – raw review
"The crew was late, the roof leaks, and you never gave us a receipt. Worst contractor ever."

// Second pass – annotated
• "Crew was late"   → factual question (verify time logs from 7/12)
• "Roof leaks"      → subjective / unverified (need inspection report; job was completed 7/20)
• "Never gave receipt" → false (receipt #12345 emailed on 07/15, 9:43 AM)

That annotation is your cheat-sheet. You now know what to confirm, what to gently correct with evidence, and what to leave alone. Most contractors skip this step and end up defending things that didn't need defending, or ignoring things that did.

The two-read rule keeps you from posting something you'll regret in 90 seconds.


What a public reply is really for

It's not for the reviewer. Most one-star reviewers aren't looking for a public back-and-forth on Google. Your reply is for the next ten people who read that review before calling you for an estimate.

Those readers are asking one question: "How does this contractor handle things when they go wrong?" A measured, factual reply answers that question better than a hundred five-star reviews. Every potential customer reading that thread is deciding whether you're the kind of contractor who goes dark when something's wrong, or the kind who responds with records and a clear next step.

Here's the difference in practice:

Before (defensive, dismissive):
We don't know what you're talking about. Call us.
After (factual, forward-looking):
Hi John, we're sorry to hear you felt the job didn't meet expectations. Our crew logged a start time of 8:15 am on 7/12, and we sent a receipt (ID #12345) on 7/15. Let's talk about the leak you mentioned. Please DM us or call 555-1234 and we'll get this sorted quickly.

The "before" reply loses you three future customers. The "after" reply might win you two of them back, because it shows you keep records, you respond, and you're not the kind of contractor who goes dark when something's wrong.

That's what a public reply is actually doing. Keep that goal in front of you every time you open the response box.


Own the true part, correct the false part, keep it short

The structure that works for almost every contractor complaint is the same three moves: acknowledge, correct, invite. In that order. Under 150 words total.

Acknowledge first. Even if the customer is 80% wrong, there's usually something real in there. A miscommunication. A delay you didn't flag soon enough. A subcontractor who left the yard messier than your standard. Find it and name it first. Skipping this and going straight to defense reads as dismissive, even when you're factually right.

Then correct, with evidence. Not with opinion. You don't say "our work is excellent." You say "our inspection report from 7/22 showed zero active leaks." Reviewers can dispute opinions. They can't dispute dated receipts and signed reports.

Then invite offline resolution. One clear ask, one contact method, one timeframe if you can give it.

Here's a base template you can adapt for most situations:

Hi [Customer Name],

Thank you for sharing your experience. We understand you're concerned about [specific issue], and we take that seriously. Our records show [verifiable fact — include receipt number, date, or inspection result] which we're happy to walk you through.

We'd like to make this right. Please call us at [phone number] or email [address] by [day of week] and we'll review everything together.

[Your Name], Owner, [Company Name]

A few things this template does that the vague advice online misses:

  • It doesn't admit fault, it cites evidence. That's a legal distinction that matters.
  • It gives a deadline ("by Friday"), which signals urgency without sounding panicked.
  • It puts your name on it. An owner's name in a reply carries more weight than "The Team at ABC Roofing."

Now the specific situations. Here are templates for the complaints contractors get most often.

Template 1: Quality complaint (vague)

Hi [Name],

We're sorry you're not satisfied with the result. Our crew completed a final walkthrough on [date] and the inspection report showed [result]. We'd genuinely like to understand what's not meeting your expectations.

Please call [phone] or email [address] so we can schedule a no-cost site visit this week.

[Your Name], [Company]

Template 2: Quality complaint (specific — alleged leak)

Hi [Name],

We want to address this directly. Our installation on [date] followed [manufacturer / local code] specs, and our post-job inspection on [date] showed no active leaks. We take warranty claims seriously and want to inspect the issue ourselves.

Please contact us at [phone] with your project ID so we can get on-site within [timeframe].

[Your Name], [Company]

Template 3: Timeline / crew showed up late

Hi [Name],

We hear you on timing — delays are frustrating, and we should have communicated the schedule change sooner. Our crew logs show [actual start time] on [date]. We're sorry that didn't match what was communicated.

If there's anything unresolved from the project, please reach us at [phone]. We want to close this the right way.

[Your Name], [Company]

Template 4: Communication complaint

Hi [Name],

We're sorry you felt out of the loop during the project. Our project notes show we sent [number] updates via [method] between [start date] and [end date], but clearly that wasn't enough contact for this job. That's useful feedback.

If there are outstanding questions about the work itself, please call [phone] and ask for [name]. We'll get you answers.

[Your Name], [Company]

Template 5: Payment / billing dispute

Hi [Name],

We want to clear this up. Invoice #[number] was sent on [date] reflecting [what was billed and why]. The scope change on [date] was documented in writing and signed on [date] — we're happy to resend that paperwork.

Please email [address] with your project ID so we can walk through the numbers together.

[Your Name], [Company]

Template 6: Permit / compliance complaint

Hi [Name],

Permit #[number] for this project was filed with [municipality] on [date] and approved on [date] — documentation is available on request. We follow all local code requirements on every job.

If you have specific concerns about the work, please contact us at [phone] so we can address them directly.

[Your Name], [Company]

Template 7: "Never completed the job"

Hi [Name],

Our records show the scope of work outlined in the contract signed on [date] was completed on [date], with a final walkthrough at [time]. We'd like to understand what you believe was left unfinished.

Please reach us at [phone] or [email] by [day]. We're committed to honoring our contract.

[Your Name], [Company]

Template 8: Fake or competitor review (no record of project)

Hi,

We take every review seriously, but we have no record of a project matching your name, address, or contact details in our system. We'd genuinely like to verify this and address any real concern.

Please contact us at [phone] or [email] with your project details. We've also reported this review to Google for review under their content policies.

[Your Name], [Company]

On the fake review: after you post that reply, flag the review directly in your Google Business Profile using the "Report review" option. Google doesn't always act quickly, and removal isn't guaranteed, but filing the report is worth doing. In the meantime, your calm, documentation-based public reply is doing the real work. Potential customers reading that thread are far more sophisticated than you might think.

A note on legal exposure before you hit "Post"

This matters, and almost no one covers it for contractors specifically.

  • Never admit liability in a public reply. "We're sorry the roof leaked" is different from "We're sorry you experienced a leak — let's investigate." The first is an admission. The second is an offer to examine. Know the difference.
  • Don't discuss dollar amounts or refund figures publicly. Any financial conversation belongs offline, in writing, between you and the customer. Keeping those details out of a public thread protects you if the dispute escalates and ensures nothing is taken out of context.
  • Don't call a reviewer a liar, even if they are lying. Stick to "our records show" and "we have no record of." Let the facts make the case without escalating the tone.
  • Don't share personal information. Don't post the customer's address, phone number, or any detail from their file in a public reply. Ever.
  • Check your contract's dispute resolution clause. Some contracts specify that disputes go to mediation. A public reply that goes into detail could be read as bypassing that clause.

When in doubt: acknowledge, cite your records, move offline. That phrase covers you in almost every situation.

And if you're managing an estimate dispute alongside a bad review, the post on how to follow up on an estimate without sounding pushy covers the communication side of keeping a fraying customer relationship intact.


Take the rest offline

Once your public reply is posted, stop talking on Google. Every additional public comment is another thing that can be screenshot, misread, or used against you.

The goal of moving offline isn't to hide anything. It's to create a space where an actual resolution is possible. You can share documents. You can clarify what the contract said. You can offer something without it becoming a public commitment. None of that happens well in a Google review thread.

Here's how to close out a public reply with an offline handoff:

We've noted your concerns about the warranty timeline. Please email us at support@myroofco.com with your project ID so we can review the paperwork together and schedule a site visit by Friday.

Short. Specific. Gives them a clear next step and a timeframe. That combination matters because it shows you're not stalling.

Once you resolve the issue offline, it's completely appropriate to follow up with: "If you're satisfied with how we handled this, we'd appreciate it if you'd consider updating your review." Don't pressure, don't offer anything in exchange for a review update (Google prohibits it), just ask once. Most people who've had a good resolution are genuinely willing to revise.

If a job went sideways because a change order wasn't clear, that's often where real disputes start. The post on how to write a change order a client will actually sign can help you prevent the next one before it becomes a review problem.


Run it now

The recipe is free. Each link opens the finished prompt with the blanks already named, so you fill in your job and paste the result into the AI you use.

Every letter, bid, and reply for contractors and trades, on one page: Ultra Prompt for contractors and trades.

Ready to level up your prompts?

Ultra Prompt has 1,000+ expert-crafted templates. Stop guessing, start prompting.

Try Ultra Prompt Free
S

Written by Sean

Founder of Ultra Prompt. Building the prompt engineering toolkit I wish existed.