- Create includes/blog-article-head.php with full HTML head + BlogPosting
JSON-LD schema (Organization author, OG/Twitter tags)
- Wire blog-article-head.php into all 6 blog articles (were missing DOCTYPE/head)
- Rewrite blog/search.php: only real articles, standard includes, noindex
- Simplify author-bio.php: remove invented fictional authors, org entry only
- Sitemap: add lastmod 2026-03-21, add case-studies and faq URLs
- Fix faq.php page title (redundant AI Automation duplicate removed)
- Organization schema: replace fake London address with Norfolk
- Update geo coordinates to North Walsham, Norfolk
- Footer: change LinkedIn from personal peter-foster profile to company page
- Remove old sitemaps pointing to ukdataservices.co.uk URLs
- Delete llms.txt/llms-full.txt (had ukdataservices references)
- Replace all web scraping text in PHP files with AI automation equivalents
- Add noindex to legal boilerplate pages (privacy, terms, cookie, GDPR) to prevent duplicate content penalty
- Fix OG/Twitter social card images from ukds-* filenames to ukaiautomation-*
- Fix lead-capture.php to write logs to ukaiautomation directory
- Fix sitemap.php, quote-handler, canonical.php, related-services component
- Add 32 missing articles to blog page 2 with working pagination
- Strip .php extensions from all blog article links (blog/index.php, article-footer.php)
- Remove unverified aggregateRating from Organization schema
- Remove empty telephone fields from Organization schema
- Fix broken tel: link in homepage contact section (+44 1692 689150)
- Update footer Twitter link to x.com
- Create llms-full.txt for AI crawler indexing
- Assign named authors to all 14 blog articles that defaulted to Editorial Team
- Replace team-based author labels (DevOps Team, Legal Team etc) with named authors
- Update 2025 -> 2026 in ecommerce trends, buyers guide, and python pipeline titles
- Remove phone number (01692 Norfolk) from all pages and schema
- Anonymise unverifiable case study clients (TechElectronics UK, Heritage Bank UK)
- Add clickable Companies House link (08576932) to footer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove ICO Registration placeholder from footer
- Remove 'ICO registered' claims from about.php meta description
- Remove 'ICO registered' from web-scraping.php meta description and body copy
- Remove VAT No placeholder from footer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix founding year from 2018 to 2015 across about.php, organization-schema.php, and index.php schema
- Standardise data accuracy rate to 99.8% across about.php and services/web-scraping.php (was 99.7%/99.9%)
- Remove google-oauth-callback from sitemap.xml
- Fix UK Gambling Commission logo alt text (remove misleading 'regulatory compliance' label)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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
- 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
- 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
- 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
- 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
- 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>
- 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>
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>