2 locations Reviews: 5.0 & 4.9 Mobile LCP 9.0s ~36 pages indexed
SEO Score
45/100
Grade D
Technical
52/100
Content
45/100
On-Page
48/100
Schema
30/100
CWV
50/100
LCP 9.0s
Local
44/100
GEO
34/100
SXO
45/100
YMYL healthcare site with structural gaps. Two-location independent opticians with zero LocalBusiness schema, no dedicated location pages, 9s mobile LCP (Divi inline CSS), unnamed clinical author on YMYL content, and live placeholder content on an indexed page.

Score Breakdown

CategoryWeightScoreWeightedKey Issue
Technical SEO22%5211.4No sitemap in robots.txt, dead UA tag, viewport zoom blocked
Content Quality23%4510.4Thin service pages, unnamed author "Zeliha", no E-E-A-T
On-Page SEO20%489.6Short titles, no location keywords, missing meta descriptions
Schema10%303.0No LocalBusiness, no AggregateRating, dateModified bug
Performance10%505.0Mobile LCP 9.0s (320KB inline CSS), 371KB unused JS
AI Readiness10%343.4No llms.txt, marketing headings, no FAQ schema
Images5%452.3Empty alt text, no lazy loading, hero is CSS background-image

Top 5 Critical Issues

#IssueSeverity
1No dedicated location pages for Chigwell or DunmowCritical
2320KB inline CSS causing 9.0s mobile LCPCritical
3Zero LocalBusiness/Optician schemaCritical
4Author "Zeliha" has no credentials (YMYL)High
5Live "[Insert Address]" on indexed blog postCritical

Top 5 Quick Wins

#ActionEffort
1Add Sitemap directive to robots.txt5 min
2Remove dead UA analytics tag10 min
3Fix viewport: remove maximum-scale=1.05 min
4Increase HSTS max-age to 1 year5 min
5Noindex /category/uncategorized/10 min
Score
52/100
HTTPS
Pass
HTTP/2
Pass
HSTS
7 days
should be 1 year
Canonical
Present
robots.txt
Partial
no sitemap directive
IndexNow
Missing

Security Headers

HeaderValueStatus
Strict-Transport-Securitymax-age=604800Weak
X-Content-Type-OptionsnosniffPass
X-Frame-OptionssameoriginPass
Permissions-PolicyPresentPass
Referrer-Policyorigin-when-cross-originPass
Content-Security-PolicyNot setMissing

Issues

IssueSeverity
Viewport zoom blockedCritical
320KB inline CSS (Divi)Critical
Dead UA analytics tagCritical
/category/uncategorized/ indexedHigh
Author archives exposedHigh
Date-based blog URLsHigh
Dual H1 on homepageMedium
Score
45/100
Blog Posts
12
latest: Mar 2026
Avg Service Page
~450w
target: 800+
Named Practitioners
0
YMYL gap
Meta Descriptions
Missing

E-E-A-T Assessment

YMYL Healthcare
SignalScoreNotes
Experience5/10Zeiss Forum tech, MiYOSMART clinical references. No case studies.
Expertise3/10Author "Zeliha" has no surname, GOC number, or credentials.
Authoritativeness4/10GOC mentioned but not linked. College of Optometrists referenced.
Trust7/10Excellent reviews (5.0/105, 4.9/75). Full NAP. Privacy policy.

Content Depth

PageWordsAssessment
Homepage~400Brand messaging only. Dual H1.
Eye Care~400Three services briefly described.
Myopia Management~450Good stats cited. Thin sections.
Seiko Lenses~1,000Best service page. Technical detail.
Professional Fees~1,200Clear pricing, NHS/private split.
FAQ~2,80022 Q&As. No FAQPage schema.
Blog (avg)~1,200Newer posts cite sources.
YMYL author gap: All 12 clinical blog posts attributed to "Zeliha" with no surname, GOC number, or bio. Only named practitioner: "Amandeep Matharu" in the FAQ complaints section.
Score
30/100
JSON-LD
1/page
LocalBusiness
Missing
AggregateRating
Missing
FAQPage
Missing

What Exists

TypeStatus
OrganizationBasic (no logo/sameAs)
WebSite + SearchActionValid
BreadcrumbListHomepage item URL missing
Person (author)Thin: no credentials
Article (blog)dateModified bug

What's Missing

TypePriority
Optician / LocalBusiness (x2)Critical
AggregateRatingCritical
OpeningHoursSpecificationCritical
FAQPageHigh
Service / MedicalProcedureHigh
Schema bugs: Blog dateModified precedes datePublished. BreadcrumbList position 1 missing item URL. Article headline includes brand suffix.
Mobile Perf
70/100
Desktop Perf
91/100
Accessibility
66/100
Best Practices
96/100
PSI SEO
100/100
Perfect

Core Web Vitals

Lab data (no CrUX)
MetricMobileDesktopTargetStatus
LCP9.0s1.9s< 2.5sFAIL
FCP2.3s0.6s< 1.8sNeeds work
TBT120ms10ms< 200msPass
CLS0.0750.041< 0.1Pass
TTI12.2s2.3s< 3.8sFAIL
Root cause: Divi injects 320KB CSS inline into <head>. No <link rel="preload"> for hero image. Resolves with Astro rebuild.

Unused JavaScript

371 KB wasted
ScriptTotalUnusedNotes
gtag.js (GA4)163 KB67 KBActive
gtag.js (dead UA)124 KB64 KBDead since 2023
chatwith.tools~160 KB~130 KBChat widget
Divi scripts.min.js71 KB46 KBTheme JS
Score
44/100
Locations
2
Chigwell + Dunmow
Location Pages
0
Maps Embeds
0
Local Schema
None

Location Data

ChigwellDunmow
Address173 Manor Road, IG7 5QB35 High Street, CM6 1AB
Phone020 8928 150001371 876 044
HoursTue-Fri 9-5, Sat 9-1 (Closed Mon)Mon-Fri 9-5, Sat 9-1
Reviews5.0 (105)4.9 (75)
Review scores are exceptional. 5.0/105 and 4.9/75 are the strongest local SEO asset. However, these are static text with no AggregateRating schema.

Local SEO Gaps

IssueImpactSeverity
No dedicated location pagesGoogle surfaces contact page for DunmowCritical
No Maps embedMissing local trust signalHigh
No LocalBusiness schemaZero structured local dataCritical
Live "[Insert Address]"Indexed incomplete contentCritical
No NHS directory listingHighest-authority UK optician citationHigh
GEO Score
34/100
Citability
30/100
Authority
25/100
llms.txt
Missing

AI Platform Readiness

PlatformScoreGaps
Google AI Overviews25No schema, no FAQPage, weak E-E-A-T
Bing Copilot30Needs structured data + named authors
ChatGPT35Crawlable but passages too short
Perplexity40Best: blog with sourced stats usable
Strongest citable content: Myopia Management page and World Glaucoma Week post. Both cite professional bodies. These should be templates for all future content.
SXO Score
45/100
Type Alignment
6/15
Content Depth
7/15
UX Signals
8/15

Page-Type Mismatch

KeywordSERP ExpectsSite ServesMismatch
opticians chigwellLocal PageHybrid/BrandingCritical
opticians dunmowLocal PageContact pageCritical
eye test essexLocal + ServiceNot rankingCritical
myopia management essexService+ContentThin pageHigh
seiko lenses essexService PageService PageAligned
Page-type mismatch is the #1 SXO issue. Google surfaces the contact page for Dunmow queries. Competitors all have dedicated branch pages.

Persona Scoring

Local Searcher

50/100
Cannot find hours or map on landing page.

Anxious Parent

53/100
Page leads with statistics not reassurance.

Premium Buyer

61/100
Best served. Seiko page has depth.

NHS Booker

44/100
Homepage says "LUXURY". NHS info buried.

Dunmow First-Timer

44/100
No Dunmow-specific content exists.
Progress
0 / 28 (0%)
Actions are ranked by value (score impact) against complexity (effort required). Start at the top of each group and work down.

High Value, Low Complexity

Best ROI — do these first
#ActionComplexityValue
1Fix live "[Insert Address]" placeholder on indexed blog postTrivialRemoves embarrassing live error from Google index
2Add Sitemap: directive to robots.txtTrivialBing/Yandex/DuckDuckGo can discover the sitemap
3Remove dead UA-219553460-1 analytics tagTrivialSaves 124 KB + network round trip per page load
4Fix viewport zoom block (maximum-scale=1.0)TrivialFixes WCAG violation and Google accessibility flag
5Noindex /category/uncategorized/ and author archivesTrivialRemoves thin content and exposed usernames from index
6HSTS max-age from 7 days to 1 year (Cloudflare toggle)TrivialSecurity improvement, HSTS preload eligibility
7Enable IndexNow in SmartCrawlTrivialInstant Bing/Yandex notification on content changes
8Add <link rel="preload"> for hero background imageTrivialMeasurable mobile LCP improvement
9Add Google Maps embeds to contact page (both locations)SimpleBasic local trust signal for a physical healthcare practice
10Surface NHS availability on homepage and eye care pageSimpleAddresses weakest persona (NHS Booker, 44/100)
11Create /llms.txt with curated page indexSimpleAI crawler prioritisation signal, growing in importance
12Fix schema bugs (dateModified, breadcrumb, headline suffix)SimpleStops sending broken signals to Google's indexing pipeline

High Value, Medium Complexity

Strong impact, moderate effort
#ActionComplexityValue
13Add Optician/LocalBusiness schema for both locations with AggregateRatingModerateCore local pack signal. Enables star ratings in SERPs. Reviews (5.0/105, 4.9/75) currently invisible to search.
14Write meta descriptions for all pages with location keywordsModerateControls SERP messaging on every page. Currently auto-generated.
15Add FAQPage schema to /frequently-asked-questions/Moderate22 existing Q&As become AI-citable. Potential AI Overview inclusion.
16Optimise all service page titles with location keywordsSimple"Eye Care | The Opticians" (24 chars) wastes ranking opportunity. Add Chigwell/Dunmow/Essex.
17Convert H2 marketing slogans to question-format headingsModerate"LET'S TACKLE MYOPIA!" becomes "What is myopia management?" Directly improves AI citation.
18Contextualise booking CTAs per pageSimple"Book Online" everywhere becomes "Book a Myopia Assessment", "Book a Lens Consultation". Conversion improvement.

High Value, High Complexity

Strategic projects — biggest impact
#ActionComplexityValue
19Create dedicated /chigwell/ and /dunmow/ location pagesSignificant#1 structural change for local SEO. Solves the page-type mismatch causing Google to surface the contact page for Dunmow. Each page needs unique content, schema, map, hours, reviews.
20Add named optometrist profiles with GOC credentialsSignificantSingle most important E-E-A-T signal. Currently zero named practitioners on a YMYL health site. Needs full names, GOC numbers, photos, bios.
21Expand Eye Care page from ~400 to 800+ wordsModerateFlagship service page is too thin. Needs "what to expect", process explanation, FAQ section.
22Restructure Myopia Management page for parent intent + FAQModerateCurrently not ranking for "myopia management essex". Competitors (Wild Apple, Leightons) have deeper parent-framed content with process steps.

Moderate Value

Worth doing, lower priority
#ActionComplexityValue
23Categorise blog posts properly (9 of 12 are "Uncategorized")TrivialBetter taxonomy, cleaner archive pages
24Update copyright from 2023 to dynamic yearTrivialMinor trust signal
25Evaluate chatwith.tools chatbot (155KB wasted JS)SimplePotential significant performance improvement if removed

Rebuild Items

Part of the Astro migration
#ActionComplexityValue
26Eliminate 320KB inline CSS (resolves automatically with Astro)RebuildMobile LCP 9.0s → <2.5s. This is the single biggest performance bottleneck and is architectural to Divi.
27Change blog URLs from /YYYY/MM/DD/slug/ to /blog/slug/ with 301sRebuildEvergreen URL structure. Date-based URLs make content look stale.
28Build schema into Astro templates (LocalBusiness, FAQ, BlogPosting)RebuildStructural, maintainable schema rather than plugin-generated.

Score Trajectory

MilestoneScoreActions
Now45Baseline
High Value / Low Complexity done55Quick wins: placeholder, robots, UA, viewport, schema fixes, Maps, HSTS
+ Medium Complexity done63+ LocalBusiness schema, meta descriptions, FAQPage, titles, headings
+ Strategic projects done72+ Location pages, practitioner profiles, content expansion
After Astro rebuild78+ 320KB CSS gone, clean URLs, built-in schema
SEO Audit · 16 April 2026