AI Visible - Founding Client Audit (Before Fixes)
Full-Spectrum SEO Audit  ·  Founding Client  ·  Baseline / Before Fixes

NC Joinery

ncjoinery.co.uk  ·  Greater Manchester  ·  Joinery & Property Maintenance
Audited 14 April 2026
Weighting Schema-First
Pages audited 4
Status Pre-fix baseline
36
/ 100
Needs Work
Action Required
No canonical tags on any page
No OG / Twitter tags on any page
No sitemap.xml
No robots.txt
No analytics (GTM or GA4)
Schema bare LocalBusiness on homepage only - 3 pages untagged
Schema missing address, geo, openingHours, image, @id, sameAs
📊
Overview

SEO Health Score: 36/100

Weighting: Technical 25%, Content 25%, Schema 15%, On-Page 15%, GEO 10%, Performance 10%. Schema and GEO together account for 25% - a site with almost no structured data will always score low here regardless of how good the copy is.
Category Weight Raw Score Progress Weighted Why this score
Technical SEO
25%
30/100
7.5 HTTPS and HSTS present. Viewport meta correct. No canonical tags (all 4 pages), no sitemap.xml, no robots.txt, no analytics, no OG tags, no security headers beyond HSTS.
Content Quality / E-E-A-T
25%
52/100
13.0 Named tradesman, 20 years in business, Checkatrade verified 9.91/10, solid word counts (3000 homepage, 2259 services). No blog, no FAQ, no case studies, no specific project outcomes, 4-page site only.
Schema / Structured Data
15%
8/100
1.2 Single bare LocalBusiness on homepage only. Missing: address, geo, openingHours, priceRange, image, url, @id, sameAs. No schema on services, about, or contact pages. No Person, Service, BreadcrumbList, or FAQPage.
On-Page SEO
15%
42/100
6.3 Titles and meta descriptions present on all 4 pages. H1s present. All image alt texts populated. No canonical tags anywhere, no OG/Twitter tags anywhere. Services page H1 is generic ("Reliable, Honest, Punctual & Clean") with no keyword signal.
GEO / AI Search Readiness
10%
10/100
1.0 No llms.txt, no robots.txt (so no AI bot permissions defined), no Speakable, no FAQPage schema, no direct answer markup. Named person and Checkatrade link are the only positive signals.
Performance
10%
65/100
6.5 All CSS inline (no render-blocking stylesheet), no external JS, 40KB page. Google Fonts loaded without preload. All images JPG/PNG with no WebP versions. No lazy loading on below-fold images.
Overall SEO Health Score 35.5 / 100
Baseline summary: The site is well-built and the copy is strong for a trade business - named owner, 20 years of experience, Checkatrade verification, clear service descriptions and coverage areas. But the search infrastructure is almost entirely absent. No sitemap, no robots.txt, no canonical tags, no OG tags, no analytics, and almost no structured data. These are not difficult fixes - they are missing infrastructure that should have been there from day one. The schema situation is the biggest lever: one afternoon of structured data work could add 15-20 points. The technical foundations (HTTPS, inline CSS, clean HTML) make this straightforward to fix.
🔴
Section 1

Critical Issues

● Critical
Schema Is Bare and Homepage-Only
The single LocalBusiness block on the homepage is missing the fields that AI systems and Google depend on to understand and cite the business: no address, no geo coordinates, no openingHours, no image, no url, no @id, no sameAs. The services, about, and contact pages have zero schema. For a local trade business, this is the single biggest barrier to appearing in AI search responses.
Expand homepage LocalBusiness with address, geo, openingHours, image, url, @id, sameAs (Checkatrade URL). Add WebPage + BreadcrumbList to all 4 pages. Add Person schema for Nick Clements on about.html. Add Service schema for each of the 6 services.
● Critical
No Canonical Tags on Any Page
All 4 pages (homepage, services, about, contact) have no canonical tag. Without canonical, Google cannot definitively resolve which URL is the authoritative version if the page is accessed via multiple paths (e.g. with/without trailing slash, HTTP vs HTTPS, www vs non-www). It also signals a lack of basic on-page care to technical crawlers.
Add <link rel="canonical" href="https://ncjoinery.co.uk/[page]"> to the <head> of all 4 pages. Use the exact URL without trailing slash for consistency.
● Critical
No Analytics Installed
There is no GTM, GA4, or any other analytics on any page of the site. Nick has no visibility of where visitors come from, which pages they land on, what they do before contacting, or whether the contact form converts. Without baseline data, it is impossible to measure the impact of any SEO or schema improvements.
Install GTM (create a free container) and configure a GA4 tag through it. Add the GTM head snippet to all pages. Set up a contact form submission event. This takes under an hour and unlocks measurement from day one.
● Critical
No sitemap.xml or robots.txt
Both /sitemap.xml and /robots.txt return 404. Without a sitemap, Google has to discover pages by crawling alone - slower and less reliable for a new or recently refreshed site. Without robots.txt, there is no AI bot permissions file and no sitemap reference for crawlers that check it first.
Create sitemap.xml with all 4 pages (homepage, services, about, contact) including lastmod dates and priority values. Create robots.txt with sitemap reference and explicit allow rules for GPTBot, ClaudeBot, PerplexityBot, Googlebot.
● Critical
No OG or Twitter Card Tags on Any Page
None of the 4 pages have og:title, og:description, og:image, og:url, twitter:card, or any social meta tags. When the site is shared on WhatsApp, Facebook, LinkedIn, or any other platform, it renders as a bare URL with no preview. For a trade business where word of mouth and referrals are primary acquisition channels, this is a meaningful missed opportunity every time someone shares a link.
Add og:title, og:description, og:url, og:type, og:image, twitter:card, twitter:title, twitter:description to all 4 pages. Use a 1200x630 hero image as og:image.
● High
No GEO / AI Search Infrastructure
No llms.txt, no Speakable schema, no FAQPage, and no direct-answer content structure. AI systems querying "joinery Manchester" or "property maintenance Greater Manchester" have no structured information to pull from. The Checkatrade citation (9.91/10 rating) is the site's only credible AI-facing trust signal - and it is not referenced in schema.
Create llms.txt with service description, coverage areas, and AI bot permissions. Add FAQPage schema on the homepage and contact page. Add Speakable on the homepage pointing to the direct-answer paragraph. Reference Checkatrade URL in sameAs on the LocalBusiness entity.
Section 2

What the Baseline Gets Right

HTTPS + HSTS
HTTPS on all pages. HSTS header confirmed (max-age=15768000). HTTP/2 served.
Mobile / viewport
Viewport meta present on all pages. Responsive layout confirmed. No horizontal scroll.
Title tags
All 4 pages have unique, descriptive titles. Homepage 46 chars, services 60, about 71, contact 63. All within limits.
Meta descriptions
All 4 pages have meta descriptions (150-165 chars). Service-specific language, location included, no duplicate text.
H1 on every page
Every page has exactly one H1. Heading hierarchy is logical throughout.
Image alt text
All 28 images across 4 pages have descriptive alt text. No missing or empty alt attributes found.
Named tradesman
Nick Clements named throughout - about page, footer, services. Strong E-E-A-T foundation for a Person entity.
Checkatrade 9.91/10
Verified third-party review platform rating prominently featured. Direct link to profile present in footer area.
Est. 2006 (20 years)
Founding year in schema and prominently in footer. 20 years in business is a strong AI citation signal.
Performance baseline
All CSS inline (no render-blocking external stylesheet). No external JS files. Clean 40KB HTML. Minimal dependencies.
Coverage area listed
8 specific locations in footer (Manchester, Stockport, Altrincham, Sale, Trafford, Salford, Bury, Bolton). Good foundation for areaServed schema.
Contact info complete
Phone number (07496 312644) and email (nick@ncjoinery.co.uk) present. Phone appears twice on homepage (header + footer).
📄
Section 3

Per-Page Technical Snapshot

Page Title Meta Desc Canonical OG Tags Schema GTM ~Word Count
/ ✓ 46 chars ✓ 159 chars ✗ Missing ✗ None ▲ Bare LocalBusiness ✗ None ~3,010
/services.html ✓ 60 chars ✓ 157 chars ✗ Missing ✗ None ✗ None ✗ None ~2,259
/about.html ✓ 71 chars ▲ 165 chars (truncates) ✗ Missing ✗ None ✗ None ✗ None ~1,530
/contact.html ✓ 63 chars ✓ 150 chars ✗ Missing ✗ None ✗ None ✗ None ~1,312
Note on about.html meta description: At 165 characters it will truncate in Google SERPs (limit ~160 chars). Minor issue but worth trimming 5-6 characters when fixing the page.
📑
Section 4

Schema Audit - Current State vs Required

Current schema (homepage only): LocalBusiness with 6 fields: name, description, telephone, email, areaServed, foundingDate. No @id, no @graph, no address, no image, no openingHours, no url, no sameAs. 3 pages completely untagged.
Field Current State Required Priority
@id Missing https://ncjoinery.co.uk/#business Critical
@type LocalBusiness (generic) ["LocalBusiness", "HomeAndConstructionBusiness"] or more specific High
url Missing https://ncjoinery.co.uk/ Critical
address Missing PostalAddress with addressLocality, addressRegion, addressCountry Critical
geo Missing GeoCoordinates (latitude/longitude for Greater Manchester) High
openingHours Missing Mon-Fri 09:00-17:00, Sat by appointment (from contact page) High
image Missing ImageObject with logo or primary photo URL Critical
sameAs Missing Checkatrade profile URL at minimum High
areaServed String: "Greater Manchester" Array of specific towns (Manchester, Stockport, Altrincham, etc.) Medium
priceRange Missing ££ (mid-range trade) Medium
Person (Nick) Not present anywhere Person entity on about.html with name, jobTitle, worksFor, sameAs High
Service entities Not present 6x Service schemas (one per service) on services.html High
FAQPage Not present FAQPage on homepage and/or contact page with common trade questions High
WebPage Not present on any page WebPage + BreadcrumbList on all 4 pages High
Section 5

Medium Priority Issues

● On-Page
Services Page H1 Has No Keyword
The services.html H1 is "Reliable, Honest, Punctual & Clean" - a positioning statement with no keyword value. Search engines and AI systems weight the H1 heavily as a page topic signal. Someone searching "joinery Manchester" or "property maintenance Stockport" gets no keyword match from the most prominent heading.
Change H1 to something like "Joinery & Property Maintenance Services, Greater Manchester" and move the brand values to an H2 or subheading beneath it.
● Performance
Google Fonts Loaded Without Preconnect to gstatic
The site has preconnect to fonts.googleapis.com but not fonts.gstatic.com (where the actual font files live). This means the browser has to make an extra DNS lookup for the font files, adding ~50-100ms on mobile connections.
Add <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> immediately after the existing Google Fonts preconnect.
● Performance
No WebP Images
All 28 images are JPEG or PNG. WebP typically reduces file size by 25-35% vs JPEG at equivalent quality. The hero images (general-renovations-01.jpg, bathrooms-shower.jpg etc.) are the highest-impact targets given they are above the fold.
Convert hero and above-fold images to WebP. Serve using <picture> with WebP source and JPEG/PNG fallback, or convert and replace if legacy browser support is not a concern.
● Content
No FAQ Content on Site
AI search responses for trade queries (cost, timelines, coverage, guarantees, insurance) are heavily driven by FAQ-format content. The site has strong service descriptions but no questions-and-answers format anywhere. This is one of the quickest wins for AI citation readiness.
Add 4-6 FAQs to the homepage (covering cost, coverage, how to get a quote, turnaround time) and mark up with FAQPage schema. The contact page's "Honest Pricing" section is a good starting point for one FAQ answer.
● Content
No Blog or Long-Form Content
4 pages is thin for a site trying to rank across a wide geographic area and multiple service types. Competitors with project write-ups, material guides, or location-specific pages will outperform on long-tail queries. Blog content also creates opportunities for schema (HowTo, Article) and internal linking.
Consider 2-3 project case studies or service guides ("How to plan a wet room in a Victorian terrace", "What to look for in an HMO refurbishment quote"). These can be short (400-600 words) and each doubles as schema and AI citation fodder.
● Technical
Security Headers Incomplete
Only HSTS is present. X-Frame-Options, X-Content-Type-Options, Referrer-Policy, and Content-Security-Policy are all absent. These are not direct ranking factors but are increasingly checked by security scanners and affect trust signals for AI citation systems that assess site credibility.
Add security headers via .htaccess using <IfModule mod_headers.c>. HSTS is present, so the module appears to be available. Add X-Frame-Options SAMEORIGIN, X-Content-Type-Options nosniff, and Referrer-Policy strict-origin-when-cross-origin at minimum.
📅
Section 6

Prioritised Fix Roadmap

Estimated score after full implementation: 68-72/100. The schema and technical fixes alone should move the site from 36 to approximately 58-62. Content improvements (FAQ, one case study) push it to 65-68. A second content piece or location page adds the final increment.
# Fix Category Score Impact Effort
1 Expand LocalBusiness schema with address, geo, openingHours, image, url, @id, sameAs, priceRange Schema +8-10 pts 1-2 hrs
2 Add WebPage + BreadcrumbList schema to all 4 pages Schema +3-4 pts 1 hr
3 Add canonical tags to all 4 pages Technical +3-4 pts 30 mins
4 Add OG + Twitter Card tags to all 4 pages On-Page +3-4 pts 1 hr
5 Create sitemap.xml and robots.txt Technical +2-3 pts 30 mins
6 Install GTM (create container, add to all pages, configure GA4 tag) Technical +1-2 pts (score); high business value 1-2 hrs
7 Add Person schema for Nick Clements on about.html Schema +2 pts 30 mins
8 Add 6x Service schemas on services.html Schema +2 pts 1 hr
9 Create llms.txt + add FAQPage schema on homepage (4-6 trade FAQs) GEO / Schema +4-5 pts 2 hrs
10 Update services.html H1 to include keyword ("Joinery & Property Maintenance Services") On-Page +1-2 pts 5 mins
11 Add preconnect for fonts.gstatic.com and convert hero images to WebP Performance +2-3 pts 2-3 hrs
12 Add security headers to .htaccess (X-Frame-Options, X-Content-Type-Options, Referrer-Policy) Technical +1-2 pts 30 mins
13 Write one project case study or service guide (400-600 words) Content +3-4 pts Half day