- Improve text contrast from #666/#888/#999 to #555/#6b6b6b across site (WCAG AA)
- Fix aside nesting in all 10 blog articles (aside→div in related-articles)
- Fix aside nesting in quote sidebar
- Update CRO enhancement CSS/JS inline colors
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
meta-tags.php only defines PHP functions, outputs nothing. The page had no
<!DOCTYPE html>, <html>, <head>, or CSS link — browser rendered it as an
unstyled text document. Replaced with a proper HTML head section.
style-src without unsafe-inline blocks all inline style= attributes,
breaking logo sizing, section layouts, and any element with inline CSS.
script-src retains nonces for actual XSS protection — style-src unsafe-inline
is safe and necessary for the sites inline styling patterns.
The media=print onload deferred CSS pattern requires unsafe-inline in
script-src. When nonces replaced unsafe-inline in 14f1e53, the onload
attribute was blocked by CSP, leaving main.min.css as media=print only
so all below-fold styles were invisible.
Fix: replace onload attribute with a nonce-tagged inline script that
does the same media switch — CSP-safe.
- gdpr-ai-automation-uk-firms: linked from GDPR Compliant by Default feature
- ma-due-diligence-automation-corporate-law: linked from Data Pipeline Build-Outs card
- how-to-brief-ai-automation-consultant: linked from Scoping & Proposal process step
All 9 blog articles now have 3+ inbound internal links
- Cache-Control: public, max-age=3600 (was private no-cache) for better CDN caching
- Document & Data Extraction card: links to PDF extraction and due diligence articles
- Research Automation card: links to research automation and cost of manual work articles
- Custom AI Agents card: links to what-is-an-ai-agent and build-vs-buy articles
- Use case cards: Legal Due Diligence, Consultancy Research, Document Review each
now link to corresponding blog article instead of /quote
- New articles: M&A due diligence automation, contract review automation,
how to brief an AI consultant, build vs buy AI automation
- Related articles sections added to all 6 existing articles
- Blog index updated to list all 10 articles
- Sitemap updated with all 10 article URLs
- llms.txt created for AI search engine visibility
- case-studies/index.php: fix title, CSS path, logo path, JS path
- 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
- Remove all web scraping services, blog articles, locations, tools pages
- Remove fake author profiles and old categories
- Add 6 new AI automation blog articles targeting legal/consultancy firms
- Rewrite blog index with new AI automation content
- Update robots.txt with correct ukaiautomation.co.uk domain
- Update sitemap.xml with current pages only
Rewrote 8 body copy sections to use shorter sentences and plainer
language. Grade level drops from college-graduate to grade 10-11.
Sections changed: services intro, web intelligence, cloud platform,
data management, methodology intro, why choose, trusted-by.
No headings, bullets, or CTAs changed.
- 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
data-quality-validation-pipelines.php:
- Fix H1 to match title (was still "Advanced Statistical Validation..." after title was updated)
- Remove 3 orphaned text fragments from broken AI edit merges ("racy and reliability.", "ta pipelines...", "ust in your analytics.")
- Fix split <strong> tag mid-word
- Fix internal link from /services/web-scraping-services.php to /services/web-scraping
business-intelligence-dashboard-design.php:
- Rewrite meta description - old one concatenated with title into bizarre GSC query
"2025 ux best practices for displaying data analysis results competitive intelligence dashboard..."
(74 impressions, 0 clicks)
Remove /data-scraping-services/index, /services/web-scraping-companies, and /services/data-scraping from sitemap.xml — all now 301 redirect to /services/web-scraping. Sitemap should only list canonical URLs. Update lastmod on /services/web-scraping to 2026-03-20 to signal the title/description fix to Google.
- Restore title to Feb 16 baseline (was ranking pos 12.8): "Web Scraping Services UK | Fast, GDPR-Compliant Data Extraction"
- Restore original meta description targeting web scraping services for UK businesses
- Add 301 redirects for /web-scraping-services/ and /data-scraping-services/ → /services/web-scraping (duplicate pages were cannibalizing the main page)
- Fix blog article schema headline from generic "statistical validation" phrase to "Data Quality Validation for Web Scraping Pipelines" to stop attracting irrelevant academic queries in GSC
- Fix broken PHP syntax in real-time data extraction article
- Fix truncated meta description on homepage
- Fix truncated titles on competitive intelligence and price monitoring pages
- Update Selenium vs Playwright article year from 2024 to 2026
- Replace no-store cache headers on homepage with private revalidation
- 301 redirect thin duplicate real-time streaming article to canonical
- Add HSTS header to data-cleaning service page
- Replace SVG og:images with PNG social card across 24 blog articles
- Add Services breadcrumb level to London, Manchester, Birmingham pages
Removed 42 deprecated/restricted schema blocks across 21 files:
- FAQPage removed from all commercial pages (restricted Aug 2023)
- HowTo removed from all pages (rich results removed Sep 2023)
- Compliance guide: author type fixed Organization->Person
Blog index:
- New article cards: ai-web-scraping-2026, web-scraping-lead-generation-uk
- Stats updated: 55+ articles -> 57+, 2025 Content -> 2026 Content
- Featured article date updated to March 2026
- Blog schema updated with new BlogPosting entries
- 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>