Commit Graph

129 Commits

Author SHA1 Message Date
Peter Foster
69bd6429e3 Rewrite location pages with unique city-specific content 2026-03-08 09:55:36 +00:00
Peter Foster
ed5336bf1f SEO fixes: author bylines, 2025 dates, phone removal, case studies, Companies House
- 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>
2026-03-08 09:42:53 +00:00
Peter Foster
7dc08d7ecb Fix founding year to 2013 across all pages and schema
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 09:37:35 +00:00
Peter Foster
30a71d832f Update company registration number to 08576932
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 09:37:06 +00:00
Peter Foster
93f353626c Remove unverified ICO registration and VAT number references
- 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>
2026-03-08 09:36:11 +00:00
Peter Foster
c07d126044 Fix SEO inconsistencies: founding year, accuracy rates, sitemap, alt text
- 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>
2026-03-08 09:24:51 +00:00
Peter Foster
bf04196d9e SEO: automated improvements (2026-03-07) — 3 modified, 2 created 2026-03-07 16:57:34 +00:00
Peter Foster
624a3aa282 SEO audit fixes: schema, content, technical and AI readiness
- Remove restricted FAQPage schema and duplicate Organization schema
- Remove incomplete LocalBusiness schema
- Fix Organization: founder Peter Foster, foundingDate 2015
- Rewrite H1 to include target keywords
- Fix BreadcrumbList with correct page URLs
- Remove SearchAction pointing to 404 endpoint
- Simplify verbose content across 13 key paragraphs
- Promote service card headings from H3 to H2 with keyword-rich names
- Add width/height attributes to all images (CLS fix)
- Create 1200x630 OG social card image
- Update og:image, og:image:width, og:image:height meta tags
- Fix broken LinkedIn (www prefix) and Twitter (x.com) social links
- Add Free Tools footer section linking to individual tools
- Remove google-oauth-callback and /index URLs from sitemap.xml
- Add AI crawler rules to robots.txt (GPTBot, ClaudeBot, Perplexity, etc.)
- Add Disallow for oauth callback endpoints in robots.txt
- Create llms.txt for AI search engine readiness
2026-03-06 06:42:24 +00:00
Peter Foster
66a02fcafb SEO: automated improvements (2026-03-05) — 4 modified, 3 created 2026-03-05 02:49:16 +00:00
Peter Foster
b1095b5b1c SEO: automated improvements (2026-03-05) — 2 modified, 2 created 2026-03-05 02:04:32 +00:00
Peter Foster
4df79ea181 SEO: automated improvements (2026-03-02) — 2 modified, 4 created 2026-03-02 13:42:19 +00:00
Peter Foster
97519207ab Fix broken data-engineering link 2026-03-02 13:33:58 +00:00
Peter Foster
26a5816268 SEO: automated improvements (2026-03-02) — 3 modified, 2 created 2026-03-02 13:33:42 +00:00
Peter Foster
63b9a134b0 Fix broken data-engineering service link 2026-03-02 13:26:04 +00:00
Peter Foster
9003957175 SEO: automated improvements (2026-03-02) — 2 modified, 3 created 2026-03-02 13:25:46 +00:00
Peter Foster
af53343773 Fix broken data-analytics-consulting link 2026-03-02 13:09:59 +00:00
Peter Foster
18a7b0fd7a SEO: automated improvements (2026-03-02) — 4 modified, 4 created 2026-03-02 13:09:22 +00:00
Peter Foster
7e481d5a17 Fix remaining broken location links 2026-03-02 13:01:34 +00:00
Peter Foster
4fcb16bd89 Fix broken internal links across site 2026-03-02 11:44:06 +00:00
Peter Foster
b257ceb3a4 SEO: automated improvements (2026-03-02) — 3 modified, 2 created 2026-03-02 11:38:26 +00:00
Peter Foster
ad69508ff8 SEO: automated improvements (2026-03-02) — 1 modified, 1 created 2026-03-02 11:30:42 +00:00
Peter Foster
0408731358 Block scanner IPs and non-existent PHP file requests 2026-03-02 11:15:06 +00:00
Peter Foster
89a791e187 Fix internal redirect loop on trailing-slash URLs 2026-03-02 11:08:53 +00:00
Peter Foster
999689071a Fix undefined $author variable and add new service pages to htaccess whitelist 2026-03-02 10:55:58 +00:00
Peter Foster
a22439091d SEO: commit cron-generated pages, fix duplicate footer in CI article 2026-03-02 10:42:15 +00:00
Peter Foster
c079aa5d5f fix: replace nav/footer placeholder comments with proper PHP includes 2026-03-02 10:35:11 +00:00
Peter Foster
e3a1610ade fix: remove corrupted HTML template injected into head by SEO script 2026-03-02 09:53:35 +00:00
Peter Foster
8fe2b9d210 fix: revert corrupted blog articles, clean sitemap of internal pages, fix META_TAGS_TEMPLATE permissions 2026-03-02 09:44:22 +00:00
Peter Foster
35f34a91d6 SEO: automated improvements (2026-03-02) — 4 modified, 1 created 2026-03-02 09:05:42 +00:00
Peter Foster
93178cd84e fix: restore correct article publication dates, update modified dates to today 2026-03-01 16:08:14 +00:00
Peter Foster
ddd64e5e5d SEO: automated improvements (2026-03-01) — 4 modified, 1 created 2026-03-01 11:33:51 +00:00
Peter Foster
96548b683b SEO: weekly automated meta improvements (2026-02-28) 2026-02-28 21:58:47 +00:00
Peter Foster
68955e9bc4 SEO: weekly automated meta improvements (2026-02-28) 2026-02-28 21:49:31 +00:00
Peter Foster
03c3417be6 SEO: weekly automated meta improvements (2026-02-28) 2026-02-28 21:48:48 +00:00
Peter Foster
8fdd86418a blog: add 4 new articles and wire into index + sitemap 2026-02-28 21:26:30 +00:00
Peter Foster
100ccb6622 SEO: update blog article meta tags from GSC analysis 2026-02-27 10:41:52 +00:00
Peter Foster
a57150d531 SEO: update meta tags on service, location, and blog pages from GSC analysis 2026-02-27 09:27:03 +00:00
Peter Foster
40203587c9 SEO: update meta titles/descriptions based on GSC data; fix quote page layout 2026-02-27 09:21:06 +00:00
Peter Foster
d1e5371f39 SEO Optimization: Implement Gemini recommendations
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.
2026-02-27 09:21:06 +00:00
Peter Foster
239b01e311 CSS: nuclear cursor fix using cursor:inherit on all elements
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.
2026-02-22 12:00:38 +00:00
Peter Foster
0136ff95e2 CSS: fix flashing cursor by adding cursor:default to html element
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.
2026-02-22 11:53:32 +00:00
Peter Foster
4aae34075a SEO: expand inline contextual links to service pages
Python pipeline article:
- "ETL jobs" -> /services/data-cleaning.php
- Added sentence linking to /services/web-scraping.php (data collection context)

London analytics article (UKDS profile section):
- "data extraction" -> /services/web-scraping.php
- "Web intelligence and competitive monitoring" -> /services/competitive-intelligence.php
- "Data pipeline automation and integration" -> /project-types.php

Churn prediction article:
- "Market price comparisons" -> /services/price-monitoring.php
- External data section: added context link to /services/web-scraping.php
2026-02-22 11:16:14 +00:00
Peter Foster
15e9ba598e Cache: fix 1-year CSS cache and add version busting
- .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
2026-02-22 11:12:40 +00:00
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