This is an example of the audit report format sent to every new client before work begins. It covers technical health, on-page optimisation, local SEO, AI search visibility, keyword tracking, and a clear priority action plan.
Each category is scored out of 100 against a fixed checklist of specific, measurable factors, not a subjective impression. Within a category, every checklist item is marked Pass, Partial, or Fail and given a weighting based on how much impact it has on rankings (a missing H1 tag costs more than a slightly long meta description). The category score is the total points earned as a percentage of the points available.
The Overall Score is then a simple average of the four category scores below, each weighted equally at 25%.
Overall Score = (52 + 38 + 31 + 54) ÷ 4 = 44/100. Scores of 0–39 are marked Critical, 40–69 Needs Work, and 70–100 Good. Every client's real audit uses this same fixed checklist, so scores are comparable and repeatable, not just a general impression.
On-Page SEO is built from 5 weighted items. Each is scored against every page audited (11 pages for this site), so a single failing page rarely means 0 points, it means a fraction of that item's points are lost. Here is the actual breakdown:
| Checklist Item | Points Available | Result Across 11 Pages | Points Earned |
|---|---|---|---|
| Title tags: unique & optimised | 20 | 2 pass, 6 partial (generic), 3 fail (missing) | 9 |
| Meta descriptions: present & compelling | 25 | 0 pass, 1 partial, 10 fail (missing) | 1 |
| Exactly one keyword-relevant H1 per page | 20 | 9 pass, 2 fail (duplicate H1 tags) | 16 |
| Content quality & keyword targeting | 20 | Thin, generic copy on most service pages | 6 |
| Internal linking between related pages | 15 | Average 1.2 links/page, target is 3+ | 6 |
| Total | 100 | 38 |
Take the H1 item as an example: it is worth 20 of the 100 On-Page points. 9 of the 11 pages have a single, correctly targeted H1, so that item earns (9 ÷ 11) × 20 = 16 points, losing 4. It looks like a small loss in isolation, but the 2 failing pages are Homepage and Emergency Plumber, the two pages this business most needs to rank. Every other category (Technical, Local, Authority) is scored the same way: fixed items, fixed points, a percentage of what was actually found.
Google is auto-generating snippets for these pages, often pulling irrelevant text. This directly reduces click-through rates from search results. Every page must have a unique, keyword-informed description between 140 and 160 characters.
How the Emergency Plumber page currently appears in Google results (auto-generated) vs how it will look after we write the meta description:
...our team is available for emergency callouts. Contact form below. Call us on 01622... Monday to Friday... we cover Kent and surrounding areas including...
24-hour emergency plumber covering Maidstone, Ashford & across Kent. Burst pipes, boiler breakdowns & leaks. Fast response. Call now: 01622 000000.
The GBP listing exists but is unclaimed. Competitors with verified listings are appearing in the Local Pack (the map box at the top of Google) for queries like "plumber Maidstone" and "emergency boiler repair Kent". This is likely the single biggest source of lost leads right now.
Once you have completed Google's own verification step (postcard or phone call), the following optimisation work is carried out. Most clients see their first Local Pack appearance within 2 to 4 weeks of verification being confirmed.
Google uses mobile-first indexing. A 6.8s load time on mobile is penalising rankings across the board. The main culprits are uncompressed images (largest is 2.4MB) and render-blocking JavaScript in the page head.
defer
Projected LCP after fixes: 1.9s, down from 6.8s to under the 2.5s target.
The homepage and three service pages each contain two H1 headings. There should be exactly one per page. This confuses search engines about what the primary topic of each page is.
No schema is present anywhere on the site. This means the business is invisible to AI search tools (ChatGPT, Google AI Overviews, Bing Copilot) that rely on structured signals to identify and recommend local service providers.
This JSON-LD block is added inside the <head> of every page. It tells Google, ChatGPT, and Bing exactly who you are, what you do, and where you operate:
The site passes the basic security signal Google requires. No mixed-content warnings detected.
Technical SEO is the foundation. No amount of good content or backlinks will compensate for a site that is slow, hard to crawl, or poorly structured.
| Metric | Mobile Score | Desktop Score | Target | Status |
|---|---|---|---|---|
| Largest Contentful Paint (LCP) | 6.8s | 2.9s | Under 2.5s | Fail (both) |
| Interaction to Next Paint (INP) | 310ms | 140ms | Under 200ms | Mobile fail |
| Cumulative Layout Shift (CLS) | 0.04 | 0.02 | Under 0.1 | Pass |
| First Contentful Paint (FCP) | 3.1s | 1.4s | Under 1.8s | Mobile fail |
| Overall PageSpeed Score | 34 / 100 | 61 / 100 | 80+ | Mobile poor |
<link rel="preload"> on the hero image. The browser does not discover the image until it has already parsed the HTML, adding hundreds of milliseconds.<link rel="preload" as="image"> for the hero image in <head> so the browser starts fetching it immediately.loading="lazy" to all images that appear below the fold.font-display: swap declared. Text stays invisible until the webfont is ready instead of falling back to a system font immediately.<link rel="preconnect"> hints for Google Fonts or any third-party domains. Each new connection adds a round-trip delay.<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> to the <head> to eliminate the connection setup delay.The robots.txt issue is significant. The /services/ folder contains your most commercially important pages. Google cannot currently crawl or rank any of them. This is likely to be fixed within 24 hours of correction.
Three pages are returning 404 errors and need permanent 301 redirects. This passes any existing link equity to the correct destination and stops users hitting dead ends:
The average of 1.2 internal links per page means Google struggles to discover and understand relationships between your service pages. Here is one example of natural contextual linking added to the Boiler Repairs page:
This is repeated across all pages so every service is connected to at least 3 others, creating the internal link structure Google expects from an authoritative local business site.
On-page signals tell Google what each page is about and who it is for. Weak or missing signals mean Google guesses, and it usually guesses wrong.
| Page | Title Tag | Meta Description | H1 Tags Found on Page (see note below) | H1 Count | Target Keyword (from search data) |
|---|---|---|---|---|---|
| Homepage | Generic | Missing | H1 #1"Metro Plumbing" H1 #2"Professional Plumbing Services Kent" | 2 found. Should be 1. | "plumber Maidstone"480 searches/mo |
| Boiler Repairs | Good | Missing | H1 #1"Boiler Repair & Service in Maidstone" | 1 found, correct | "boiler repair Maidstone"210 searches/mo |
| Emergency Plumber | Missing | Missing | H1 #1"Emergency Callouts" H1 #2"We Are Here When You Need Us" | 2 found. Should be 1. | "emergency plumber Kent"390 searches/mo |
| Bathroom Fitting | Too Long | Too Short | H1 #1"Bathroom Fitting & Renovation Maidstone" | 1 found, correct | "bathroom fitters Maidstone"140 searches/mo |
| Gas Safety Checks | Good | Missing | H1 #1"Gas Safety Certificates Kent" | 1 found, correct | "gas safety certificate Kent"170 searches/mo |
| Contact Page | Generic | Missing | H1 #1"Get In Touch" | 1 found, correct | None. contact pages are not targeted to rank for keywords |
| About Us | Generic | Missing | H1 #1"About Metro Plumbing" | 1 found, correct | None. brand/trust page, not keyword targeted |
| Boiler Servicing | Generic | Missing | H1 #1"Boiler Servicing & Maintenance" | 1 found, correct | "boiler service Maidstone"260 searches/mo |
| Central Heating | Missing | Missing | H1 #1"Central Heating Systems" | 1 found, correct | "central heating installation Kent"130 searches/mo |
| Our Work | Missing | Missing | H1 #1"Recent Jobs" | 1 found, correct | None. gallery page, not keyword targeted |
| Testimonials | Generic | Missing | H1 #1"What Our Customers Say" | 1 found, correct | None. social proof page, supports trust signals |
Every page should have exactly one <h1> tag in its HTML. The H1 is the main heading Google uses to understand what that page is about. When two H1 tags are found, Google cannot determine which is the primary topic. The page rows labelled 2 found contain two completely separate heading elements in the code, each marked as H1.
The Target Keyword is the specific search phrase we want each page to rank for, chosen from real monthly search volume data (Google Search Console and keyword research tools). It is not necessarily what the page currently ranks for. It is the term most likely to bring paying customers to that page once the page is properly optimised to target it.
Of 11 pages audited, only 2 have optimised title tags and neither of the most important commercial pages (Emergency Plumber, Homepage) has a working meta description. This is a quick and high-impact fix.
For a local service business like a plumber, the Google Local Pack (the map results) can deliver more leads than all organic results combined. Local SEO is often the highest ROI work available.
NAP stands for Name, Address, Phone. Google cross-references your business details across the web to confirm you are a real, trustworthy local business. Inconsistent details reduce your Local Pack ranking. All four directory entries need to match exactly: same business name, same address format, same phone number.
Every directory will be updated to match the verified Google Business Profile exactly. The correct version is set as the single source of truth:
| Directory | Current (incorrect) | Corrected to |
|---|---|---|
| Checkatrade | Metro Plumbing, 14 Kings Rd, Maidstone ME14 1BZ, 01622 000 000 | Metro Plumbing & Heating Ltd, 14 Kings Road, Maidstone, Kent, ME14 1BZ, 01622 000000 |
| Yell.com | Already correct. No change needed. | Metro Plumbing & Heating Ltd, 14 Kings Road, Maidstone, Kent, ME14 1BZ, 01622 000000 |
| Rated People | Metro Plumbing Ltd, Maidstone, 07711 000000 (mobile number, not main line) | Metro Plumbing & Heating Ltd, 14 Kings Road, Maidstone, Kent, ME14 1BZ, 01622 000000 |
| Yelp (unclaimed) | Metro Plumbing Ltd, Maidstone, 01622-000-000 (hyphenated format) | Claim & update: Metro Plumbing & Heating Ltd, 14 Kings Road, Maidstone, Kent, ME14 1BZ, 01622 000000 |
Three things drive AI search visibility for a local business. All three are part of the work plan:
Rankings checked on a rolling 28-day average. Data pulled from Google Search Console and cross-referenced with manual SERP checks across three Kent locations.
| Keyword | Monthly Searches | Current Position | Page | Opportunity |
|---|---|---|---|---|
| plumber Maidstone | 480 | Not ranking | Homepage | High |
| emergency plumber Kent | 390 | Not ranking | /emergency-plumber/ | High |
| boiler repair Maidstone | 210 | Pos. 18 | /boiler-repairs/ | Medium |
| gas safety check Kent | 170 | Pos. 22 | /gas-safety/ | Medium |
| bathroom fitters Maidstone | 140 | Not ranking | /bathroom-fitting/ | Medium |
| 24 hour plumber Maidstone | 90 | Not ranking | Not targeted | Quick Win |
| boiler service Maidstone | 260 | Not ranking | Not targeted | High |
The highest-volume commercial terms are not ranking at all, largely because the robots.txt issue has blocked the /services/ folder from being crawled. Once resolved, these pages will begin indexing within 2 to 4 weeks. Rankings will follow as on-page work is completed.
These terms have lower monthly search volume but are easier to rank for quickly, face little competition from national comparison sites, and often convert better because the searcher is more specific about what they want. Targeting these first builds momentum while the higher-volume terms take time to climb.
| Keyword | Monthly Searches | Competition | Why It Converts |
|---|---|---|---|
| plumber Bearsted | 30 | Low | Hyper-local village near Maidstone. Searcher is in your area and ready to book. |
| power flush Maidstone | 40 | Low | High-value service. Specific intent means they already know what they want. |
| combi boiler installation Maidstone | 50 | Low | High ticket. Anyone searching this is comparing quotes, not just browsing. |
| Gas Safe engineer Maidstone | 35 | Low | Safety-driven search. Trust is the deciding factor so reviews close the deal fast. |
| boiler service Aylesford | 20 | Low | Village-level targeting. Near zero competition at this level of specificity. |
| central heating not working Maidstone | 25 | Low | Problem-state query. Person is cold, frustrated, and needs someone today. |
| radiator replacement Maidstone | 20 | Low | Specific single service. Easy to rank, easy to convert with a clear page. |
| plumber Larkfield Kent | 25 | Low | Nearby village with no dedicated local plumber ranking for it at all. |
No blog content, FAQ sections, or question-based pages were found on the site. This means none of the following query types are being captured. Long-tail queries are longer, more specific phrases with lower individual search volume but used by people who are further along in their decision and far more likely to make contact. They are also the queries AI tools like ChatGPT and Google AI Overviews pull answers from. A single well-written service page FAQ or blog post can rank for dozens of these at once.
No FAQ content was found on any of the 11 pages audited. This is a missed opportunity. Google AI Overviews, ChatGPT, and Perplexity all read structured Q&A content when deciding what to pull into AI-generated answers, and clear FAQ sections also improve eligibility for featured snippet paragraph boxes in standard search results. Note: Google stopped showing FAQ rich result dropdowns for most websites on 7 May 2026, so the value now sits entirely in AI search visibility and featured snippets. Below are the questions that should be added to the relevant service pages, each with a suggested answer style.
None of the above are currently on the site. Adding these to the relevant service pages with FAQPage schema will help Google and AI tools understand what the business does and cite it accurately. They also improve eligibility for featured snippet paragraph boxes in standard search results.
This is the planned content structure for the Emergency Plumber page after optimisation. Every element is there for a reason, targeting both search rankings and AI search visibility:
Comparing Metro Plumbing against the top three organic competitors for the primary target keywords in Maidstone.
| Signal | Metro Plumbing | Kent Rapid Plumbing | MaidPlumb Pro |
|---|---|---|---|
| Google Reviews | 6 | 84 | 52 |
| GBP Verified | No | Yes | Yes |
| Schema Markup | None | Full LocalBusiness | Partial |
| Mobile Speed Score | 34/100 | 71/100 | 58/100 |
| Number of Service Pages | 5 | 14 | 9 |
| Local Pack Ranking | Not appearing | Position 1 | Position 3 |
| Referring Domains | 7 | 31 | 19 |
| Signal | Now | Target (Month 12) | How |
|---|---|---|---|
| Google Reviews | 6 | 35+ | Post-job review request process via SMS link |
| GBP Verified | No | Yes | Claimed and completed in week one |
| Schema Markup | None | Full suite | LocalBusiness, Service, FAQ added to all pages |
| Mobile Speed | 34/100 | 80+/100 | WebP images, deferred JS, server optimisation |
| Service Pages | 5 | 12+ | New pages for 7 missing high-value services |
| Local Pack | Not appearing | Top 3 | GBP + reviews + local schema combined |
| Referring Domains | 7 | 20+ | Trade directories, council listings, press outreach |
The backlink profile is thin but clean. There are no harmful links to disavow. The focus should be on building quality local citations and earning links through local PR and trade directory listings.
These are the specific directories and sources to target first. Priority is based on domain authority, relevance to the plumbing industry, and likelihood of a free or low-cost listing:
Target outcome: 5 to 10 new referring domains within 3 months, pushing Domain Authority from 11 toward 20+.
Tasks ordered by impact relative to effort. Items 1 through 4 are quick fixes that will show measurable results within 30 days.
One line change. Currently preventing Google from crawling your most important pages. Estimated impact: indexation of 5 blocked service pages within 2 to 3 weeks.
Verification must be completed by you directly with Google (by postcard or phone call). Once verified, I will fully optimise the profile: 15 to 20 photos, all service categories, opening hours, booking link, and Q&A. This is the fastest path to Local Pack visibility.
Each one needs keyword research, a unique angle, and to be 140 to 160 characters with a clear call to action. Cannot be rushed or duplicated across pages or Google ignores them.
Each page should have exactly one H1. On the homepage this means choosing the single most important keyword phrase and making everything else an H2.
Every image needs to be exported at the correct display size, converted to WebP, and every reference updated in the code. The largest file alone is 2.4MB and is the single biggest cause of the failed LCP score.
Each page type needs its own schema block written and tested. LocalBusiness, Service, and Review schema are the priority. FAQPage schema is still worth adding for AI search visibility and featured snippet eligibility, though Google no longer shows FAQ rich result dropdowns for most websites following their 2023 update. All schema should be validated through Google's Rich Results Test before going live.
Each directory requires logging in or submitting a correction request. Some (like Yell) take several days to update after submission. Four directories are affected.
Each page needs keyword research, 600 to 800 words of locally targeted content, an FAQ section, internal links to related services, and schema. Rushing this produces pages that do not rank.
After every completed job, send customers a direct link to leave a Google review. Target: 30 reviews within 6 months. This is also a key signal for AI search tools.
Submit to Gas Safe register directory, APHC member listing, local Kent business directories, and reach out to local builders for reciprocal mentions. Target: 5 to 10 quality referring domains in 3 months.
Review generation (item 9) and backlink building (item 10) are part of an ongoing strategy rather than a one-off fix. These are things you can manage yourself, or they can be included and quoted as part of a monthly SEO plan.
Once robots.txt is corrected, all blocked service pages will begin indexing within 14 to 21 days. Google Business Profile verification opens the door to Local Pack appearances within 2 to 6 weeks, depending on review velocity and local competition.
With meta descriptions, corrected H1s, and schema in place, click-through rates should improve and pages will begin climbing from non-ranking to page 3 and 4 positions. Impression volume in Search Console typically jumps noticeably during this window.
As content, authority, and local signals strengthen, target keywords like "boiler repair Maidstone" and "plumber Maidstone" should move into page 1 to 2 territory. Review accumulation during this period also drives a measurable increase in Local Pack appearances.
With the full action plan executed, a realistic target is 3 to 7 organic enquiries per week from search alone. AI search recommendations (ChatGPT, Google AI Overviews) typically begin appearing once review count exceeds 30 and schema is fully in place.
To carry out all the fixes in this plan I will need the following access. You are never asked to hand over your personal Google password. Where Google access is needed, you simply invite me as a manager or user from within your own account.
Either share your existing admin username and password, or create a new admin user for me within WordPress. This is needed for all on-page changes, meta descriptions, H1 fixes, schema, and image updates.
Needed to update the robots.txt file and set up any 301 redirects. Usually available through your hosting provider's control panel. If you are unsure how to find this, I can walk you through it.
Log into your Google Business Profile and invite me as a manager using my email address. You keep full ownership. I cannot do this without you first completing Google's own verification step.
Add me as a full user in Search Console so I can check crawl errors, submit updated sitemaps, and monitor indexation after the robots.txt fix goes live.
For the four directories where your NAP listing is incorrect (Yell, Thomson Local, Yelp, FreeIndex), I'll need the login email and password for each, or you can update them yourself using the correct details listed in the Local SEO section of this report.
If you have the original high-resolution versions of any photos used on the site, please share them. I will handle the resizing, WebP conversion, and compression. Any existing logo files or brand colours are also useful for the new service pages.
Every new client starts with a full audit before any work begins. No guessing, no generic advice. Just a clear picture of exactly where you are and what needs to happen next.
Get Your Free SEO Audit