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.
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.
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 #1 | 6,522 | 3 | 0.05% |
| Technical Blog Post #2 | 2,238 | 5 | 0.22% |
| How-To Guide #1 | 1,188 | 3 | 0.25% |
| Technical Blog Post #3 | 870 | 4 | 0.46% |
| Technical Blog Post #4 | 679 | 11 | 1.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) | 114 | 307 | 1 | 0.33% |
| Page 1 (4-10) | 194 | 2,178 | 2 | 0.09% |
| Striking Distance (11-20) | 95 | 693 | 1 | 0.14% |
| Potential (21-50) | 61 | 251 | 5 | 1.99% |
| Long Tail (50+) | 31 | 92 | 0 | 0% |
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 melbourne | 114 | 7.5 | Title/description mismatch |
| plumbing services melbourne | 94 | 9.5 | Title/description mismatch |
| plumbing company melbourne | 88 | 7.0 | Title/description mismatch |
| emergency plumber near me | 87 | 17.6 | Needs page 1 position |
| how to fix a leaking tap | 79 | 6.4 | Title doesn't match query |
| melbourne plumber | 75 | 6.7 | Title/description mismatch |
| blocked drain solutions | 71 | 4.7 | Title doesn't match query |
| hot water system replacement | 67 | 5.4 | Title says "installation" not "replacement" |
| licensed plumber melbourne | 67 | 19.8 | Needs page 1 position |
| hot water system install | 54 | 4.9 | Title says "installation" not "install" |
| blocked drain plumber cost | 104 | 3.0 | "cost" not in title |
| plumber cost per hour | 52 | 6.5 | Title may not signal pricing info |
Top Queries
| Query | Clicks | Impressions | CTR | Position |
|---|---|---|---|---|
| plumber melbourne cbd | 3 | 45 | 6.7% | 4.2 |
| emergency plumber near me | 2 | 38 | 5.3% | 6.1 |
| blocked drain repair | 1 | 92 | 1.1% | 8.3 |
| how to unblock a drain | 1 | 11 | 9.1% | 4.6 |
| plumber melbourne | 0 | 114 | 0% | 7.5 |
| plumbing services melbourne | 0 | 94 | 0% | 9.5 |
| plumbing company melbourne | 0 | 88 | 0% | 7.0 |
| plumber cost melbourne | 0 | 87 | 0% | 17.6 |
| melbourne plumber | 0 | 75 | 0% | 6.7 |
| hot water system replacement | 0 | 67 | 0% | 5.4 |
Top 10 Pages by Impressions
| Page | Impressions | Clicks | CTR | Position |
|---|---|---|---|---|
| How to Prevent Blocked Drains | 6,522 | 3 | 0.05% | 6.2 |
| Hot Water System Buying Guide | 2,238 | 5 | 0.22% | 6.7 |
| Homepage | 1,269 | 21 | 1.65% | 10.7 |
| Emergency Plumbing Guide | 1,188 | 3 | 0.25% | 10.6 |
| Plumber Costs Explained | 870 | 4 | 0.46% | 8.0 |
| Leaking Tap Repair DIY | 679 | 11 | 1.62% | 5.2 |
| Gas vs Electric Hot Water | 632 | 3 | 0.47% | 6.4 |
| When to Call an Emergency Plumber | 613 | 6 | 0.98% | 6.3 |
| Bathroom Renovation Plumbing | 606 | 3 | 0.50% | 8.4 |
| Pipe Relining Melbourne | 527 | 7 | 1.33% | 7.4 |
Keyword Clusters
Related search queries grouped by topic. Each cluster represents a content opportunity.
Melbourne Plumbing
High Value10 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 Volume8 queries · ~260 impressions
Strong page 1 positions (avg 5.5) with 0% CTR. Educational reference content. Title refresh needed.
Emergency Services
Opportunity6 queries · ~230 impressions
National commercial queries at striking distance (pos 12-20). No dedicated page exists. Create "Emergency Plumber" service page.
Drain Repair
Emerging3 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
Dominant4 queries · ~120 impressions
Top 3 positions. "Cost" variant has 104 impressions but 0% CTR. Add pricing info to title.
Bathroom Renovations
Striking Distance5 queries · ~110 impressions
Existing blog content at positions 12-19. Title/description refreshes could push to page 1.
Pipe Relining
Niche4 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 me | 17.6 | 87 | Emergency |
| licensed plumber melbourne | 19.8 | 67 | Melbourne |
| plumber cost per hour | 15.7 | 49 | Pricing |
| bathroom renovation plumber | 14.2 | 40 | Renovations |
| pipe relining cost | 16.1 | 30 | Pipe Relining |
| gas plumber melbourne | 12.8 | 25 | Gas Plumbing |
| blocked sewer pipe repair | 15.0 | 22 | Drain Repair |
| hot water system rebates | 19.5 | 19 | Hot Water |
| plumbing inspection cost | 11.9 | 18 | Pricing |
| water pressure low house | 12.4 | 14 | General |
Content Gaps
Queries where people are searching for something you could rank for, but you don't have dedicated content.
Emergency Plumber Melbourne
Missing Page154 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 Page67 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 Coverage5 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 |
|---|---|---|
| Homepage | 29 | 24% |
| Leaking Tap Repair DIY | 17 | 29% |
| (not set) | 17 | 100% |
| Hot Water System Buying Guide | 9 | 56% |
| Pipe Relining Melbourne | 8 | 25% |
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
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
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
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
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.