Sample website audit: what you get, and how it turns into a plan
This is what our free 1-page audit looks like, run on a made-up roofing company. Every check, point value and fix below is the same one our audit runs on real sites. Only the business and its numbers are invented.
SAMPLE, fictional. "Ridgeline Roofing & Exteriors, Anytown USA" is not a real business. The web address uses .example, a domain reserved for examples. Every value below was made up to show the format.
The report (SAMPLE)
SAMPLE
Website audit: ridgeline-roofing.example (SAMPLE, fictional)
Score: 25 / 100, scored on the 100 points we could check. Checked 5 pages, rendered at phone size.
Status key: Pass = full points · Partly = half · Missing = 0 · Check by hand = left out of the score.
1. Lead capture (8.5 / 25)
| Check (points) | Status | What we found (SAMPLE) |
|---|---|---|
| Call or quote button visible without scrolling, phone screen (8) | Missing | No call, quote or booking button on the first phone screen |
| Tap-to-call phone link (6) | Pass | 2 tap-to-call links found (footer only) |
| Contact or quote form that can submit (6) | Missing | Form found, but no destination it submits to was found. Delivery still needs a test submission by hand |
| Reply path: says how and when they'll hear back (5) | Partly | No reply time stated; email link present |
2. Basic SEO (12.5 / 25)
| Check (points) | Status | What we found (SAMPLE) |
|---|---|---|
| Page title (3) | Partly | "Home" (4 characters; aim for about 30-65) |
| Meta description (3) | Missing | No meta description |
| One clear main headline, H1 (3) | Pass | 1 H1 on the home page |
| Mobile speed, proxy (4) | Partly | Loaded in 4.8 s, 4.10 MB over 96 requests at phone size. Proxy only, measured from our server, not a phone on 4G |
| Secure connection, HTTPS (3) | Pass | Site loads over HTTPS |
| robots.txt and sitemap (3) | Partly | robots.txt found, sitemap missing |
| Business schema, LocalBusiness or Organization (3) | Missing | No business schema found |
| Name, address, phone consistent on the page (3) | Partly | 2 different phone numbers on the page. Listings elsewhere are checked by hand |
3. AI search (GEO) readiness (4 / 25)
| Check (points) | Status | What we found (SAMPLE) |
|---|---|---|
| AI crawlers allowed in robots.txt (8) | Partly | Blocked: PerplexityBot |
| Structured data AI tools can read (6) | Missing | No structured data found |
| FAQ or answer-style content (6) | Missing | 0 question-style headings |
| llms.txt summary file for AI tools (5) | Missing | No /llms.txt |
4. Automation (0 / 25)
| Check (points) | Status | What we found (SAMPLE) |
|---|---|---|
| Chat or instant-reply widget (12) | Missing | None found on the rendered page |
| Online booking or scheduling (13) | Missing | No booking tool or booking page found |
Score math: (8.5 + 12.5 + 4 + 0) / 100 = 25.
Top 5 fixes, in plain English (ranked by how much they affect leads)
- Put a "Call now" and a "Get a quote" button at the very top of the page, visible on a phone without scrolling. → Covered by: Websites
- Connect the form so every enquiry lands in an inbox and a call list, then send a test. → Covered by: Websites
- Add LocalBusiness schema (name, phone, address or service area, hours) so Google and AI tools read the basics. → Covered by: Local SEO (it also counts toward AI search visibility)
- Add a short FAQ that answers the questions buyers ask (price range, area served, how long it takes). → Covered by: AI search visibility (GEO)
- Add a "book a time" link so people who won't call can still book. → Covered by: Hosting + Care (small edit)
Asked on the call (an outside check can't see these)
- Do missed calls get an automatic reply? We can't test that from outside.
- Does the form actually deliver? Only a test submission proves it.
- Do the Business Profile and directory listings use the same name and phone as the site? We check those by hand.
The report never claims lost revenue or lost leads. Every number in it was measured on the run.
How the audit becomes a custom plan (SAMPLE)
On the call, Nathan goes over the report with the owner and asks what matters to him. In this made-up example the owner says:
- He wants more storm-repair and roof-replacement calls in Anytown and two nearby towns.
- Most of his work comes from referrals, and people "look him up" before they call.
- He answers his own phone and doesn't want a chat widget.
So the plan keeps only the findings that serve those goals.
| Step | What we'd do | Program | From finding |
|---|---|---|---|
| 1 | Rebuild the top of the home page: call and quote buttons on the first phone screen, one phone number everywhere, a title and description that say "roofing in Anytown" | Websites | Fix 1, NAP, title, meta |
| 2 | Connect and test the quote form, and say when he'll call back | Websites | Fix 2, reply path |
| 3 | Business schema, sitemap, Business Profile check, service-area pages for the two towns with real job photos from each | Local SEO | Fix 3, sitemap, call item 3 |
| 4 | Storm-repair FAQ, unblock PerplexityBot, llms.txt, then monthly AI-answer checks on 10 real questions | AI search visibility (GEO) | Fix 4, crawlers, llms.txt |
| 5 | After launch, watch where visitors leave and send a monthly Leak Report | Visitor Insights | Owner goal 2 |
| 6 | Hosting, backups, uptime checks, small edits such as adding a booking link later if he wants one | Hosting + Care | Fix 5 |
| Not included | Chat widget | n/a | The owner answers his own phone |
Then the quote
Every business is different. Nathan gives you a straight quote after a short call. There are no packages: the quote covers only the steps you pick from your own audit.
More: How we quote · Free website audit · Guides
Get started today
Every business is different. Nathan gives you a straight quote after a short call.