EXAMPLE REPORT — NOT A REAL CLIENT AUDIT

Business Diagnostic Report

Example Plumbing Co · http://example.com
Audit date: July 30, 2026 · Auditor: BOOJEE Estate

Audit Scope & Limitations

Diagnostic Score

40.0% pass rate (16 of 40 determined checks). 24 failure(s), 6 unknown, 1 N/A. 40 of 47 checks yielded a determined verdict.

PassFailUnknownN/A DeterminedTotal ChecksPass Rate
16 24 6 1 40 47 40.0% (16 of 40)

Pass rate is computed over determined checks only. Unknown verdicts are not counted as passes or failures — they are items we could not verify, listed separately below.

Intake Information

business_nameExample Plumbing Co
primary_urlhttp://example.com
citySpringfield
primary_serviceResidential and commercial plumbing
years_in_business11
monthly_revenue_range$15,000–$40,000
crm_in_useNo — we use a paper job book
missed_call_text_backNo
average_lead_response_timeUsually same day but sometimes next day
reminder_processWe call clients manually the day before
review_request_processWe ask in person but do not follow up
proposal_processWe write quotes by hand on a form

Website Performance & UX

12 checks
HTTPS with valid certificate Fail Sev 5 — Critical Proof
Check: web-01
Evidence: HTTP GET to http://example.com returned status 200 over plain HTTP. HTTPS (https://example.com) returned a connection error — no TLS certificate is installed.
Recommended fix: Provision a free Let's Encrypt certificate via Certbot and configure the web server to redirect all HTTP traffic to HTTPS.
HTTP-to-HTTPS redirect in place Fail Sev 4 — High Proof
Check: web-02
Evidence: HTTP GET to http://example.com with allow_redirects=False returned 200 — no redirect to HTTPS is in place.
Recommended fix: Add a server-level 301 redirect rule that sends all port-80 traffic to port-443.
Page load time under 4 seconds on a simulated 3G connection Unknown Sev 4 — High
Check: web-03
Why this check is pending (our follow-up): The site does not have HTTPS, which prevented load-time testing via PageSpeed Insights API (requires HTTPS). We will re-test once a certificate is installed.
Core Web Vitals: LCP, CLS, FID/INP not in 'Poor' band Unknown Sev 3 — Medium
Check: web-04
Why this check is pending (our follow-up): PageSpeed Insights API requires an HTTPS URL. Core Web Vitals data cannot be retrieved until the site has a valid TLS certificate.
Mobile viewport renders without horizontal scroll Pass Sev 4 — High Proof
Check: web-05
Evidence: Screenshot taken at 390px viewport width via headless browser. No horizontal scrollbar visible; content reflows correctly into a single column at mobile width.
Primary CTA button visible above the fold on mobile Fail Sev 4 — High Proof
Check: web-06
Evidence: Screenshot at 390px x 844px shows a hero image and business name but no CTA button or link in the visible viewport. The first actionable element (a phone number) appears only after scrolling approximately 900px.
Recommended fix: Move the primary CTA button above the fold on mobile by restructuring the hero section layout.
Navigation menu accessible on mobile Pass Sev 3 — Medium Proof
Check: web-07
Evidence: A hamburger menu icon is visible in the top-right corner at 390px width. Tapping it revealed navigation links to Home, Services, and Contact.
No broken internal links (4xx responses) Pass Sev 3 — Medium Proof
Check: web-08
Evidence: 22 unique internal links found on homepage. HTTP HEAD requests returned all 2xx status codes. No 404s detected.
Favicon present Pass Sev 1 — Minor Proof
Check: web-09
Evidence: HTML head contains <link rel='icon' href='/favicon.ico'>. HTTP HEAD of /favicon.ico returned 200.
Contact information visible in the site footer or header Pass Sev 3 — Medium Proof
Check: web-10
Evidence: Footer contains phone number (555) 867-5309 and email info@example.com visible in static HTML.
SSL/TLS certificate has more than 30 days before expiry Unknown Sev 4 — High
Check: web-11
Why this check is pending (our follow-up): No TLS certificate is installed on this site, so certificate expiry cannot be measured. This check will be re-run after the certificate is provisioned.
Page title and meta description present and non-empty Fail Sev 2 — Low Proof
Check: web-12
Evidence: The <title> tag reads 'Home' — 4 characters, no business name or description. The <meta name='description'> tag is absent from the HTML entirely.
Recommended fix: Write a descriptive <title> (50–60 characters) and <meta description> (120–155 characters) for the homepage.

Lead Capture & Flow

10 checks
Contact form or lead-capture form present on the site Unknown Sev 5 — Critical
Check: lead-01
Why this check is pending (our follow-up): The /contact/ page appears to load its form via JavaScript (the static HTML shows only an empty <div id='form-container'>). We do not execute JavaScript in static audits. We are following up with a browser-based check to confirm whether a form is present.
Contact form submission produces a visible confirmation Unknown Sev 5 — Critical
Check: lead-02
Why this check is pending (our follow-up): We could not determine whether the contact form produces a confirmation because the form itself could not be located in the static HTML (see lead-01). We will test submission once the form check is resolved.
Phone number is click-to-call on mobile Fail Sev 4 — High Proof
Check: lead-03
Evidence: Phone number '(555) 867-5309' appears as plain text in the footer. It is not wrapped in an <a href='tel:...'> link. Mobile visitors cannot tap to call.
Recommended fix: Wrap all phone numbers in <a href='tel:+1XXXXXXXXXX'> tags so mobile users can tap to call without manually dialing.
At least one email address is click-to-email Pass Sev 2 — Low Proof
Check: lead-04
Evidence: Email address info@example.com in the footer is wrapped in <a href='mailto:info@example.com'>.
A scheduling or booking link is present Fail Sev 3 — Medium Proof
Check: lead-05
Evidence: No scheduling or booking link found in the static HTML of the homepage or navigation. No links to Calendly, Acuity, TidyCal, or any /book/ /schedule/ /appointment/ path.
Recommended fix: Add a booking link in the site navigation and on the contact page, linked to a free scheduling tool like Calendly or TidyCal.
Lead form asks for name and contact method only (not excessive fields) Unknown Sev 3 — Medium
Check: lead-06
Why this check is pending (our follow-up): The contact form appears to be JavaScript-rendered. We could not count required fields from the static HTML. Pending browser-based form inspection.
No-JavaScript lead path exists (email or phone reachable without JS) Pass Sev 2 — Low Proof
Check: lead-07
Evidence: Footer contains a visible phone number and a mailto: link in static HTML, both reachable without JavaScript.
Response-time promise stated on site Fail Sev 2 — Low Proof
Check: lead-08
Evidence: Static HTML of homepage and /contact/ page searched for response-time language ('respond within', 'reply within', 'available', 'hours', 'business days'). No such language found.
Recommended fix: Add a one-line response-time promise near the contact form or phone number to reduce visitor uncertainty and increase submission rates.
Live chat widget or chat CTA present Fail Sev 2 — Low Proof
Check: lead-09
Evidence: Static HTML and <script> src attributes scanned for known chat widget providers (Intercom, Drift, Tidio, Crisp, LiveChat, HubSpot, tawk.to) and generic chat button patterns. None found.
Recommended fix: Install a free live-chat widget (e.g. Tidio or Crisp) to capture visitors who prefer chat over phone or email.
Email opt-in or newsletter capture present Fail Sev 2 — Low Proof
Check: lead-10
Evidence: No email capture form, input type='email', or newsletter/subscribe language found in the static HTML of the homepage.
Recommended fix: Add an email opt-in form to the footer or homepage offering a lead magnet or update subscription to begin building an owned list.

Messaging Clarity

9 checks
Homepage headline states what the business does Fail Sev 5 — Critical Proof
Check: message-01
Evidence: The <h1> element reads 'Welcome to Example Plumbing Co'. A stranger reading only this headline cannot determine what service is offered, the location, or the intended customer.
Recommended fix: Rewrite the homepage headline to follow the formula: [Who you help] + [What you do] + [Key outcome], e.g. 'HVAC Repair for Dallas Homeowners — Same-Day Service.'
Value proposition visible without scrolling on desktop Fail Sev 4 — High Proof
Check: message-02
Evidence: Screenshot at 1440px x 768px shows the hero headline and a logo only. No subheadline or value proposition statement is visible above the fold. The first descriptive text is a paragraph beginning at approximately 820px scroll depth.
Recommended fix: Add or move a one-sentence value proposition directly beneath the headline so desktop visitors see the offer immediately on arrival.
Services or products are listed explicitly Pass Sev 4 — High Proof
Check: message-03
Evidence: A 'Services' section on the homepage lists: Drain Cleaning, Water Heater Installation, Leak Detection, Pipe Repair, and Bathroom Fixture Installation — five specific services named.
Pricing or starting price is stated Fail Sev 3 — Medium Proof
Check: message-04
Evidence: Homepage and /services/ page static HTML scanned for currency patterns ($NNN, 'starting at', 'from $', 'packages from'). No pricing information found.
Recommended fix: Publish at least a starting price or price range for your primary service to reduce the friction of an 'I wonder if I can afford this' exit.
Social proof (reviews, testimonials, or client logos) visible on homepage Pass Sev 4 — High Proof
Check: message-05
Evidence: Homepage contains a testimonials section with three customer quotes attributed to named clients. Quotes are in static HTML.
Review count or average rating is stated with a verifiable source N/A Sev 3 — Medium
Check: message-06
Not applicable: No star rating or review count is displayed on the site, so there is no claim to verify. This check does not apply.
About or team page indicates real humans are behind the business Pass Sev 3 — Medium Proof
Check: message-07
Evidence: An 'About' page linked from the navigation contains the owner's name ('James Doe, Owner') and a three-sentence bio.
Brand name and tagline are consistent across homepage Pass Sev 2 — Low Proof
Check: message-08
Evidence: <title> reads 'Home | Example Plumbing Co'. Logo alt text is 'Example Plumbing Co'. Footer reads 'Example Plumbing Co'. All three match.
No spelling or grammar errors in headline or hero copy Pass Sev 2 — Low Strong
Check: message-09
Evidence: <h1> text: 'Welcome to Example Plumbing Co'. First 300 characters of hero paragraph reviewed. No spelling or grammar errors detected.

Local SEO Signals

8 checks
Google Business Profile exists and is claimed Pass Sev 5 — Critical Client-reported
Check: localseo-01
Evidence: Client confirmed in intake form that Google Business Profile exists and is claimed: 'Yes, we set it up about two years ago.'
Google Business Profile category is set correctly Pass Sev 3 — Medium Client-reported
Check: localseo-02
Evidence: Client reported in intake form that the GBP primary category is set to 'Plumber'.
NAP (Name, Address, Phone) consistent between site and GBP Fail Sev 4 — High Client-reported
Check: localseo-03
Evidence: Business name on homepage is 'Example Plumbing Co'. Phone on site is '(555) 867-5309'. Client reported the GBP listing shows 'Example Plumbing' (abbreviated) and phone '555-867-5309' (different formatting). Address on site is '123 Main St' vs GBP showing '123 Main Street'. Two NAP discrepancies found.
Recommended fix: Align the business name, address, and phone number to a single canonical format across the website, GBP, and all directory listings.
LocalBusiness schema markup present on homepage Fail Sev 3 — Medium Proof
Check: localseo-04
Evidence: Static HTML of homepage parsed for <script type='application/ld+json'> blocks. No JSON-LD found. No microdata @type attributes found. LocalBusiness schema is absent.
Recommended fix: Add a LocalBusiness JSON-LD schema block to the homepage <head> including name, address, telephone, url, and openingHours.
Sitemap.xml present and accessible Fail Sev 2 — Low Proof
Check: localseo-05
Evidence: HTTP GET to http://example.com/sitemap.xml returned 404.
Recommended fix: Generate and publish a sitemap.xml using a sitemap generator or your CMS's built-in tool, then submit it to Google Search Console.
Robots.txt present and not blocking all crawlers Pass Sev 3 — Medium Proof
Check: localseo-06
Evidence: HTTP GET to http://example.com/robots.txt returned 200. File contains 'User-agent: *' with 'Disallow: /admin/' only. Major crawlers are allowed.
City or service area is named on the homepage Pass Sev 4 — High Proof
Check: localseo-07
Evidence: City name 'Springfield' (from intake form) found in static HTML of homepage in the footer address: '123 Main St, Springfield'.
Meta description contains a keyword and location signal Fail Sev 2 — Low Proof
Check: localseo-08
Evidence: Meta description tag is absent from the homepage (confirmed under web-12). This check therefore fails: no meta description means no location signal in the description.
Recommended fix: Rewrite the meta description to include the primary service and city, e.g. 'Austin HVAC repair and installation — same-day service. Call for a free estimate.'

AI & Tech Stack Gaps

8 checks
Missed-call text-back is not in place Fail Sev 5 — Critical Client-reported
Check: stack-01
Evidence: Client confirmed in intake form: 'No, we do not have missed-call text-back. Callers who miss us have to call back themselves.'
Recommended fix: Set up a missed-call text-back system (e.g. BOOJEE AI Front Desk, Missed Call Text Back by Highlevel) to respond to every missed call within 60 seconds.
Lead inquiry response time exceeds one hour Fail Sev 5 — Critical Client-reported
Check: stack-02
Evidence: Client reported average lead response time as 'usually same day but sometimes next day' — this exceeds the one-hour threshold.
Recommended fix: Implement an automated email or SMS acknowledgment that fires within 60 seconds of form submission, followed by a personal follow-up within one hour.
No CRM or contact tracking system is in use Fail Sev 4 — High Client-reported
Check: stack-03
Evidence: Client reported in intake form: 'No — we use a paper job book.'
Recommended fix: Adopt a free or low-cost CRM (HubSpot Free, Zoho CRM Free, or Notion CRM template) to track every lead from first contact to close.
Appointment reminders are sent manually or not at all Fail Sev 4 — High Client-reported
Check: stack-04
Evidence: Client reported reminder process as 'We call clients manually the day before'. Reminders are sent by hand, not automated.
Recommended fix: Connect the booking tool to an automated reminder sequence (email + SMS 24h and 1h before) using a tool like Calendly, Acuity, or a CRM workflow.
No review-request automation after service delivery Fail Sev 3 — Medium Client-reported
Check: stack-05
Evidence: Client reported: 'We ask in person but do not follow up.' No automated review-request process is in place.
Recommended fix: Set up a post-service SMS or email sequence that sends a personalized review-request link 24 hours after job completion.
Website analytics are not installed or not checked Fail Sev 3 — Medium Proof
Check: stack-06
Evidence: Homepage HTML scanned for analytics script patterns (gtag.js, analytics.js, plausible.io, fathom, matomo, clarity.ms). None found. No analytics is installed.
Recommended fix: Install Google Analytics 4 (free) or Plausible Analytics and set up a weekly summary email so site performance is reviewed regularly.
No online payment or deposit option exists Fail Sev 3 — Medium Proof
Check: stack-07
Evidence: Homepage and linked pages scanned for payment platform patterns (Stripe, PayPal, Square, Venmo business, Zelle QR, invoice links). None found. No online payment option exists.
Recommended fix: Add an online payment link using Stripe Payment Links or Square (both free to set up) so clients can pay deposits or invoices without a phone call.
Proposal or quote process is fully manual with no template Fail Sev 2 — Low Client-reported
Check: stack-08
Evidence: Client reported proposal process as 'We write quotes by hand on a form'. No template or digital tool is in use.
Recommended fix: Create a reusable proposal template in a tool like PandaDoc (free tier) or a Google Docs template so proposals can be sent in under 10 minutes.

Our Follow-Up Items (6)

The 6 check(s) below returned an unknown verdict. This means we could not determine the answer — not that anything is wrong. These are items we need to chase down; they are not action items for you. We will contact you separately with findings on each one.
Contact form or lead-capture form present on the site Unknown Sev 5 — Critical
Check: lead-01
Why we could not determine this (our follow-up): The /contact/ page appears to load its form via JavaScript (the static HTML shows only an empty <div id='form-container'>). We do not execute JavaScript in static audits. We are following up with a browser-based check to confirm whether a form is present.
Contact form submission produces a visible confirmation Unknown Sev 5 — Critical
Check: lead-02
Why we could not determine this (our follow-up): We could not determine whether the contact form produces a confirmation because the form itself could not be located in the static HTML (see lead-01). We will test submission once the form check is resolved.
Page load time under 4 seconds on a simulated 3G connection Unknown Sev 4 — High
Check: web-03
Why we could not determine this (our follow-up): The site does not have HTTPS, which prevented load-time testing via PageSpeed Insights API (requires HTTPS). We will re-test once a certificate is installed.
SSL/TLS certificate has more than 30 days before expiry Unknown Sev 4 — High
Check: web-11
Why we could not determine this (our follow-up): No TLS certificate is installed on this site, so certificate expiry cannot be measured. This check will be re-run after the certificate is provisioned.
Core Web Vitals: LCP, CLS, FID/INP not in 'Poor' band Unknown Sev 3 — Medium
Check: web-04
Why we could not determine this (our follow-up): PageSpeed Insights API requires an HTTPS URL. Core Web Vitals data cannot be retrieved until the site has a valid TLS certificate.
Lead form asks for name and contact method only (not excessive fields) Unknown Sev 3 — Medium
Check: lead-06
Why we could not determine this (our follow-up): The contact form appears to be JavaScript-rendered. We could not count required fields from the static HTML. Pending browser-based form inspection.

90-Day Action Plan

This plan covers the 24 failure(s) found in this audit, ranked by severity. Each item is derived directly from a failed check — no padding, no generic advice. If the list is short, that reflects the actual findings.

1 HTTPS with valid certificate Sev 5 — Critical Days 1–30 (Immediate)
Provision a free Let's Encrypt certificate via Certbot and configure the web server to redirect all HTTP traffic to HTTPS.
2 Homepage headline states what the business does Sev 5 — Critical Days 1–30 (Immediate)
Rewrite the homepage headline to follow the formula: [Who you help] + [What you do] + [Key outcome], e.g. 'HVAC Repair for Dallas Homeowners — Same-Day Service.'
3 Missed-call text-back is not in place Sev 5 — Critical Days 1–30 (Immediate)
Set up a missed-call text-back system (e.g. BOOJEE AI Front Desk, Missed Call Text Back by Highlevel) to respond to every missed call within 60 seconds.
4 Lead inquiry response time exceeds one hour Sev 5 — Critical Days 1–30 (Immediate)
Implement an automated email or SMS acknowledgment that fires within 60 seconds of form submission, followed by a personal follow-up within one hour.
5 HTTP-to-HTTPS redirect in place Sev 4 — High Days 1–30 (Immediate)
Add a server-level 301 redirect rule that sends all port-80 traffic to port-443.
6 Primary CTA button visible above the fold on mobile Sev 4 — High Days 1–30 (Immediate)
Move the primary CTA button above the fold on mobile by restructuring the hero section layout.
7 Phone number is click-to-call on mobile Sev 4 — High Days 1–30 (Immediate)
Wrap all phone numbers in <a href='tel:+1XXXXXXXXXX'> tags so mobile users can tap to call without manually dialing.
8 Value proposition visible without scrolling on desktop Sev 4 — High Days 1–30 (Immediate)
Add or move a one-sentence value proposition directly beneath the headline so desktop visitors see the offer immediately on arrival.
9 NAP (Name, Address, Phone) consistent between site and GBP Sev 4 — High Days 1–30 (Immediate)
Align the business name, address, and phone number to a single canonical format across the website, GBP, and all directory listings.
10 No CRM or contact tracking system is in use Sev 4 — High Days 1–30 (Immediate)
Adopt a free or low-cost CRM (HubSpot Free, Zoho CRM Free, or Notion CRM template) to track every lead from first contact to close.
11 Appointment reminders are sent manually or not at all Sev 4 — High Days 1–30 (Immediate)
Connect the booking tool to an automated reminder sequence (email + SMS 24h and 1h before) using a tool like Calendly, Acuity, or a CRM workflow.
12 A scheduling or booking link is present Sev 3 — Medium Days 31–60
Add a booking link in the site navigation and on the contact page, linked to a free scheduling tool like Calendly or TidyCal.
13 Pricing or starting price is stated Sev 3 — Medium Days 31–60
Publish at least a starting price or price range for your primary service to reduce the friction of an 'I wonder if I can afford this' exit.
14 LocalBusiness schema markup present on homepage Sev 3 — Medium Days 31–60
Add a LocalBusiness JSON-LD schema block to the homepage <head> including name, address, telephone, url, and openingHours.
15 No review-request automation after service delivery Sev 3 — Medium Days 31–60
Set up a post-service SMS or email sequence that sends a personalized review-request link 24 hours after job completion.
16 Website analytics are not installed or not checked Sev 3 — Medium Days 31–60
Install Google Analytics 4 (free) or Plausible Analytics and set up a weekly summary email so site performance is reviewed regularly.
17 No online payment or deposit option exists Sev 3 — Medium Days 31–60
Add an online payment link using Stripe Payment Links or Square (both free to set up) so clients can pay deposits or invoices without a phone call.
18 Page title and meta description present and non-empty Sev 2 — Low Days 61–90
Write a descriptive <title> (50–60 characters) and <meta description> (120–155 characters) for the homepage.
19 Response-time promise stated on site Sev 2 — Low Days 61–90
Add a one-line response-time promise near the contact form or phone number to reduce visitor uncertainty and increase submission rates.
20 Live chat widget or chat CTA present Sev 2 — Low Days 61–90
Install a free live-chat widget (e.g. Tidio or Crisp) to capture visitors who prefer chat over phone or email.
21 Email opt-in or newsletter capture present Sev 2 — Low Days 61–90
Add an email opt-in form to the footer or homepage offering a lead magnet or update subscription to begin building an owned list.
22 Sitemap.xml present and accessible Sev 2 — Low Days 61–90
Generate and publish a sitemap.xml using a sitemap generator or your CMS's built-in tool, then submit it to Google Search Console.
23 Meta description contains a keyword and location signal Sev 2 — Low Days 61–90
Rewrite the meta description to include the primary service and city, e.g. 'Austin HVAC repair and installation — same-day service. Call for a free estimate.'
24 Proposal or quote process is fully manual with no template Sev 2 — Low Days 61–90
Create a reusable proposal template in a tool like PandaDoc (free tier) or a Google Docs template so proposals can be sent in under 10 minutes.