Agent-Run AgencyBuild log · Alex Rowan · Guides

Guide · Alex Rowan · 11 Oct 2026

How to verify local SEO audits before sending them

Build log

If you send local businesses a free SEO audit as a way to start a conversation, every audit makes claims about someone else's website. Some of those claims will be out of date by the time the email goes. This guide is the check I now run before every batch, and the numbers that made me add it. No replies or clients are recorded yet, so this is about accuracy, not results.

Why audits go stale

My agents audited 154 small-business websites across 21 cities and turned the ones with real problems into 78 one-page mini-audits. Before the first send, a separate agent re-checked 30 of them against the live sites. 10 of the 30 cited a problem the business had already fixed. Seven were "no reviews or testimonials on the homepage" when reviews had since been added. Two were a heavy homepage that had been slimmed down. One was schema markup that was now in place. Two of the 30 had no confirmed issue at all.

The audits weren't wrong when they were made. The sites changed. Owners add reviews, change themes, compress images and install plugins all the time. Any gap between audit and send is a window for a claim to go stale.

Step 1: make claims you can check

Verification only works on specific claims. "Your SEO needs work" can't be confirmed or denied. These can:

  • The homepage has several H1 tags
  • No LocalBusiness schema in the page source
  • No reviews or testimonials visible on the homepage
  • The homepage is heavy enough to load slowly on a phone
  • No page for a service the business lists in its own menu

Each audit names two of these at most, plus one fix the owner could hand to whoever runs the site. Fewer claims means fewer chances to be wrong, and each one gets proper attention.

Step 2: separate the checker from the writer

Use a different agent, in a fresh session, to do the check. The agent that wrote the audit looked once and wrote down what it saw. Asking it to double-check mostly gets agreement. A checker with a narrow brief catches more. Mine says: open each live homepage and, for every cited issue, answer "confirmed" or "not confirmed" and quote the evidence. Don't rewrite anything. Don't add new issues.

Step 3: run it right before the batch

Not at audit time, not the day before. Right before the batch is approved. My routine is triggered by any "send batch" item in the queue, so it can't be skipped by accident.

  1. Re-fetch every prospect's live homepage.
  2. For each cited issue: confirmed, keep it. Not confirmed, remove it and regenerate the PDF.
  3. No confirmed issues left: skip the prospect.
  4. Check the suppression list and drop any match on address or domain.
  5. Check each draft for sender identity, postal address, opt-out, an honest subject and at most one link.
  6. Write a short report: checked, passed, regenerated, skipped.
  7. Mark the batch "verified, awaiting owner approval".

Step 4: ask for evidence, not verdicts

"Homepage now shows a reviews section with five entries" tells you something. "Resolved" doesn't. With quoted evidence, reading the report before approval takes a couple of minutes, and you can spot a checker that's being lazy. When something is borderline, the rule is simple: no evidence, no claim.

Step 5: regenerate, don't patch

When an issue is dropped, regenerate the PDF from the corrected data rather than editing the old file by hand. Hand edits leave traces: a summary line that still mentions the old issue, a fix that no longer applies. In my first re-check, some PDFs still mentioned a dropped issue in a second place. Regenerating from data fixes every mention at once.

Step 6: skip prospects with nothing left

It's tempting to keep a prospect when one claim is dropped and nothing else is confirmed, and to send a softer, vaguer note instead. Don't. The whole value of the email is the specific, true observation. Without one, the email is just a pitch, and a pitch from a stranger is what owners delete. Two of my 30 were skipped for exactly this reason.

Step 7: a person reads and sends

After the check, I read the batch and send it myself. The first 10 went out by hand after the scripted send timed out on day one. 18 more are drafted and will go through the same check before they're sent.

What to keep in the send log

For every email sent, record the date, the prospect, the template version and the verifier report it passed. When a reply comes in, you'll know exactly what that owner was told and what evidence backed it. If someone says "that's not true", you can check in seconds whether the site changed after you sent, or whether the check missed something. Either way you learn something you can fix in the routine.

Common mistakes

  • Checking a sample and assuming the rest are fine. My 30 were a sample before the first batch. The routine now checks every prospect in every batch.
  • Trusting cached pages. Make sure the checker fetches the live site, not a stored copy from the audit run.
  • Letting the checker soften claims. Its job is confirm or drop. Rewording belongs to the person approving the batch.
  • Skipping the check on small batches. Ten emails is exactly when one false claim stands out most.

A checklist to copy

  1. Two specific, checkable claims per audit.
  2. A separate checker agent in a fresh session.
  3. Run it right before each batch, every batch.
  4. Evidence quoted for every claim kept.
  5. Regenerate PDFs from data.
  6. Skip prospects with no confirmed issue.
  7. A person reads and sends.

It takes a few minutes per batch and needs no paid tools. It's the difference between an email that helps an owner and one that tells them something untrue about their own business.

Free

Get the AI Agent Team Playbook

The five agent briefs, the approval gates and the verifier routine from this build, in a free 9-page PDF. No promises of rankings or income.

Get the free playbook