Commit Graph

86 Commits

Author SHA1 Message Date
Peter Foster
611a861bdd Accessibility: fix WCAG structural/landmark issues
- nav.php: add aria-label="Main navigation" to navbar <nav>
- article-footer.php: h4 -> h3 in related-card (h2->h4 skipped h3)
- 6 articles: add aria-label="Table of contents" to article-toc <nav>
- index.php: move trust-signals section inside <main> (was after </main>)
- web-scraping, price-monitoring, competitive-intelligence: add <main> wrapper
- index.php: inline #179e83 colour fixes (text on tinted backgrounds)
2026-02-22 11:12:40 +00:00
Peter Foster
7c6e1967df Accessibility: fix WCAG AA colour contrast and cursor issues
- 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
2026-02-22 11:12:40 +00:00
root
da20f8e44c Fix: CTA button contrast and author bio class collisions
- 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
2026-02-22 10:19:42 +00:00
root
8731fd8fd7 Fix: colour contrast issues across site
- 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
2026-02-22 10:13:52 +00:00
root
44db83e65e Fix: London duplicate author bio, Python pipeline FAQ schema
- Remove hardcoded sidebar author-bio from London article (was rendering 2x)
- Restore python-data-pipeline-tools-2025.php from git (was wiped by encoding error)
- Add FAQPage schema to Python pipeline article (4 Q&As on Airflow/Prefect/Dagster)
2026-02-22 10:08:42 +00:00
root
27f071604d SEO: all remaining items — bak cleanup, sitemap, homepage, FAQ schema, inline links
- 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
2026-02-22 10:03:09 +00:00
root
6f8a0490fc Fix: remove duplicate author-bio includes, add author images, move inline styles
- 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
2026-02-22 09:58:39 +00:00
root
4d44e84478 SEO/E-E-A-T: fix author attribution across all blog articles
- 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
2026-02-22 09:55:13 +00:00
root
7206f5315a SEO: rewrite meta descriptions, add FAQ schema, add CTA box to all articles
- 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
2026-02-22 09:49:52 +00:00
root
95fd3ba36e Update index.php and web-scraping service page 2026-02-20 11:25:07 +00:00
root
a26f6632c7 SEO: fix 404 redirects, sitemap cleanup, canonical fix, internal links
- .htaccess: 301 redirect data-analytics-companies-london-top-providers → -compared
- .htaccess: 301 redirect gdpr-compliance-web-scraping-uk-guide → web-scraping-compliance-uk-guide
- sitemap.xml: remove redirecting /services/data-analytics entry
- sitemap.xml: remove duplicate real-time-analytics-streaming (2025) entry
- sitemap.xml: add locations/london, /manchester, /birmingham pages
- real-time-analytics-streaming.php: canonical → real-time-analytics-streaming-data (2026 version)
- data-analytics-companies-london-top-providers-compared.php: internal link to churn article
- python-data-pipeline-tools-2025.php: internal link to churn article
- real-time-analytics-streaming-data.php: internal link to churn article
2026-02-20 11:00:23 +00:00
root
edd491d680 Fix navbar across all pages: add nav include, fonts, active state, spacing, stats, error pages
- 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
2026-02-11 07:15:11 +00:00
root
dba4659768 Fix: last navbar.php reference in free-web-scraping-tools-launch article 2026-02-10 22:27:31 +00:00
root
fe70ab53cf Nav refactor: fix remaining pages (tools, services, locations, blog articles)
- 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
2026-02-10 22:24:40 +00:00
root
1a8d9b4f9d Site improvements: nav refactor, CSS readability, hover fixes, remove unverified badges
- 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
2026-02-10 22:21:16 +00:00
root
0598088a86 Fix button contrast issues: add default colors to base .btn class and fix .cta-section .btn text visibility
- 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
2026-02-10 10:40:46 +00:00
root
aadcdf8e3c SEO: Improve meta titles, descriptions & internal links for top 10 pages
- 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
2026-02-10 10:25:07 +00:00
root
57ea74ed38 Security cleanup: remove Docker files, test pages, SQL backup; fix admin password 2026-02-08 21:00:46 +00:00
root
74606d6355 Update DaisyJane styling and page changes 2026-02-08 20:52:52 +00:00
root
835da21951 Fix broken article card structure in blog index 2026-02-05 04:17:04 +00:00
root
96bb3301fc Add free tools blog post to blog index 2026-02-05 04:13:49 +00:00
root
b6e39fe0c2 Security hardening + new tools deployment
- 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
2026-02-05 04:11:15 +00:00
root
3a0d8034c7 Fix quote page gap: wrap noscript fallback, reduce hero/form padding 2026-02-04 03:17:55 +00:00
root
b0234123a3 Remove verbose quote process text, keep noscript fallback 2026-02-04 03:11:07 +00:00
root
165c418c75 Fix CSRF token handling: add session to index.php, fix cookie_secure for HTTPS 2026-02-03 20:51:45 +00:00
root
72c9b4e9b4 Menu: Rename Capabilities to Services, update sitemap with web-scraping page 2026-02-03 20:15:44 +00:00
root
9c2ad9efe4 Improve service pages: add pricing, CTAs, and content
- data-cleaning: Update title for SEO, add /quote buttons to pricing cards
- competitive-intelligence: Add pricing section, add Why CI Matters content (~350 words)
- price-monitoring: Add Business Impact section (~200 words)
2026-02-03 20:01:38 +00:00
root
35ada368e3 Add server-rendered content and noscript fallback to /quote page
- 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.
2026-02-03 20:00:45 +00:00
root
e8f01ecfbd Website improvements: fix service pages, add web-scraping service, trust badges, contact redirect
- 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
2026-02-03 19:34:30 +00:00
root
9cea601fb3 Implement marketing audit recommendations across site
- 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>
2026-01-29 11:39:22 +00:00
root
d8622b7f9e Remove ISO 27001 certification claims
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 20:33:56 +00:00
root
f495ee23c2 Accessibility fixes and form session expiration fix
- 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>
2026-01-12 20:22:49 +00:00
root
5e1401ef14 SEO improvements: meta titles, trust badges, schema, cross-linking
- 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>
2026-01-12 19:15:08 +00:00
root
d4b582dec0 Remove Certified & Compliant section from homepage
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 00:50:02 +00:00
root
45bfea0bad SEO fixes: team section, meta tags, footer consistency, broken links
- 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>
2025-12-21 08:08:45 +00:00
root
7ea1619e46 Implement comprehensive SEO infrastructure and new service pages
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>
2025-12-09 09:07:07 +00:00
root
8592b8d341 Fix FAQ expanders and quote form JavaScript
- Fix FAQ accordion: change from display:none to max-height animation
- Add .active class selectors alongside [aria-expanded="true"]
- Fix quote.php: add missing closing brackets for event listeners
- Fix Promise chain indentation in quote form submission

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 07:27:54 +00:00
root
63f48eeb6a Wire all pages to navigation and fix broken links
- Add services, locations, and resources to footer navigation across all pages
- Update footer in 22+ files with consistent navigation structure
- Add service pages: competitive-intelligence, price-monitoring, data-cleaning
- Add location pages: london, manchester, birmingham
- Update all sitemaps (sitemap.php, sitemap.xml, sitemap-services.xml, sitemap-index.xml)
- Fix broken /contact links (changed to /#contact)
- Fix broken contact.php references (changed to /quote)
- Fix faq-enhanced.php with correct service links
- Fix london.php file permissions (600 -> 644)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08 07:18:49 +00:00
root
f445c877e7 Fix contact form by re-minifying main.js with reCAPTCHA support
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>
2025-12-07 11:57:40 +00:00
root
e144b20798 Comprehensive SEO and UI improvements across site
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>
2025-12-07 11:49:39 +00:00
root
72d7a641f0 Add WeBuy license validation and usage logging API endpoints
- Add /api/license/webuy/ endpoint for license validation
- Add /api/license/webuy/log/ endpoint for usage logging
- Logs stored in /var/www/logs/webuy_usage.log

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 10:57:55 +00:00
root
f9312acb47 Fix consultation form reCAPTCHA integration and validation
- Add missing recaptcha_response hidden field to quote form
- Implement reCAPTCHA validation in quote-handler.php
- Add proper error handling for security verification failures
- Form submissions now properly validate reCAPTCHA tokens before processing

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-09 06:12:52 +00:00
root
4ab3d2d2a8 Fix consultation form CSRF validation and improve site optimization
- Fix CSRF token validation for quote form by adding proper session handling and credentials to AJAX requests
- Replace alert boxes with styled error/success messages and HTML response pages for better UX
- Add visual indicators (*) to required form fields for better accessibility
- Standardize navigation links to use absolute paths for consistency
- Update JavaScript references to use minified version (main.min.js) for better performance
- Archive large error log file and clean up sitemap by removing broken image references
- Add comprehensive documentation to reCAPTCHA configuration about test vs production keys
- Update sitemap lastmod dates to current timestamp

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-09 06:07:27 +00:00
root
7673e72d59 Add 5 new strategic blog articles and update blog homepage
- Add web scraping services UK buyer's guide (15 min read)
- Add data analytics companies London comparison (18 min read)
- Add business intelligence consultants UK selection guide (16 min read)
- Add competitor price monitoring build vs buy analysis (14 min read)
- Add real-time data extraction technical guide (17 min read)
- Update blog homepage stats and article listings
- Update sitemap with new high-priority blog posts

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-08 07:47:06 +00:00
root
35f0fdf97f Add SEO documentation and blog content planning
- Add comprehensive SEO audit and recommendations document
- Add prioritized blog content plan with keyword targets
- Document content strategy for improved organic visibility

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-08 07:13:29 +00:00
root
f16add60ce Fix hero image SVG animations and enhance data line effects
- Move SVG path definitions to defs section for proper animation references
- Add staggered data-pulse animations to data lines with sequential delays
- Fix animateMotion path references for moving particles

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16 10:13:27 +00:00
root
c7c1763288 Hide reCAPTCHA badge with CSS visibility property
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16 10:08:10 +00:00
root
657d7681f4 Enhance SEO with comprehensive image alt text and strategic internal linking
- Add descriptive, keyword-rich alt text to all service icons and images
- Implement strategic internal linking between services and blog articles
- Add Core Web Vitals monitoring for performance tracking
- Enhanced sitemap metadata with image captions and detailed titles
- Improved accessibility and search engine content understanding

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16 10:05:19 +00:00
Peter
cb3b689d07 Enhance SEO with improved alt text, internal links, and Core Web Vitals monitoring
- Enhanced image alt text descriptions with keyword-rich, descriptive alternatives for better accessibility and SEO
- Added contextual internal links in blog articles to improve page authority distribution
- Optimized homepage meta description with additional geographic keywords (Manchester, Birmingham, Edinburgh)
- Expanded keyword meta tags with GDPR compliance and enterprise data solutions terms
- Implemented Core Web Vitals monitoring tool for ongoing performance tracking and optimization
- Improved overall SEO structure while maintaining excellent existing foundation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-12 13:18:11 +01:00
root
0a3521a955 Fix contact form submission errors and restore full functionality
- Fix JavaScript syntax errors preventing form submission
- Update reCAPTCHA configuration with working test keys
- Restore comprehensive spam protection (reCAPTCHA v3, AJAX validation, rate limiting)
- Switch from minified to source JS file to apply critical fixes
- Add missing security headers and form validation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-18 05:47:55 +00:00