Technical SEO Audit Report
TECHNICAL
SITE AUDIT
Domain
www.vospersff.com
Audit Date
May 2026
Pages Crawled
26
Crawl Tool
SiteBulb
Prepared By
Solaris Digital
Solaris Digital
Overview
Executive Summary
Needs Attention
47
/100
Technical Health Index
Based on crawl data across on-page signals, crawlability, linking and content integrity. Performance, authority and AI sections are pending additional data.
3
Critical Issues
5
Opportunities
5
Passing Checks
26
Pages Crawled
0
Broken URLs
0
Duplicate Content
Crawlability & Indexing
Amber
On-Page & Metadata
Critical
Links & Architecture
Amber
Performance & CWV
Amber
Organic Visibility
Amber
AI / LLM Visibility
Critical
Duplicate Content
Passing
JS Rendering
Passing
Security
Amber
Social Meta & OG
Amber
Local SEO
Amber
Sustainability
Passing
Analyst Commentary — Executive Summary
Section 01 — Infrastructure
Crawlability & Indexing
Amber — Review Required
26
Total URLs Crawled
0
Broken Internal URLs
2
Internal Redirects
2
GET Method Forms
0
Duplicate Titles
0
Similar Content
Broken internal URLs (4XX / 5XX)
No internal URLs returning error, not-found, forbidden, or timeout responses. The crawl is clean.
0
Redirect loops & broken redirect chains
No circular redirects or broken redirect targets detected. Redirect integrity is sound.
0
Internal redirected URLs (3XX hops)
2 internal URLs redirect rather than resolving directly. Each redirect adds a request hop, slowing load time and diluting crawl efficiency. Internal links pointing to these should be updated to the final destination.
2
Forms using GET method
2 pages contain forms with a GET method, potentially generating large numbers of cacheable submission URLs, creating crawl budget risk and possible index bloat.
2
Duplicate page titles
No pages share identical title tags. Good for content differentiation across the crawled set.
0
Near-duplicate content
No pages flagged for near-duplicate HTML content. Clean duplication profile across the site.
0
JavaScript rendering issues
No JS-only links or body content detected. Critical content appears accessible in the raw HTML response.
0
Google Tag Manager code detected
26 URLs do not contain a Google Tag Manager code. Verify whether GTM is intentionally absent or has been accidentally omitted — its absence may affect tracking and event management.
26
Analyst Commentary — Crawlability & Indexing
Infrastructure — HTTPS & Headers
Security
Amber — Review Required
Active
HTTPS STATUSType: Active or Inactive
0
MIXED CONTENT ISSUESType: count (0 = none found)
F
SECURITY HEADER SCOREType: A B C D E or F
45
SSL DAYS REMAININGType: number of days
HTTPS enforced site-wide
All pages served over HTTPS. A consistent HTTP → HTTPS redirect must be in place across the entire domain, not just the homepage.
✓ Pass
Mixed content (HTTP resources on HTTPS pages)
HTTP-sourced images, scripts, or stylesheets on HTTPS pages trigger browser security warnings and can affect user trust and crawler behaviour.
✓ Pass
SSL certificate valid & not expiring soon
Certificate must be valid and have at least 30 days remaining. An expired certificate causes immediate browser blocking and loss of all traffic.
✓ Pass
HTTP Strict Transport Security (HSTS)
HSTS instructs browsers to always use HTTPS, preventing protocol downgrade attacks and cookie hijacking. Should include a max-age of at least 6 months.
✗ Fail
Content Security Policy (CSP)
Declares which content sources are trusted, reducing XSS attack risk. Absence is one of the most common unaddressed security gaps on SME websites.
✗ Fail
X-Content-Type-Options: nosniff
Prevents browsers from MIME-type sniffing, stopping certain injection attacks. A simple one-line header addition.
✗ Fail
X-Frame-Options
Prevents the site being embedded in iframes on other domains. Protects against clickjacking attacks — particularly relevant for sites with contact forms.
✗ Fail
Referrer-Policy
Controls how much referrer information passes when a user navigates away. A permissive or absent policy can leak sensitive URL data to third parties.
✗ Fail
HTTP/2 or HTTP/3 protocol in use
Modern HTTP protocols deliver significant load performance improvements through multiplexing and header compression. HTTP/1.1 only is a performance and indirect SEO issue.
✓ Pass
Insecure form actions
Any form submitting data over HTTP rather than HTTPS risks exposing user-submitted data — particularly relevant for enquiry and booking forms.
✓ Pass
Expert Commentary — Security
Section 02 — Content Signals
On-Page & Metadata
Red — Critical Issues
21
Missing Meta Descriptions
20
Multiple H1 Tags
26
Title Tags Too Long
12
H1 Tags Too Long
0
Missing Page Titles
0
Duplicate H1s (Cross-Page)
Meta description missing
96% of crawled pages (25/26) have no meta description. This is a site-wide issue. Meta descriptions directly influence click-through rates — without them, Google auto-generates snippets, often with poor results.
21
Multiple <h1> tags on a single page
20 pages contain more than one H1 heading. Each page should have exactly one H1. Multiple H1s dilute keyword focus and likely point to a CMS or theme-level structural issue.
20
Title tag length too long
Every crawled page (26/26) has a title tag exceeding recommended character limits. Titles beyond ~60 characters are truncated in SERPs, reducing visibility — Google may choose to rewrite them entirely.
26
<h1> tag length too long
12 pages have H1 tags with too many words, weakening their keyword focus. The H1 should be concise and lead with the primary target term.
12
<h1> tag missing
1 page has no H1 tag — a missed fundamental on-page signal for search engines.
1
Missing page title tags
All pages have title tags present. No critical missing-title errors detected.
0
Duplicate H1 tags across pages
No cross-page H1 duplication — no heading-level keyword cannibalization.
0
Duplicate meta descriptions across pages
No duplicate meta descriptions found across the crawled URL set.
0
Analyst Commentary — On-Page & Metadata
Content Signals — Sharing & Knowledge Graph
Social Meta & Open Graph
Amber — Review Required

Open Graph and Twitter/X Card tags control how pages appear when shared across social media and messaging platforms. Beyond sharing, they feed directly into Google's Knowledge Graph and provide AI systems with explicit signals about page context, entity type, and content authority.

26
PAGES WITH OG TAGSType: count (out of 26)
0
PAGES WITH TWITTER CARDSType: count (out of 26)
10
OG IMAGES VALID (1200×630)Type: count (out of 26)
og:title present on all key pages
Controls the headline shown when a page is shared. If absent, platforms fall back to the <title> tag — often a poor sharing experience.
✓ Pass
og:description present on all key pages
Controls the summary text shown in social shares. Without it, platforms auto-pull text from the page — often with unpredictable results.
✗ Fail
og:image present and correct dimensions (1200×630px)
The shared image. Must be at least 1200×630px to render correctly on all platforms. A missing or undersized image results in blank or broken share cards.
✗ Fail
og:url matches the canonical URL
The og:url should exactly match the self-referencing canonical. Mismatches can confuse social scrapers and create duplicate signal issues.
✓ Pass
og:type set correctly
Should be "website" for the homepage, "article" for blog/news content, "product" for product pages. Correct typing helps the Knowledge Graph categorise the entity.
✓ Pass
og:site_name set
Identifies the brand behind the content. Used by Google in Knowledge Graph entity association and by platforms in share card attribution.
✓ Pass
twitter:card present (summary_large_image recommended)
"summary_large_image" produces a full-width image card on X/Twitter — significantly higher click-through than the default small card format.
✗ Fail
twitter:title and twitter:description present
Without these X/Twitter falls back to OG tags, which may not be optimised for the platform's character limits and card layout.
✗ Fail
twitter:image present and valid
Dedicated Twitter card image. Minimum 300×157px, maximum 4096×4096px. Can differ from the OG image if the optimal crop differs by platform.
✗ Fail
Social share preview tested (Facebook, LinkedIn, X)
All three platform debuggers should be run against the homepage and at least one key landing page to verify real-world rendering.
✓ Pass
Expert Commentary — Social Meta & Open Graph
Section 04 — Speed & Experience
Performance & Core Web Vitals
Amber — Review Required
95
PAGESPEED DESKTOPType: score 0–100
70
PAGESPEED MOBILEType: score 0–100
D
PINGDOM GRADEType: A B C D E or F — from Pingdom performance score (90–100=A, 80–89=B…)
Largest Contentful Paint (LCP)
Load performance of the main visible element. Source: PageSpeed. Target: under 2.5s · 2.5–4.0s Needs Improvement · over 4.0s Poor
1.1s
Interaction to Next Paint (INP)
Google's responsiveness metric. Source: PageSpeed Field Data (top section). Only shown if the site has sufficient real-user traffic — enter N/A if absent.
N/A
Cumulative Layout Shift (CLS)
Visual stability during load. Source: PageSpeed. Target: under 0.1 · 0.1–0.25 Needs Improvement · over 0.25 Poor
0
Total Blocking Time (TBT)
Lab proxy for interactivity. Source: PageSpeed main metrics row. Target: under 200ms · 200–600ms Needs Improvement · over 600ms Poor
20ms
Time to First Byte (TTFB)
Server response speed. Source: Pingdom → click first request in waterfall → note "Wait" time. Or PageSpeed Diagnostics → "Reduce initial server response time". Target: under 200ms (AI-optimal) · under 600ms (SEO standard)
1230.4ms
Page Load Time (Pingdom)
Total page load time. Source: Pingdom results page — headline "Load Time" figure. Target: under 1.8s · 1.8–3.0s Needs Improvement · over 3.0s Poor
2.05s
Analyst Commentary — Performance & Core Web Vitals
Section 05 — Search Performance
Organic Visibility
Amber — Partial Data
6,740
Impressions (12mo)
100
Organic Clicks
1.5
AVERAGE CTRType: percentage e.g. 3.2
28.1
AVG. POSITIONType: avg position e.g. 14.3
2
DOMAIN RATING (AHREFS)Type: score 0–100
80
Referring Domains
Google Search Console — verified & active
Confirm GSC property is verified and returning data for this domain. Enter Yes (green) or No (red).
YES
GSC errors reported
Total errors flagged in Search Console. Advisory vs. structural indexing errors should be differentiated.
7
Non-brand queries: high impressions, low CTR
Filter GSC → Performance → Queries → exclude brand terms → sort by Impressions → flag any query with 50+ impressions and CTR below 3%. These represent pages ranking but not compelling clicks — a keyword targeting or title/description optimisation opportunity. Enter the count of such queries once GSC data is available.
14
Pages with average time on site ≤ 10 seconds
No pages are recording critically low engagement times. No immediate content quality red flags from time-on-page signals.
0
Organic keyword footprint (GSC, 90 days)
Source: GSC → Performance → Search Results → set date to last 90 days → count total rows under the Queries tab. This is the number of unique search terms the site appeared for. For context on quality, also note the top 1–3 non-brand terms by impressions in the commentary.
512
Analyst Commentary — Organic Visibility
Search Visibility — Local & Entity Signals
Local SEO & Knowledge Graph
Amber — Review Required

For location-serving businesses, local search visibility is often the highest-converting SEO channel. Google Business Profile completeness, NAP consistency, and LocalBusiness schema collectively build the entity signals that underpin both local pack rankings and Knowledge Graph representation — increasingly relevant to how AI systems identify and cite local businesses.

77
GBP COMPLETENESS SCOREType: % complete e.g. 75
YES
NAP CONSISTENTType: Yes or No
54
Review Count (GBP)
4.6
AVG. STAR RATINGType: rating e.g. 4.2
4
GBP PHOTOSType: number of photos
Google Business Profile — claimed & verified
The GBP listing must be claimed and ownership verified. An unclaimed listing can be edited by anyone and sends weak local ranking signals.
✓ Pass
GBP — name, address and phone number accurate
Core NAP data must exactly match what is displayed on the website. Any discrepancy weakens local authority signals and confuses Google's entity understanding.
✓ Pass
GBP — primary and secondary categories set correctly
The primary category is the single most influential GBP ranking factor. Secondary categories expand the terms the listing can rank for.
✓ Pass
GBP — business hours complete and accurate
Missing or incorrect hours reduce user trust and are a common GBP completeness gap. Special hours (public holidays) should also be updated.
✓ Pass
GBP — business description present (up to 750 characters)
The description should include primary keywords and location naturally. It is not a direct ranking factor but supports entity context.
✗ Fail
GBP — photos present (exterior, interior, team, products/services)
Listings with photos receive significantly more direction requests and website visits. Minimum 10 photos across multiple categories is recommended.
✓ Pass
GBP — review response rate
Responding to reviews (both positive and negative) is a local ranking signal and a trust indicator for prospective customers and AI citation systems.
✗ Fail
NAP consistent across site, GBP, and key citation sources
Name, Address, and Phone should be identical (not just similar) across the website footer, contact page, GBP, Bing Places, Yell, and any directory listings.
✓ Pass
LocalBusiness schema on site
JSON-LD schema with @type: LocalBusiness (or more specific subtype), name, address, telephone, and openingHours. This is the primary on-site entity signal for both Google and AI systems.
✗ Fail
Google Maps embed on contact / location page
An embedded map reinforces the physical location entity signal and improves the contact page experience for users.
✗ Fail
Knowledge Panel present in Google for brand name search
A Knowledge Panel confirms Google has established a confident entity understanding of the business. Absence suggests entity signals need strengthening across GBP, schema, and Wikipedia/Wikidata.
✗ Fail
Bing Places and Apple Maps listings claimed
Bing and Apple Maps are secondary but meaningful local visibility channels, particularly relevant as AI assistants (Copilot, Siri) use these data sources directly.
✗ Fail
Expert Commentary — Local SEO & Knowledge Graph
Section 06 — AI Search Readiness
AI / LLM Visibility
Red — Critical Issues

AI-powered search engines — ChatGPT, Perplexity, Google AI Overviews and others — are now material discovery channels. Optimising for them requires a distinct technical framework that sits above and beyond traditional SEO. The six areas below define current best practice.

01 / 06
Bot Access & Crawlability
AI crawlers must be explicitly permitted in robots.txt and whitelisted in your WAF. Blocked bots mean invisible content.
GPTBot allowed in robots.txt
OAI-SearchBot allowed in robots.txt
ClaudeBot / Claude-Web allowed
PerplexityBot allowed
Google-Extended allowed
WAF / Cloudflare not blocking AI agents
02 / 06
Server-Side Rendering
Unlike Googlebot, most AI crawlers cannot execute JavaScript. Critical content must be in the raw HTML response.
No JS-only links detected (confirmed by crawl)
No JS-only body content detected
Core content accessible in response HTML
No infinite scroll blocking critical content
03 / 06
Semantic HTML & Vector Hygiene
AI models break pages into vector chunks. Semantic HTML and clean content boundaries improve extraction accuracy and relevance scoring.
Semantic tags in use (<article>, <main>, <section>)
Sequential H1 → H2 → H3 hierarchy
Cookie banners isolated from core content
Navigation boilerplate separated from body
H2/H3 sections form self-contained concepts
04 / 06
Server Response Time (TTFB)
AI RAG systems operate on tight latency budgets. TTFB above 600ms risks the site being skipped during live retrieval windows.
TTFB < 200ms (optimal for AI retrieval)
TTFB < 600ms (minimum acceptable threshold)
Consistent server response under load
05 / 06
Structured Data (Schema.org)
JSON-LD schema gives AI systems explicit, machine-readable confidence in content type and authority. No longer optional for brands that want to be cited in AI answers.
Organization schema implemented
Article / Product schema on relevant pages
FAQPage schema where appropriate
JSON-LD format (preferred over Microdata)
No schema validation errors
06 / 06
Metadata & Preview Directives
Restrictive meta tags prevent AI from using your content in answers. Timestamps signal freshness — a key citation ranking factor.
No nosnippet / data-nosnippet directives
No restrictive max-snippet:0 limits
Published / last-updated dates visible in HTML
Dates in schema (datePublished / dateModified)
Descriptive, semantic URL slugs
Self-referencing canonical tags present
Analyst Commentary — AI / LLM Visibility
Section 07 — Environmental Impact
Sustainability
Green — All Passing
CO₂ produced per page visit
Source: websitecarbon.com. Global average ~0.5g per visit. Target: under 0.3g = good. 0.3–0.6g = average. Over 0.6g = poor.
0.13 g
Carbon rating
A+ to F scale from websitecarbon.com. A+/A/B = clean (green), C/D = average (amber), E/F = poor (red).
B
Cleaner than X% of tested pages globally
Relative percentile from websitecarbon.com. 75%+ = good (green), 50–74% = average (amber), under 50% = poor (red).
69 %
Analyst Commentary — Sustainability
Section 08 — Recommendations
Priority Action Plan
Action Required

Actions are ordered by impact and urgency. Critical items affect the majority of the site and should be addressed first. Amber items are optimisation opportunities that compound the gains once critical issues are resolved.

#Recommended ActionSectionPagesPriorityStatus
01Write and implement meta descriptions for all 26 pages — unique, keyword-relevant, under 155 charactersOn-Page25/26CriticalRed
02Resolve multiple H1 tags — likely a CMS theme issue; each page must have exactly one H1On-Page20/26CriticalRed
03Add descriptive alt text to all linked images — use keyword-relevant descriptions reflecting the linked page's contentLinks26/26CriticalRed
04Shorten and optimise all title tags — lead with primary keyword, keep under 60 charactersOn-Page26/26HighAmber
05Update internal links pointing to the 2 redirect URLs — link directly to final destinationsCrawlability2HighAmber
06Review non-brand organic queries with high impressions but low CTR (under 3%) in GSC — these represent ranking opportunities where titles or descriptions are not compelling enough to earn the click. Filter GSC Performance → Queries, exclude brand terms, sort by Impressions.Organic4HighAmber
07Replace generic anchor text with descriptive, keyword-relevant alternatives site-wideLinks12 incomingMediumAmber
08Add internal links to the near-isolated page — ensure it receives equity from at least 3–5 relevant pagesLinks1MediumAmber
09robots.txt AI crawler audit — confirmed pass. Yoast-generated User-agent: * Disallow: permits all AI crawlers including GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot and Google-Extended. Verify Cloudflare WAF settings are not overriding this at the CDN layer.AI / LLMrobots.txtMediumGreen
10Implement JSON-LD schema — minimum: ProfessionalService / LocalBusiness (with address, telephone, geo, openingHours), Organization, and BreadcrumbList on all pages. No schema currently exists on the site. Highest single impact action for AI visibility and Knowledge Graph presence.AI / LLMSite-wideMediumRed
11Review GET method forms — assess POST method to prevent URL proliferation and crawl budget riskCrawlability2LowAmber
12Verify Google Tag Manager status — confirm whether deliberately absent or accidentally removedCrawlability26/26LowAmber
13Confirm HTTPS enforced site-wide and fix any mixed content issuesSecuritySite-wideHighGreen
14Add missing security headers (HSTS, CSP, X-Content-Type-Options) — run securityheaders.comSecurityServer configMediumRed
15Implement Open Graph tags on all key pages — og:title, og:description, og:image (1200×630px), og:urlSocial / OGAll pagesHighAmber
16Add Twitter Card tags — twitter:card (summary_large_image), twitter:title, twitter:description, twitter:imageSocial / OGAll pagesMediumRed
17Audit GBP completeness — categories, hours, description, photos, review responsesLocal SEOGBP listingHighAmber
18Verify NAP consistency across website, GBP, Bing Places, Yell and key directoriesLocal SEOMulti-sourceHighGreen
19Add LocalBusiness JSON-LD schema with full address, telephone, openingHours and geo coordinatesLocal SEOSite-wideMediumRed
20Claim and optimise Bing Places and Apple Maps listings to strengthen entity signals for AI assistantsLocal SEOOff-siteLowRed
21Set /category/uncategorized/ and /author/ pages to noindex via WordPress SEO plugin — these WordPress archive pages add no value and waste crawl budgetCrawlability2 pagesCriticalRed
22Add H1 tag to /insights/ page — currently the only page with no H1 at allOn-Page1 pageHighRed
23Write meta descriptions for the two new landing pages (/book-today-level-2 and /book-today-level-3)On-Page2 pagesHighAmber
24Suppress the Server HTTP response header to stop leaking web server software and version numberSecurityServer configMediumAmber
25Fix protocol-relative resource on homepage — change // to https:// in the resource URLSecurityHomepageLowAmber
Analyst Commentary — Final Recommendations
✏ Edit mode active — click any value, dot, or status pill to update · Changes save automatically