Commit Graph

82 Commits

Author SHA1 Message Date
Peter Foster
6819689ebd fix: blog/index.php missing DOCTYPE, head and CSS — page was completely unstyled
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.
2026-03-22 19:34:54 +00:00
Peter Foster
17d7bfa0c4 Add 4 new articles, internal links, llms.txt, sitemap update
- 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
2026-03-21 13:02:09 +00:00
Peter Foster
63fb1fd099 SEO: add BlogPosting schema, fix HTML heads, clean stale content
- 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)
2026-03-21 12:51:04 +00:00
Peter Foster
171633d0e8 Remove all personal name references throughout site 2026-03-21 10:59:35 +00:00
Peter Foster
a3cfcc9843 Remove Python as selling point throughout site
- about.php: title, subtitle, bio, technical background
- quote.php: title, meta, badge (10+ Years Python → 10+ Years Experience)
- case-studies/index.php: pipeline descriptions
- author-bio.php: fake author roles and bios
- article-footer.php: replace Python article links with actual AI articles
- blog/search.php: replace Python article, remove Python topic tag
2026-03-21 10:39:15 +00:00
Peter Foster
8eafc04b0f Fix all UKDS SEO cross-contamination risks
- 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
2026-03-21 10:13:14 +00:00
Peter Foster
37a6b01598 Replace web scraping content with AI automation brand
- 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
2026-03-21 10:04:47 +00:00
Peter Foster
1d705572ad Rebrand: UK AI Automation — new domain, logo, indigo colour scheme, AI services content 2026-03-21 09:48:46 +00:00
Peter Foster
a4a8e237d6 SEO fixes: schema cleanup, duplicate redirects, sitemap, about page
- faq.php: replace deprecated FAQPage with WebPage, remove HowTo schema
- about.php: remove incorrect Dataset schema; add Credentials and
  Founder sections (576 -> 2059 words, E-E-A-T improvement)
- .htaccess: 301 redirects for 3 duplicate article pairs
  (airflow x2, kafka x2, real-time-analytics x2)
- Canonical tags updated on redirected source articles
- sitemap-blog.xml: add 4 missing articles, remove redirect slug (47->50)
2026-03-20 18:54:44 +00:00
Peter Foster
4d5635af56 SEO fixes: orphan pages, schema cleanup, clean URLs, llms-full.txt
- 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
2026-03-20 17:08:18 +00:00
Peter Foster
9ba117a65f SEO: fix garbled blog article HTML, update H1, fix BI dashboard description
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)
2026-03-20 16:17:08 +00:00
Peter Foster
51c3647a82 SEO fix: restore original title/desc on web-scraping page, 301 duplicate pages, fix schema headline
- 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
2026-03-20 16:14:30 +00:00
Peter Foster
34ddbe3fdd Fix SEO issues found via GSC audit
- 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
2026-03-10 04:37:15 +00:00
Peter Foster
4121a20e40 SEO: BreadcrumbList on all service pages, author bios, case study pages, internal links, address fix, llms.txt update 2026-03-08 11:13:11 +00:00
Peter Foster
62e69542b0 SEO schema cleanup + blog index update
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
2026-03-08 10:48:11 +00:00
Peter Foster
790ffef935 SEO content expansion: compliance guide body, 2 new blog articles, schema
- web-scraping-compliance-uk-guide: filled 7 missing body sections (ToS, IP,
  CMA, best practices, risk matrix, documentation, industry-specific)
  now ~54KB of substantive legal compliance content
- New: blog/articles/web-scraping-lead-generation-uk.php (March 2026)
- New: blog/articles/ai-web-scraping-2026.php (March 2026)
- predictive-analytics-customer-churn: description updated for new title
- index.php: web-scraping-companies added to footer nav
- BreadcrumbList JSON-LD added to data-scraping and web-scraping-companies pages
- sitemap-blog.xml: new articles added
2026-03-08 10:40:23 +00:00
Peter Foster
31dd3e8d70 SEO: freshen articles, internal links, comparison page
- predictive-analytics-customer-churn: title broadened for CTR
- web-scraping-compliance-uk-guide: modified date 2026, 2025->2026 in body/keywords
- python-data-pipeline-tools: last_modified updated to 2026-03-08
- index.php: data-scraping linked in services card and footer nav
- services/web-scraping.php: cross-link to data-scraping page
- New: services/web-scraping-companies.php comparison page (508 GSC impressions, pos 22)
- sitemaps: web-scraping-companies added
2026-03-08 10:28:12 +00:00
Peter Foster
1b8b97e293 Add data-scraping service page; fix title tags for CTR
- New /services/data-scraping page targeting data scraping services (1,260 GSC impressions, pos 29)
- web-scraping.php title: improved to target web scraping services provider (pos 7.3)
- web-scraping-compliance-uk-guide.php title: updated 2024 -> 2026 for freshness signal
- sitemap.xml and sitemap-services.xml: added /services/data-scraping URL
2026-03-08 10:12:37 +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
bf04196d9e SEO: automated improvements (2026-03-07) — 3 modified, 2 created 2026-03-07 16:57:34 +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
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
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
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
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
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