bksafetywear.co.uk / Full SEO Audit

Recovery Paid Ads
28 Apr 2026
SEO Score
42/100
Grade F
Technical
68/100
Content
35/100
On-Page
45/100
Schema
8/100
CWV
82/100
Passed
GEO Score
38/100
SXO
53/100
Active recovery situation — decline stabilising. Mass product deletion caused 4,118 GSC 404s. Revenue dropped from ~£112K to ~£20K/month. Weekly clicks plateaued at ~447 for 3 weeks (W15–W17); impressions ticking up. Only 55% of submitted URLs are indexed.
CategoryWeightScoreWeightedKey Issue
Technical SEO22%6815.0Charset iso-8859-1, viewport zoom block, no cache headers
Content Quality23%358.1Thin product/category content, stale blog, no E-E-A-T
On-Page SEO20%459.0Weak titles, 17 duplicate metas, 27 pages missing OG tags
Schema10%80.8Zero structured data on entire site
Performance (CWV)10%828.2Field data all Good. Lab score 45 (platform ceiling)
AI Readiness10%383.8No llms.txt, no FAQ content, uncitable passages
Images5%402.027 missing alt, no lazy load, no WebP/AVIF
Top 5 Critical Issues
#IssueSeverity
1Zero structured data (JSON-LD) on any pageCritical
2Thin/stale content: product descs <50 words, blog dormant 14 monthsCritical
34,118 historic 404s still suppressing authorityCritical
4No AI readiness: no llms.txt, no FAQ contentHigh
5Mobile regression: viewport zoom blocked, tiny fontsHigh
Top 5 Quick Wins
#ActionEffort
1Add Organization + WebSite JSON-LD to homepage2 hrs
2Create /llms.txt2-4 hrs
3Remove maximum-scale=1.0 from viewport30 min
4Resubmit sitemap to GSC (stale since Mar 2025)15 min
5Fix 17 duplicate meta descriptions2-3 hrs
Clicks (28d)
1,732
-39.1%
Impressions (28d)
271K
-34.7%
CTR
0.64%
-0.05pp
Avg Position
13.9
-1.9
Indexed Pages
2,314
55.2% of 4,194
Sitemap Submitted
Mar 2025
Over 1 year stale
Decline has stopped — stabilising. Three-week plateau: W15 443 → W16 450 → W17 447. Impressions nudging up to 71,787. Google has stopped the downward spiral; clear recovery signal not yet confirmed.
Weekly Trend GSC Web Search
WeekClicksImpressionsTrend
W06 (Feb)877118,358
W07 (Feb)798121,117
W08 (Feb)826118,856
W09 (Mar)756114,131
W10 (Mar)757113,529
W11 (Mar)809110,551
W12 (Mar)679106,769
W13 (Mar)63288,311
W14 (Apr)47370,042
W15 (Apr)44370,477
W16 (Apr)450 ↑70,183
W17 (Apr)44771,787 ↑
Top 20 Queries 28 days
QueryClicksImprCTRPos
bk safetywear2516215.4%1.0
portwest work trousers182,1300.8%5.7
portwest workwear161,2161.3%5.1
leo workwear152,6410.6%5.8
cotton polo shirts131,0221.3%5.5
orn workwear101,3340.7%6.2
portwest bib and brace83142.5%3.3
bk safety7729.7%1.3
traffic management uniform72626.9%1.0
bizweld overalls61215.0%3.0
portwest safety trainers62592.3%8.7
bk workwear53613.9%2.2
r238x5549.3%2.4
orn work trousers44230.9%7.7
portwest flame retardant trousers4527.7%5.9
portwest overalls44390.9%6.6
r238x gilet43212.5%2.3
railway clothing4765.3%14.8
workwear exeter4695.8%3.1
railway ppe clothing41921.1%1.1
Top 15 Landing Pages 28 days
PageClicksImprPos
/ (homepage)684,65814.6
/leo-workwear.html394,7526.9
/portwest-workwear-trousers.html355,1577.7
/hi-vis-railway-gort-clothing.html342,7178.5
/100-cotton-polo-shirts.html273,43410.1
/hi-vis-superior-exec-vests.html263,71710.5
/workwear-exeter.html261,22420.7
/orn-workwear.html254,5886.5
/portwest-footwear.html244,0008.6
/hi-vis-traffic-management.html2146112.4
/portwest-workwear.html213,05711.0
/security-jackets.html202,3728.9
/result-r238x-gilet.html193735.4
/recovery-workwear.html175055.4
/hi-vis-polo-shirts.html164,2889.7
GA4 Traffic by Channel 28 days
ChannelCurrentPreviousChangeBounce Rate
Organic Search2,8093,725-24.6%44.8%
Cross-network (PMax/DSA)1,4351,082+32.6%35.9%
Paid Shopping290590-50.8%40.7%
Paid Search7288-18.2%58.3%
Referral8387-4.6%34.9%
Score
68/100
HTTPS
Pass
HTTP/2
Pass
HSTS
1yr
Canonical
Present
robots.txt
Good
Charset
ISO-8859
should be UTF-8
Security Headers
HeaderValueStatus
Strict-Transport-Securitymax-age=31536000Pass
X-Content-Type-OptionsnosniffPass
X-Frame-OptionsSAMEORIGINPass
Content-Security-Policyframe-ancestors 'self'Basic
Permissions-PolicyNot setMissing
Cache-ControlNot setMissing
Technical Issues
IssueSeverityCount
Viewport zoom blocked (maximum-scale=1)Critical200+
iso-8859-1 charsetHighAll
No Cache-Control headersHighAll
Meta tags in <body>Medium86
No Permissions-PolicyLowAll
robots.txt
User-agent: * Disallow: /admin/ Disallow: /api/ Crawl-delay: 1 Sitemap: https://www.bksafetywear.co.uk/sitemap.xml
Score
35/100
E-E-A-T Avg
3.75/10
Blog Posts
22
last: Feb 2025
Avg Product Desc
<50w
target: 100-200
About Page
404
E-E-A-T Assessment
SignalScoreNotes
Experience3/10No first-hand experience content, no case studies
Expertise4/10Some technical blog posts but thin and dated
Authoritativeness3/10No Wikipedia entity, no industry awards, no named experts
Trust5/10Company address/phone present. No reviews, no certs page.
Content Depth
PageWordsAssessment
Homepage~32Marketing copy only. Dual H1.
Hi-Vis Clothing~40One sentence. No standards, no buying guide.
Footwear0Navigation tiles only. Zero body copy.
Product (A320 Gloves)34Far below 100-200 word optimum.
FAQ Page0Empty navigation shell. No Q&A content.
Blog (best post)~300EN ISO 20471 post is genuinely useful.
Workwear & PPE Buying Guide~2,5007-section guide with EN ISO standards, S-ratings, EN 388/374/407, EN 397/812, FFP classes, FR fabrics. Phosphor icon card TOC. Live — /workwear-buying-guides.html
Missing content: About Us page now live (30 Apr 2026 — page id 189). Buying guide now live (3 May 2026 — /workwear-buying-guides.html, 7 sections, ~2,500 words). Still missing: certifications page, FAQ content, case studies, standards compliance guide.
Score
45/100
Duplicate Metas
17
Missing OG Tags
27
Missing Alt Text
27
Broken Links
106
Title Tag Audit
PageCurrent TitleIssues
HomepageHi Vis Safety Wear, Workwear, Embroidery & PrintingNo brand Wasted chars
Hi-Vis ClothingHi Vis ClothingToo short No brand
FootwearFootwearToo short No brand
A320 GlovesPortwest A320 Dexti-Grip Gloves Nitrile FoamNo brand/price
ContactContact UsNo brand
Broken External Links (106)
TypeCountStatusAction
Portwest CloudFront PDFs4404Replace with current URLs
Leo Workwear downloads59500Replace with current URLs
Various external32502Investigate and fix
About Us page1LiveBuilt 30 Apr 2026 (page id 189)
Score
8/100
JSON-LD Found
0
Rich Results Eligible
7 types
none implemented
Zero structured data on the entire site. No JSON-LD, Microdata, or RDFa on any page. Competitors show price, availability, and review stars in SERPs.
Missing Schema Opportunities
Schema TypeTarget PagesRich ResultImpact
ProductAll product pagesPrice + availability in SERPsCritical
OrganizationHomepageKnowledge panelHigh
BreadcrumbListAll pagesBreadcrumb trails in SERPsHigh
FAQPageFAQ / buying guidesFAQ rich resultsHigh
WebSite + SearchActionHomepageSitelinks search boxMedium
LocalBusinessContact pageLocal knowledge panelMedium
BlogPostingBlog postsArticle rich resultsMedium
VideoObject19 Vimeo pagesVideo thumbnailsMedium
CWV Status
PASS
All Good
Lighthouse Mobile
45
Lab only
Lighthouse Desktop
69
Lab only
Best Practices
54
Investigate
Core Web Vitals: PASSED. All CrUX field metrics "Good". Google uses field data for ranking, not lab scores. The Lighthouse 45/100 is an artefact of throttled simulation hitting Bluepark's JS/CSS bundle.
CrUX Field Data (Real Users)
MetricMobile p75Desktop p75ThresholdStatus
LCP894ms711ms<2,500msGood
INP71ms34ms<200msGood
CLS0.000.002<0.1Good
FCP840ms612ms<1,800msGood
TTFB599ms416ms<800msGood
GEO Score
38/100
llms.txt
Missing
FAQ Content
None
Wikipedia
None
YouTube
None
Named Authors
None
GEO Dimension Scores
DimensionWeightScore
Citability25%32
Structural Readability20%38
Multi-Modal Content15%40
Authority & Brand20%28
Technical Accessibility20%55
Platform Readiness
PlatformScoreLimiting Factor
Google AI Overviews22No schema, thin content
ChatGPT35No llms.txt, short passages
Perplexity40Blog partially citable
Bing Copilot35No structured data
SXO Score
53/100
Page-Type Match
7/15
Content Depth
4/15
UX Signals
8/15
Authority
10/15
Page-type mismatch on highest-value queries. Google rewards hybrid category+editorial pages (EN ISO guidance, FAQs, buying guides on category pages). BK's category pages are pure grids. The GORT/railway page is the exception that ranks well and should become the template.
Search Intent Alignment
QueryDominant IntentBK PageMatchPriority
hi vis clothingTransactional + Compliance/hi-vis-clothing.htmlPartialHigh
safety workwear UKBrand trustHomepageLowHigh
PPE suppliers UKB2B evaluationNoneMissMedium
hi vis vest bulk buyVolume transactionalNoneMissHigh
workwear embroidery UKServiceLogin redirectCriticalCritical
railway hi vis GORTNiche compliance/hi-vis-railway-gort.htmlStrongMaintain
Persona Scoring Weakest first

Embroidery Buyer

23/100
No public landing page. Add-a-Logo requires login. No pricing, turnaround, or examples visible to Google.

Procurement Officer

42/100
No trade page, no visible volume pricing, no request-a-quote CTA.

Safety Manager

49/100
No EN ISO class filter, no standards guide page.

Sole Trader

63/100
Products right, but delivery vague, mobile zoom locked.

Rail Contractor

73/100
GORT page exists and ranks. Strongest alignment on site.
Product Schema
None
Reviews
0
on sampled products
GMC ID
12170831
Paid Shopping
290
-50.8%
Cross-selling
12/page
Product Page Signals
SignalStatus
Price (inc/exc VAT)Good
Stock countGood
Size/colour variantsGood
Quantity discountsGood
BreadcrumbsPresent
Related products12 shown
EN standardsPresent
Product schemaMissing
ReviewsEmpty
Description depth<50 words
OG tagsPresent
Missing E-commerce Signals
SignalImpact
Product schema (price in SERPs)Critical
AggregateRating (review stars)High
Bulk buy / trade landing pageHigh
Public embroidery pageCritical
EN ISO class filterHigh
Product comparison toolsMedium
Inline size guideLow
Target: 65/100 within 3 months. Addresses both 404 recovery (redirects, sitemap, indexation) and structural gaps (schema, content, AI readiness).
Actions completed
Week 1 Quick wins, highest impact per hour
#ActionEffortImpactPriorityStatus
1Remove maximum-scale=1.0 from viewport30 minFixes 200+ mobile/a11y errorsCritical
2Resubmit sitemap to GSC15 min55% indexation, stale URLs confusing GoogleCriticalDone16 Apr 2026
3Add Organization + WebSite JSON-LD2 hrsKnowledge panel, entity definitionHigh
4Create /llms.txt2-4 hrsHighest-signal GEO fileHigh
5Enable CF Polish + Auto Minify5 minAuto WebP, minificationLow
Week 2 Schema + on-page fixes
#ActionEffortImpactPriorityStatus
6Add Product JSON-LD to all product pages4-8 hrsRich results: price + availability in SERPsCritical
7Add BreadcrumbList JSON-LD2-4 hrsBreadcrumb trails in SERPsHigh
8Fix 17 duplicate meta descriptions2-3 hrsUnique keyword targetingHigh
9Add OG tags to 27 pages2-3 hrsSocial sharing / link previewsHigh
Weeks 3-4 Content + new pages
#ActionEffortImpactPriorityStatus
10Build public embroidery/printing service page1-2 daysNew keyword set, persona 23 → 60+Critical
11Add editorial content to Hi Vis Clothing page4-6 hrsEN ISO 20471 guidance, FAQ blockHigh
12Add editorial content to Footwear page3-4 hrsZero content currentlyHigh
13Rebuild About Us page (currently 404)3-4 hrsE-E-A-T, trust signalsHighDone 30 Apr
13bBuild Workwear & PPE Buying Guide — 7 sections covering EN ISO 20471, EN ISO 20345, EN 388/374/407, EN 397/812, EN 149, EN ISO 11612/11611. Card TOC with Phosphor icons.4-6 hrsTopical authority, long-tail standards queries, AI citation targetHighDone 3 May
14Rebuild FAQ page with real Q&A + schema1 dayFeatured snippets, AI citationHigh
Month 2-3 Expansion, cleanup, ongoing
#ActionEffortPriorityStatus
15Create bulk buy / trade landing page1 dayHigh
16Fix 106 broken external links4-6 hrsMedium
17Fix 27 missing alt text images1-2 hrsMedium
18Improve homepage title + fix dual H130 minMedium
19Add VideoObject schema to 19 Vimeo pages2-4 hrsMedium
20CF Worker: lazy loading for images2-4 hrsMedium
21Fresh blog content with named authorsOngoingMedium
22Improve product descriptions (top 50)LargeMedium
23Convert "Trusted By" logos to citable text1-2 hrsLow
24Build YouTube presenceOngoingLow
Score Trajectory
MilestoneScoreActions
Now42Baseline
After Week 145Viewport, sitemap, Org schema, llms.txt
After Week 252+ Product schema, BreadcrumbList, metas, OG tags
After Month 159+ Embroidery page, category editorial, About, FAQ
After Month 263+ Trade page, broken links, alt text, titles
After Month 365+ Blog, product descs, lazy loading
With 404 recovery70+ Organic authority restoration
Products Merged
33
pairs → multi-colour listings
Retiring SKUs Archived
33
shells in cat 2254 for Google
Pairs Skipped
3
pre-existing data issues
Improvements Needed
8
swatches, images, slugs
Completed
24 Apr 2026
Improvements Needed
#IssuePriorityDetails
1Colour swatches missing on all 33 productsHighNo hex colour values set — customers see plain text dropdowns. H75/H76/H68/H69 already have swatches; fix via PUT with #FFFF00 (Yellow), #FFA500 (Orange), #003087 (Navy).
2H148 variant images — 6/14 onlyHighOrange variants had no images in original H149. Affected rows show placeholder. Needs DELETE + POST redo with images baked in (product id=17303).
3H131 variant images — 7/14 onlyHighYellow/Navy variants had no images in original H132. Same DELETE + POST redo required (product id=17451).
4H66 Yellow variants — 4 missing fieldsMedium7 Yellow variants from retired H67 are missing: thumbnail_image, basket_image, country_of_origin, low_stock_threshold. DELETE + POST redo.
5H112 Yellow/Navy variants — same fields missingMedium7 Yellow/Navy variants from retired H112Y likely have same 4 missing fields. Verify and DELETE + POST redo if confirmed.
616 stale URL slugs contain single colour nameMediumSlugs like h133-hi-vis-2-tone-orange-polo-shirt are now multi-colour products. Won't break rankings but misleading. Can be fixed via PUT (url_text change = no redirect needed, Bluepark handles old slug).
7H37 description may be blankMediumDuring original merge run, first POST attempt hit 429 rate-limit. Recovery re-ran successfully but page_content field should be audited — check the live page and restore from H37 backup if blank.
8Cat 2254 shells may appear in related productsLowBluepark's related-product algorithm may surface the 33 archived shells (cat 2254). Adding a title prefix like "[Archive]" would push them out of the related widget.
All 33 Merged Products Base SKU kept its URL · Retiring SKU archived in cat 2254
# Base SKU Title Retiring SKU Colours now available
1318XXHi Vis 2 Tone Hooded Zipped Sweatshirt318XXY Orange/Navy   Yellow/Navy
236SHi Vis Softshell Jacket36SY Orange   Yellow
3H22Hi Vis Interactive BodywarmerH23 Yellow/Navy   Orange/Navy
4H26Hi Vis Breathable 2 in 1 Bomber JacketH27 Yellow   Orange
5H28Hi Vis Breathable TrousersH29 Yellow   Orange
6H31Hi Vis Standard ParkaH32 Yellow   Orange
7H33Hi Vis 2 Tone ParkaH34 Yellow/Navy   Orange/Navy
8H35Hi Vis Standard Storm Bomber JacketH36 Yellow   Orange
9H37Hi Vis 2 Tone Bomber JacketH38 Yellow/Navy   Orange/Navy
10H39Reversible Fleece Lined BodywarmerH40 Yellow/Navy   Orange/Navy
11H41Hi Vis OvertrousersH42 Yellow   Orange
12H43Hi Vis Fleece JacketH44 Yellow   Orange
13H45Hi Vis Fleece Jacket - Rain PatchH46 Yellow/Navy   Orange/Navy
14H49Hi Vis CoverallH50 Yellow   Orange
15H53Hi Vis ShortsH54 Yellow   Orange
16H66Hi Vis Crew Neck SweatshirtH67 Yellow   Orange
17H1092 Tone BodywarmerH110 Yellow/Navy   Orange/Navy
18H112Hi Vis 2 Tone Hooded SweatshirtH112Y Orange/Navy   Yellow/Navy
19H114Hi Vis Executive Vest (Yellow base)H115 Yellow   Yellow/Navy
20H116Hi Vis Executive Vest (Orange base)H117 Orange   Orange/Navy
21H127Hi Vis 2 Tone OvertrousersH128 Yellow/Navy   Orange/Navy
22H129Hi-Vis Lite RainsuitH130 Orange   Yellow
23H131Hi-Vis 2 Tone SweatshirtH132 Orange/Navy   Yellow/Navy
24H133Hi-Vis 2 Tone Polo ShirtH134 Orange/Navy   Yellow/Navy
25H135Hi-Vis 2 Tone Long Sleeve Polo ShirtH136 Orange/Navy   Yellow/Navy
26H137Hi-Vis 2 Tone T-ShirtH138 Orange/Navy   Yellow/Navy
27H139Hi-Vis 2 Tone Combat TrousersH140 Orange/Navy   Yellow/Navy
28H141Hi Vis 2 Tone Softshell JacketH142 Yellow/Navy   Orange/Navy
29H144Hi Vis 2 Tone Puffer JacketH145 Yellow   Orange
30H146Hi Vis 2 Tone Puffer BodywarmerH147 Yellow   Orange
31H148Hi Vis Puffer JacketH149 Yellow   Orange
32HVRS1Hi Vis 2 Tone Rugby ShirtHVRS1Y Orange   Yellow/Navy
33HVZH1Hi Vis Zipped HoodieHVZH1Y Orange   Yellow
Pairs Skipped — Pre-existing Data Issues
PairProductReason
H58 + H59Combat TrousersH58 has duplicate size label — position 11 is "38R" but should be "48R" (190 units affected). No barcodes on either product.
H60 + H61Polycotton TrousersH61 has 16 sizes, H60 only 14 (missing 26R/28R). Grid would be uneven. No barcodes on either.
H62 + H63Elasticated TrousersIncompatible size naming — H62 uses W-prefix (W26, W28…), H63 uses bare numbers. H63 also missing W32/W34/W36.
How the Merge Works

Each merge uses merge-colours.py <BASE> <RETIRING> --live and runs 5 steps:

  1. DELETE the retiring SKU — frees its variant SKUs
  2. DELETE the base SKU
  3. POST a combined product (base SKU, both colour grids, images baked in)
  4. Delta check — verifies options, variants, stock, SKUs, barcodes
  5. POST shell — recreates retiring SKU in cat 2254 to preserve its URL for Google

The retiring product must be deleted before the combined POST — if it still exists, Bluepark creates blank-SKU variant slots that PUT cannot fix.