1. Updated homepage meta tags:
- Title: Web Scraping Services UK | 99.8% Accuracy & GDPR Compliant
- Description: Enterprise-grade web and data scraping services...
2. Created dedicated service pages:
- /web-scraping-services/ - targets web scraping services (193 impressions)
- /data-scraping-services/ - targets data scraping services (118 impressions)
3. Pages include:
- SEO-optimized titles and descriptions
- Industry-specific content
- Stats highlighting #1 ranking and 99.8% accuracy
- GDPR compliance emphasis
- Links to free tools
Based on Google Search Console data showing 90,815 impressions/month but only 0.1% CTR.
Goal: Increase CTR to 1%+ and capitalize on #1.2 ranking for web scraping services in uk.
Adds `*, *::before, *::after { cursor: inherit }` after the html/body
cursor:default rules. This forces explicit inheritance at every element
level, which is the only reliable cross-browser fix (Chrome, Firefox,
Safari all differ in how cursor auto-resolution works on text content).
Restores cursor:pointer for links/buttons and cursor:text for inputs.
Browser UA stylesheet sets cursor:auto on <html>, causing I-beam cursor to
flash on text content in Firefox/Safari even with body{cursor:default}.
Adding cursor:default to the html{} block in both CSS files ensures the
root element has explicit arrow cursor everywhere.
- .htaccess: remove duplicate cache block that set all CSS/JS to max-age=31536000
CSS/JS now use max-age=3600 must-revalidate (was 1 year, breaking live edits)
- index.php: bump main.min.css version v1.1.3 -> v1.1.4
- All 78 PHP files: add ?v=20260222 to main.css and cro-enhancements.css refs
Forces browser cache bust for all pages after todays accessibility changes
- Darken #179e83 -> #148069 for backgrounds with white text (3.36->4.86:1)
- Darken #148a72 -> #148069 for green text on white (4.27->4.86:1)
- Darken trust-heading #6c757d -> #5c6370 on #f8f9fa (4.45->5.73:1)
- Switch #00cc66 bg elements (sticky CTA btn, case-study metric) to dark text
- Fix .btn:link color: inherit -> white (was inheriting body #333 instead of white)
- Add .btn:hover lift/shadow for bare .btn class
- cursor: default on body (stops I-beam appearing on non-interactive text)
- cro-enhancements: add role=complementary + aria-label to sticky CTA bar
- Replace btn/btn-secondary on CTA buttons with cta-btn/cta-btn-outline
(isolated from global .btn-secondary { color: #144784 !important } cascade)
- Rename author-bio inner classes (author-info -> bio-info, etc.) to prevent
collision with article inline <style> .author-info definitions
- Both issues were CSS class name conflicts, not specificity bugs
- CTA box btn-secondary: add !important to override global .btn-secondary
(white text was being overridden by global color: #144784 !important)
- Article body links: #148a72 (3.9:1) -> #0b6b54 (5.2:1) — passes WCAG AA
- Pricing note text: #999 -> #6b7280 on white/light bg (2.6:1 -> 4.6:1)
- Card placeholder text: #999 -> #6b7280 on #f8f9fa (2.5:1 -> 4.6:1)
- Footer #ccc on #151f25 confirmed fine (9.5:1) — no change needed
- Delete all .bak files from web root (security fix)
- Regenerate sitemap-blog.xml with all 41 articles and correct lastmod dates
- Improve homepage meta description (more specific, no contract mention)
- Add FAQPage schema to Python pipeline article (4 Q&As)
- Fix London analytics article: author, meta description updated
- Add contextual inline links to 4 articles -> service pages
- Remove includes.bak.20260210 directory
- Remove author-bio.php and article-footer.php duplicate inclusions from
inside related article cards across 17 articles (was rendering 4x per page)
- Create /assets/images/authors/ with SVG avatars for all 7 named authors
- Move inline <style> block out of author-bio.php into main.css
- Remap 20 articles from generic team names (UK Data Services Legal Team,
Analytics Team, Technical Team etc.) to matching named authors from the
author database (Sarah Chen, David Martinez, Michael Thompson, etc.)
- Add 5 new named authors to author-bio.php: Alex Kumar, David Thompson,
Emily Roberts, Michael Chen, Sarah Mitchell
- Eliminates author name/bio mismatch where team name showed but
Editorial Team bio/role rendered instead
- Rewrite meta descriptions on 4 high-impression articles (churn, compliance, data quality, ecommerce)
- Fix data-quality-validation-pipelines title & description to capture zero-click statistical validation queries
- Add FAQPage schema to churn prediction and data quality articles
- Add service CTA box to article-footer.php (appears on all blog articles)
- Add responsive CSS for CTA box in main.css
- Add nav.php include to 5 missing pages (cost-calculator, thank-you, 403, 404, 500)
- Add ErrorDocument directives to .htaccess for custom 403/404/500 pages
- Fix bogus accuracy stats (homepage, web-scraping, location pages)
- Fix invisible CTA buttons on property and financial service pages
- Add Google Fonts (Roboto Slab + Lato) to all pages missing it (tools, blog articles, error pages)
- Add active nav link highlighting (teal underline for current page)
- Improve footer contrast to WCAG AA, equal-height cards, mobile text scaling
- Consistent navbar-to-content spacing across all pages
- Bump cache version to v1.1.3
- Updated 30 additional files to use shared includes/nav.php
- Fixed references to old navbar.php and header.php nav includes
- All 52 pages now use single shared navigation
- Refactored navigation: all 44 pages now use shared includes/nav.php
- Added Free Tools link to navigation (was missing from 29+ pages)
- CSS readability: darker body text (#333), secondary text (#555), bolder hero subtitle
- CSS: darkened link colour (#148a72) for WCAG AA compliance
- CSS: increased stat label font size to 1rem
- Fixed industry-card hover white-on-white text bug
- Removed ICO Registered and Cyber Essentials claims (not yet registered)
- Cache version bumped to v1.1.2
- Base .btn now defaults to green bg (#148069) with white text
- .cta-section .btn on /tools page now explicitly sets color: white
- Fixes WCAG AA contrast failure where dark grey text (#444) was on dark blue bg (#144784)
- All bare .btn elements across site (tools, blog articles, error pages) now have visible text
- Rewrite meta titles to be more compelling with power words and 2026 dates
- Shorten meta descriptions to ~150 chars with clear CTAs
- Remove double-branding from title tags (was: title | UK Data Services | UK Data Services Blog)
- Update internal cross-links between related scraping/analytics articles
- Focus: top 10 pages by impressions from Google Search Console
- Hide Apache version (ServerTokens Prod)
- Add Permissions-Policy header
- Remove deprecated X-XSS-Protection
- Consolidate security headers to .htaccess only (remove duplicates from PHP)
- Deploy free tools: robots-analyzer, data-converter
- Deploy tools announcement blog post
- Update sitemap with new tools and blog post
- Add ~300 words of SEO-friendly content before the form:
- How the quote process works (24-hour response)
- What to include in request (data sources, fields, format)
- Trust signals (500+ projects, GDPR compliant)
- Transparent pricing (projects from £500)
- Add noscript fallback with contact details for users without JS:
- Email: hello@ukdataservices.co.uk
- Instructions on what info to include
Fixes issue where JS-disabled visitors saw only a title with no form or contact info.
- Fix .htaccess to allow individual service pages instead of redirecting all to project-types
- Add /services/web-scraping page with full content, schema markup, and SEO optimization
- Add /contact redirect to /quote (301)
- Update project-types.php title to remove C# jargon
- Add trust badges section to footer (GDPR, ICO, Cyber Essentials, UK Based)
- Add Web Scraping to footer services list
- Add /services → /project-types 301 redirects in .htaccess
- Remove .php extensions from all user-facing links across all pages
- Rewrite homepage hero with benefit-focused H1, subtitle, CTAs, and stats
- Add trust signals section below hero with badges
- Rewrite service cards with benefit-focused copy
- Update FAQ schema to match actual page FAQ content (6 questions)
- Restructure quote form from 5-step to 3-step wizard with sidebar
- Update about page mission statement and CTA copy
- Update project-types page title, H1, and add Organization schema
- Add trust signals and quote layout CSS styles
- Clean sitemap: remove .php extensions, remove blog/search, update dates
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix color contrast: change #179e83 to #148069 for WCAG AA compliance
- Add ARIA attributes to mobile nav toggle (aria-expanded, aria-controls)
- Implement focus trap on mobile menu with Escape key support
- Add aria-hidden to decorative hero SVG
- Add ARIA validation to contact form (aria-invalid, aria-describedby)
- Fix touch target sizes (notification close button 48x48px)
- Fix form session expiration by relaxing timestamp validation
- Add cache busting (v1.1.0) to JS/CSS files
- Update service worker cache version to force refresh
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix meta titles exceeding 60 chars on property/financial service pages
- Replace keyword-stuffed hero subtitle with natural, user-focused copy
- Add trust badges section (ISO 27001, GDPR, insurance, ratings)
- Add WebPage schema to homepage for better SERP eligibility
- Shorten about page H1 from 74 to 24 characters
- Add related services cross-linking on competitive intelligence page
- Remove obsolete SEO planning files
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add leadership team section to about.php with 4 team members
- Add visible FAQ section to homepage with accordion functionality
- Fix broken blog category link (legal-&-compliance → compliance)
- Add Twitter Card and og:image meta tags to data-cleaning.php and quote.php
- Add social links to 5 pages missing them (data-cleaning, quote, case-studies, blog/search, faq-enhanced)
- Standardize LinkedIn URLs across 24 blog files (remove www prefix)
- Fix social media placeholder links across 8 pages
- Optimize meta descriptions on 3 service pages (under 160 chars)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 1 - Schema Markup:
- Add reusable schema components in /includes/schema/
- organization-schema.php for site-wide Organization structured data
- service-schema.php with generator function and predefined configs
- local-business-schema.php for location pages with geo coordinates
- faq-schema.php with FAQPage generator and common FAQ sets
- article-schema.php for blog posts with BlogPosting schema
- review-schema.php with AggregateRating and testimonials
Phase 6 - Meta Tags & Helpers:
- meta-tags.php: Complete meta tag generator (OG, Twitter, article)
- canonical.php: URL normalization and canonical tag helper
- url-config.php: Centralized URL mapping for internal linking
Phase 7 - Internal Linking Components:
- related-services.php: Cross-linking component for service pages
- location-cta.php: Location links component for service pages
Phase 3 - New Service Pages:
- property-data-extraction.php: UK property data extraction service
- financial-data-services.php: FCA-aware financial data services
Phase 5 & 8 - Technical SEO:
- Update robots.txt with improved blocking rules
- Update sitemap.php with clean URLs and new pages
- Update sitemap-services.xml with new service pages
- Add new services to footer navigation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The minified JS was out of sync with the source file, missing the
grecaptcha integration, XMLHttpRequest header, and interaction token
that the server-side handler requires.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
SEO Improvements:
- Add Twitter/OG meta tags to gdpr-compliance.php and terms-of-service.php
- Add author bios with E-E-A-T signals to all blog articles
- Add breadcrumb schema markup to key pages
- Create new service pages: price-monitoring.php, competitive-intelligence.php
- Create location pages: london.php, manchester.php, birmingham.php
- Update sitemap.xml with new pages
UI/CSS Improvements:
- Move testimonials section from inline styles to CSS classes
- Standardize hero gradients to #144784 → #179e83 across all pages
- Unify card border styles to border-left: 4px solid #179e83
- Fix CTA gradient direction consistency on location pages
- Standardize breadcrumb colors to #144784
- Replace all purple accent colors (#667eea, #764ba2) with brand colors
- Add CSS variables for brand consistency in main.css
Code Cleanup:
- Delete 6 emergency CSS fix files (button-emergency-fix.css, etc.)
- Remove related-articles-fix.css references from blog articles
- Consolidate styles into main.css
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>