Phil Kurth

Sample SEO Audit Report

This sample shows the full depth of the SEO & AI Visibility Audit, including the 100-point scoring breakdown, keyword analysis, search intent mapping, and prioritised action plan. Every audit I deliver follows this same format.

Scores and structure are from a real audit. Query and page details have been replaced with fictional examples for demonstration.

Wolf Digital

SEO & AI Visibility Report

Sample Report

April 2026

This sample uses scores and structure from a real audit, with search queries, page names, and specific details changed for demonstration. Your report will contain your actual search queries, pages, and specific recommendations.

Key Metrics (28-day period)

Organic Sessions

144

+11.6% vs March (129)

Search Impressions

22,098

+7.7% vs March (20,526)

Organic Clicks

110

-8.3% vs March (120)

Avg Position

7.6

+1.2 places vs March (8.8)

Click-Through Rate

0.50%

-0.08pp vs March (0.58%)

Bounce Rate

52.8%

+5.5pp vs March (47.3%)

Audit Score

81/100

+5 pts vs March (76)

Striking Distance

95

Queries at positions 11-20

The headline story: Rankings are improving and impressions are growing, but clicks are falling. The site is becoming more visible in search but less effective at earning clicks. This is a title tag and meta description problem, not a rankings problem.

81 /100

Homepage Audit Score

This score measures how well your homepage performs for traditional search engines, AI answer engines (like ChatGPT and Perplexity), and overall discoverability. Up 5 points from last month's 76.

Technical SEO 21/25
Structured Data 24/25
AI Citability 12/20
E-E-A-T Signals 9/15
AI Crawler Access 15/15

Detailed Findings by Category

Technical SEO (21/25)

  • Title tag is excellent - 46 characters with geo-targeting and primary keyword. Well-optimised for local search.
  • Meta description too long (212 chars) - Google truncates at ~160 characters. Your description is being cut off in search results.
  • Perfect heading structure - Single H1 with local geo-targeting, clean H2/H3 hierarchy.
  • Missing og:image - Social shares on LinkedIn and Facebook show no preview image.
  • 100% image alt text coverage - All 64 images have descriptive alt text. 33 internal links.

Structured Data (24/25)

  • 6 JSON-LD blocks - WebSite, Organization, Person, ProfessionalService, WebPage, and FAQPage. Excellent breadth.
  • ProfessionalService schema - 15 properties including priceRange, areaServed, serviceType, contactPoint. The ideal type for a service business.
  • FAQPage schema - Enables rich FAQ snippets in Google results.
  • Missing review/rating data - Adding aggregateRating to ProfessionalService could enable star ratings in search results.

AI Citability (12/20)

Measures how likely AI tools like ChatGPT, Perplexity, and Google's AI Overviews are to reference your site.

  • FAQ section is well-structured - Clear question/answer pairs that AI can extract directly.
  • Process descriptions are too thin - Single sentences per step. 2-3 sentences with specifics would be more citable.
  • Limited factual density - Has some pricing info but lacks project counts, performance metrics, or technology specifics.
  • Homepage reads as a brochure - No case study results or technical depth. Blog posts exist but the homepage doesn't leverage them for topical authority.

E-E-A-T Signals (9/15)

  • Strong author identity - Business owner clearly identified with Person schema, photo, social profiles, and About page.
  • Blog section adds freshness - "Latest from the blog" with 2026 content, but no explicit dates visible on the homepage.
  • External links are commercial only - Links to client sites but no editorial or industry sources.
  • Good transparency - About page, contact form, and business schemas all present.

AI Crawler Access (15/15) - Perfect Score

  • 8 AI crawlers explicitly allowed - GPTBot, Anthropic, Claude-Web, PerplexityBot, ChatGPT-User, Google-Extended, CCBot, Bytespider.
  • Comprehensive llms.txt - 13KB file following the specification. Helps AI engines understand the site.
  • Static HTML via Astro - All content server-rendered. No JavaScript needed. Every crawler can read everything.
  • XML sitemap in robots.txt - Properly referenced and accessible.

3 Wins This Month

Impressions up 7.7%, positions improving

Average position improved from 8.8 to 7.6, and impressions grew from 20,526 to 22,098. More queries are entering page 1 territory. The local geo-targeting strategy is generating over 440 impressions from location-based searches.

Organic sessions up 11.6%

GA4 shows 144 organic sessions vs 129 last month. Homepage specifically has 29 sessions with only 24% bounce rate, meaning visitors are engaging with the content.

Audit score: 76 to 81 (C to B grade)

The progression from 55 (old platform) to 81 (optimised rebuild) shows consistent improvement. Structured Data at 24/25 and AI Crawler Access at a perfect 15/15 are best-in-class.

! 3 Problems to Fix

Site-wide CTR crisis: 0.50%

CTR (click-through rate) declined from 0.58% to 0.50% despite better rankings. One blog post alone had over 6,000 impressions at position 6 but only 3 clicks. Title tags and meta descriptions are not convincing people to click.

Local queries: 440 impressions, 0 clicks

Six location-based service query variants have page 1 positions (avg 7.5) and zero clicks. These are the highest-value commercial queries on the site. Google is showing a listing that people don't want to click.

Bounce rate up from 47% to 53%

Some of this is expected for technical blog content (visitors find their answer and leave), but worth monitoring. Homepage bounce rate is healthy at 24%.

Priority Action

Rewrite title tags and meta descriptions on the top 5 pages

These 5 pages account for 13,917 impressions and just 16 clicks (0.11% CTR). At even a conservative 3% CTR, that would be 417 clicks per month: a 26x improvement from a few hours of work.

Page Impressions Clicks CTR
Technical Blog Post #16,52230.05%
Technical Blog Post #22,23850.22%
How-To Guide #11,18830.25%
Technical Blog Post #387040.46%
Technical Blog Post #4679111.62%

Search Intent & Buyer Journey

Every search query reflects where the person is in their buying journey. Understanding this helps prioritise which content to create or improve.

Informational

~410

queries

~2,400 impressions

Commercial

~55

queries

~650 impressions

Transactional

~20

queries

~410 impressions

Navigational

~10

queries

~61 impressions

Buyer Journey Stages

Stage 1: Unaware

~415 queries

People searching for general knowledge. Informational blog content.

Stage 2: Problem-Aware

~30 queries

People researching solutions to a problem they've identified.

Stage 3: Solution-Aware

~35 queries

Searching for specific service types. Comparing options.

Stage 4: Ready to Hire

~15 queries

"[service] [location]", "affordable [service] [location]". Highest value.

Position Distribution

Where your pages appear in Google search results. Lower positions are better. "Striking distance" (positions 11-20) means you're close to page 1.

Position Bucket Queries Impressions Clicks CTR
Page 1 Top (1-3)11430710.33%
Page 1 (4-10)1942,17820.09%
Striking Distance (11-20)9569310.14%
Potential (21-50)6125151.99%
Long Tail (50+)319200%

Warning: CTR across all position buckets is far below industry benchmarks. Position 1-3 typically sees 25-35% CTR; yours is 0.33%. This confirms the site-wide title/description problem.

Low-CTR Query Analysis

These queries have strong positions but almost no clicks. The "Diagnosis" column shows whether this is a title/description problem or a position problem.

Query Impressions Position Diagnosis
plumber melbourne1147.5Title/description mismatch
plumbing services melbourne949.5Title/description mismatch
plumbing company melbourne887.0Title/description mismatch
emergency plumber near me8717.6Needs page 1 position
how to fix a leaking tap796.4Title doesn't match query
melbourne plumber756.7Title/description mismatch
blocked drain solutions714.7Title doesn't match query
hot water system replacement675.4Title says "installation" not "replacement"
licensed plumber melbourne6719.8Needs page 1 position
hot water system install544.9Title says "installation" not "install"
blocked drain plumber cost1043.0"cost" not in title
plumber cost per hour526.5Title may not signal pricing info

Top Queries

Query Clicks Impressions CTR Position
plumber melbourne cbd3456.7%4.2
emergency plumber near me2385.3%6.1
blocked drain repair1921.1%8.3
how to unblock a drain1119.1%4.6
plumber melbourne01140%7.5
plumbing services melbourne0940%9.5
plumbing company melbourne0880%7.0
plumber cost melbourne0870%17.6
melbourne plumber0750%6.7
hot water system replacement0670%5.4

Top 10 Pages by Impressions

Page Impressions Clicks CTR Position
How to Prevent Blocked Drains6,52230.05%6.2
Hot Water System Buying Guide2,23850.22%6.7
Homepage1,269211.65%10.7
Emergency Plumbing Guide1,18830.25%10.6
Plumber Costs Explained87040.46%8.0
Leaking Tap Repair DIY679111.62%5.2
Gas vs Electric Hot Water63230.47%6.4
When to Call an Emergency Plumber61360.98%6.3
Bathroom Renovation Plumbing60630.50%8.4
Pipe Relining Melbourne52771.33%7.4

Keyword Clusters

Related search queries grouped by topic. Each cluster represents a content opportunity.

Melbourne Plumbing

High Value

10 queries · ~440 impressions

Strongest commercial cluster. Page 1 positions but 0% CTR on high-volume variants. Fix: compelling title and description for local search.

Hot Water Systems

High Volume

8 queries · ~260 impressions

Strong page 1 positions (avg 5.5) with 0% CTR. Educational reference content. Title refresh needed.

Emergency Services

Opportunity

6 queries · ~230 impressions

National commercial queries at striking distance (pos 12-20). No dedicated page exists. Create "Emergency Plumber" service page.

Drain Repair

Emerging

3 queries · ~155 impressions

"How to Prevent Blocked Drains" blog post ranking well (pos 4-6). Could expand into a drain maintenance content cluster.

Leaking Tap Repair

Dominant

4 queries · ~120 impressions

Top 3 positions. "Cost" variant has 104 impressions but 0% CTR. Add pricing info to title.

Bathroom Renovations

Striking Distance

5 queries · ~110 impressions

Existing blog content at positions 12-19. Title/description refreshes could push to page 1.

Pipe Relining

Niche

4 queries · ~20 impressions

Low volume but relevant to the business's specialist services. Could create a dedicated pipe relining guide.

Striking Distance Opportunities

Queries at positions 11-20. These are one push away from page 1, where the real clicks happen.

Query Position Impressions Cluster
emergency plumber near me17.687Emergency
licensed plumber melbourne19.867Melbourne
plumber cost per hour15.749Pricing
bathroom renovation plumber14.240Renovations
pipe relining cost16.130Pipe Relining
gas plumber melbourne12.825Gas Plumbing
blocked sewer pipe repair15.022Drain Repair
hot water system rebates19.519Hot Water
plumbing inspection cost11.918Pricing
water pressure low house12.414General

Content Gaps

Queries where people are searching for something you could rank for, but you don't have dedicated content.

Emergency Plumber Melbourne

Missing Page

154 combined impressions from "emergency plumber" variants at positions 17-20.

Create a dedicated service page targeting emergency plumbing customers. Currently these queries land on the homepage, which isn't optimised for them.

Plumbing Cost Guide

Missing Page

67 combined impressions from "plumber cost" + "plumbing inspection cost" at positions 12-16.

Pricing transparency queries have real search demand. A dedicated pricing guide page could capture this audience.

Affordable Plumber Melbourne

Weak Coverage

5 impressions at position 11. Low volume but high commercial intent.

The fixed-price service offering is the perfect answer for this query. Create content that positions your transparent pricing as the affordable option.

Cannibalisation Watch

When multiple pages compete for the same search query, they can hurt each other's rankings. Currently monitoring one area.

Melbourne Plumber: Homepage vs Location Page

The recently created location-specific service page may be competing with the homepage for local queries. This is expected short-term behaviour after creating a new page. Monitor for 2-4 weeks to see if positions stabilise. If both pages drop for the same queries, consolidate by making the location page the primary target.

Page Engagement (GA4)

Landing Page Sessions Bounce Rate
Homepage2924%
Leaking Tap Repair DIY1729%
(not set)17100%
Hot Water System Buying Guide956%
Pipe Relining Melbourne825%

144 total organic sessions across 35 landing pages. Homepage engagement is strong (24% bounce). The "(not set)" entries are typically direct traffic that GA4 can't attribute.

Action Roadmap

1

Quick Wins (1-2 hours each)

This week

  • Rewrite title + meta description for highest-impression blog post
  • Rewrite title + meta description for second-highest blog post
  • Rewrite title + meta description for third-highest blog post
  • Trim homepage meta description from 212 to 150-160 characters
2

Medium Effort (half day each)

This month

  • Rewrite titles for all top 10 blog posts by impressions
  • Create og:image for social sharing across the site
  • Add missing keyword variant to dominant blog post title
3

Strategic (1-2 days)

Next 30 days

  • Create dedicated service page for highest-opportunity keyword cluster
  • Monitor location page vs homepage for cannibalisation
  • Expand top-performing blog post into a content cluster

Wolf Digital

Sample Report · April 2026

Data sources: GSC, GA4, Audits, Keywords, Analysis

Report generated 2026-04-08 16:40 AEST

Want a report like
this for your website?

Drop me an email with your website URL and I'll get back to you within a business day.

Phil Kurth, web designer and developer in Geelong