diff --git a/blog/articles/ai-web-scraping-2026.php b/blog/articles/ai-web-scraping-2026.php
index fca8055..9da3f71 100644
--- a/blog/articles/ai-web-scraping-2026.php
+++ b/blog/articles/ai-web-scraping-2026.php
@@ -8,7 +8,7 @@ $article_author = 'Alex Kumar';
$canonical_url = 'https://ukdataservices.co.uk/blog/articles/ai-web-scraping-2026';
$article_published = '2026-03-08T09:00:00+00:00';
$article_modified = '2026-03-08T09:00:00+00:00';
-$og_image = 'https://ukdataservices.co.uk/assets/images/hero-data-analytics.svg';
+$og_image = 'https://ukdataservices.co.uk/assets/images/ukds-social-card.png';
$read_time = 10;
?>
diff --git a/blog/articles/business-intelligence-dashboard-design.php b/blog/articles/business-intelligence-dashboard-design.php
index b82abd2..195f581 100644
--- a/blog/articles/business-intelligence-dashboard-design.php
+++ b/blog/articles/business-intelligence-dashboard-design.php
@@ -10,7 +10,7 @@ $article_author = "David Martinez";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/business-intelligence-dashboard-design.php";
$article_published = "2025-06-08T09:00:00+00:00";
$article_modified = "2025-06-08T14:30:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/dashboard-ecommerce.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 12;
?>
@@ -1264,10 +1264,10 @@ $read_time = 12;
© UK Data Services. All rights reserved.
diff --git a/blog/articles/cloud-native-scraping-architecture.php b/blog/articles/cloud-native-scraping-architecture.php
index ef9dfc2..139333e 100644
--- a/blog/articles/cloud-native-scraping-architecture.php
+++ b/blog/articles/cloud-native-scraping-architecture.php
@@ -10,7 +10,7 @@ $article_author = "James Wilson";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/cloud-native-scraping-architecture";
$article_published = "2025-05-25T09:00:00+00:00";
$article_modified = "2025-05-25T09:00:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/icon-automation.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 11;
?>
@@ -115,10 +115,10 @@ $read_time = 11;
@@ -487,10 +487,10 @@ class ProxyManager:
© UK Data Services. All rights reserved.
diff --git a/blog/articles/competitive-intelligence-roi-metrics.php b/blog/articles/competitive-intelligence-roi-metrics.php
index 52bbb55..de9e0e7 100644
--- a/blog/articles/competitive-intelligence-roi-metrics.php
+++ b/blog/articles/competitive-intelligence-roi-metrics.php
@@ -10,7 +10,7 @@ $article_author = "David Martinez";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/competitive-intelligence-roi-metrics.php";
$article_published = "2025-06-05T10:00:00+00:00";
$article_modified = "2025-06-05T15:30:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/hero-data-analytics.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 8;
?>
diff --git a/blog/articles/data-automation-strategies-uk-businesses.php b/blog/articles/data-automation-strategies-uk-businesses.php
index c906af2..4022b02 100644
--- a/blog/articles/data-automation-strategies-uk-businesses.php
+++ b/blog/articles/data-automation-strategies-uk-businesses.php
@@ -9,7 +9,7 @@ $meta_description = "Discover proven data automation strategies that UK business
$canonical_url = "https://ukdataservices.co.uk/blog/articles/data-automation-strategies-uk-businesses";
$keywords = "data automation UK, business process automation, automation strategies, UK business automation, ROI automation";
$author = "UK Data Services";
-$og_image = "https://ukdataservices.co.uk/assets/images/icon-automation.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
?>
@@ -226,11 +226,11 @@ $og_image = "https://ukdataservices.co.uk/assets/images/icon-automation.svg";
Our automation specialists offer free consultations to help you identify high-impact automation opportunities.
@@ -253,11 +253,11 @@ $og_image = "https://ukdataservices.co.uk/assets/images/icon-automation.svg";
Share This Article
@@ -300,15 +300,15 @@ $og_image = "https://ukdataservices.co.uk/assets/images/icon-automation.svg";
Contact
-
+
hello@ukdataservices.co.uk
-
+
+44 20 1234 5678
-
+
London, United Kingdom
diff --git a/blog/articles/data-protection-impact-assessment-web-scraping-uk.php b/blog/articles/data-protection-impact-assessment-web-scraping-uk.php
index 24b05a3..42f176d 100644
--- a/blog/articles/data-protection-impact-assessment-web-scraping-uk.php
+++ b/blog/articles/data-protection-impact-assessment-web-scraping-uk.php
@@ -10,7 +10,7 @@ $article_author = "David Thompson";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/data-protection-impact-assessment-web-scraping-uk";
$article_published = "2026-02-26T09:00:00+00:00";
$article_modified = "2026-02-26T09:00:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/icon-compliance.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 12;
?>
diff --git a/blog/articles/data-protection-impact-assessments.php b/blog/articles/data-protection-impact-assessments.php
index d279cf2..0677c73 100644
--- a/blog/articles/data-protection-impact-assessments.php
+++ b/blog/articles/data-protection-impact-assessments.php
@@ -10,7 +10,7 @@ $article_author = "Sarah Chen";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/data-protection-impact-assessments";
$article_published = "2025-05-18T09:00:00+00:00";
$article_modified = "2025-05-18T09:00:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/icon-compliance.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 10;
?>
@@ -500,8 +500,8 @@ $read_time = 10;
UK Data Services
Professional data extraction, analysis, and compliance services for UK businesses.
@@ -408,10 +408,10 @@ $read_time = 7;
© UK Data Services. All rights reserved.
diff --git a/blog/articles/gdpr-data-minimisation-practices.php b/blog/articles/gdpr-data-minimisation-practices.php
index 69b1d0c..385156e 100644
--- a/blog/articles/gdpr-data-minimisation-practices.php
+++ b/blog/articles/gdpr-data-minimisation-practices.php
@@ -10,7 +10,7 @@ $article_author = "Sarah Chen";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/gdpr-data-minimisation-practices";
$article_published = "2025-05-20T09:00:00+00:00";
$article_modified = "2025-05-20T09:00:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/icon-compliance.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 6;
?>
@@ -115,10 +115,10 @@ $read_time = 6;
@@ -437,10 +437,10 @@ END;
© UK Data Services. All rights reserved.
diff --git a/blog/articles/handling-captchas-scraping.php b/blog/articles/handling-captchas-scraping.php
index 8bc3120..73bebbf 100644
--- a/blog/articles/handling-captchas-scraping.php
+++ b/blog/articles/handling-captchas-scraping.php
@@ -10,7 +10,7 @@ $article_author = "Michael Thompson";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/handling-captchas-scraping";
$article_published = "2025-05-05T09:00:00+00:00";
$article_modified = "2025-05-05T09:00:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/icon-security.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 8;
?>
@@ -115,10 +115,10 @@ $read_time = 8;
@@ -655,10 +655,10 @@ def scrape_with_captcha_logging(url):
© UK Data Services. All rights reserved.
diff --git a/blog/articles/javascript-heavy-sites-scraping.php b/blog/articles/javascript-heavy-sites-scraping.php
index 7585811..b7109fb 100644
--- a/blog/articles/javascript-heavy-sites-scraping.php
+++ b/blog/articles/javascript-heavy-sites-scraping.php
@@ -10,7 +10,7 @@ $article_author = "Michael Thompson";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/javascript-heavy-sites-scraping.php";
$article_published = "2025-06-01T11:00:00+00:00";
$article_modified = "2025-06-01T16:45:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/icon-web-scraping-v2.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 8;
?>
@@ -502,10 +502,10 @@ await page.goto(url);
© UK Data Services. All rights reserved.
diff --git a/blog/articles/kafka-performance-evaluation-real-time-streaming.php b/blog/articles/kafka-performance-evaluation-real-time-streaming.php
index b7ebe96..ad83430 100644
--- a/blog/articles/kafka-performance-evaluation-real-time-streaming.php
+++ b/blog/articles/kafka-performance-evaluation-real-time-streaming.php
@@ -21,8 +21,8 @@ $page_description = "A technical guide to evaluating Apache Kafka's performance
$canonical_url = "https://ukdataservices.co.uk/blog/articles/kafka-performance-evaluation-real-time-streaming";
$keywords = "performance evaluation of apache kafka, kafka performance, real-time data streaming, kafka benchmarks, kafka tuning, kafka throughput, kafka latency";
$author = "Analytics Engineering Team";
-$og_image = "https://ukdataservices.co.uk/assets/images/hero-data-engineering.svg";
-$twitter_card_image = "https://ukdataservices.co.uk/assets/images/hero-data-engineering.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
+$twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$article_published = "2026-07-15";
$article_modified = "2026-07-15";
?>
diff --git a/blog/articles/performance-evaluation-apache-kafka-real-time-streaming.php b/blog/articles/performance-evaluation-apache-kafka-real-time-streaming.php
index deb8045..53518ca 100644
--- a/blog/articles/performance-evaluation-apache-kafka-real-time-streaming.php
+++ b/blog/articles/performance-evaluation-apache-kafka-real-time-streaming.php
@@ -21,8 +21,8 @@ $page_description = "A deep dive into Apache Kafka performance evaluation for re
$canonical_url = "https://ukdataservices.co.uk/blog/articles/performance-evaluation-apache-kafka-real-time-streaming.php";
$keywords = "apache kafka performance, kafka real-time data streaming, kafka performance evaluation, kafka throughput, kafka latency, stream processing performance, kafka tuning uk";
$author = "Analytics Engineering Team";
-$og_image = "https://ukdataservices.co.uk/assets/images/hero-data-analytics.svg";
-$twitter_card_image = "https://ukdataservices.co.uk/assets/images/hero-data-analytics.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
+$twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$article_date = '2024-06-14'; // New article, new date
$last_modified = '2024-06-14';
$article_slug = 'performance-evaluation-apache-kafka-real-time-streaming';
diff --git a/blog/articles/predictive-analytics-customer-churn.php b/blog/articles/predictive-analytics-customer-churn.php
index 5fd155c..f0cb265 100644
--- a/blog/articles/predictive-analytics-customer-churn.php
+++ b/blog/articles/predictive-analytics-customer-churn.php
@@ -10,7 +10,7 @@ $article_author = "David Martinez";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/predictive-analytics-customer-churn.php";
$article_published = "2025-06-08T10:30:00+00:00";
$article_modified = "2025-06-08T15:45:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/hero-data-analytics.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 14;
?>
@@ -1658,10 +1658,10 @@ $read_time = 14;
© UK Data Services. All rights reserved.
diff --git a/blog/articles/python-airflow-alternatives.php b/blog/articles/python-airflow-alternatives.php
index 09fc9ca..2de2832 100644
--- a/blog/articles/python-airflow-alternatives.php
+++ b/blog/articles/python-airflow-alternatives.php
@@ -12,8 +12,8 @@ $canonical_url = "https://ukdataservices.co.uk/blog/articles/python-airflow-alte
$keywords = "airflow alternatives python, prefect vs airflow, dagster vs airflow, flyte vs airflow, python data orchestration, data pipeline tools uk";
$author = "Alex Kumar";
$published_date = "2026-07-15"; // New article publication date
-$og_image = "https://ukdataservices.co.uk/assets/images/hero-data-analytics.svg";
-$twitter_card_image = "https://ukdataservices.co.uk/assets/images/hero-data-analytics.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
+$twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
// Breadcrumb navigation
$breadcrumbs = [
diff --git a/blog/articles/python-scrapy-enterprise-guide.php b/blog/articles/python-scrapy-enterprise-guide.php
index ca7e934..b04541a 100644
--- a/blog/articles/python-scrapy-enterprise-guide.php
+++ b/blog/articles/python-scrapy-enterprise-guide.php
@@ -10,7 +10,7 @@ $article_author = "Michael Thompson";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/python-scrapy-enterprise-guide";
$article_published = "2025-05-15T09:00:00+00:00";
$article_modified = "2025-05-15T09:00:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/icon-web-scraping-v2.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 12;
?>
@@ -117,10 +117,10 @@ $read_time = 12;
@@ -755,10 +755,10 @@ spec:
© UK Data Services. All rights reserved.
diff --git a/blog/articles/real-time-analytics-streaming.php b/blog/articles/real-time-analytics-streaming.php
index dae1649..d9dacf5 100644
--- a/blog/articles/real-time-analytics-streaming.php
+++ b/blog/articles/real-time-analytics-streaming.php
@@ -1,178 +1,4 @@
-
-
-
-
-
- | UK Data Services Blog
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Real-time analytics transforms how businesses respond to opportunities and threats. This comprehensive guide covers streaming data architectures, real-time processing frameworks, and practical implementation strategies for UK enterprises.
-
- Understanding Real-Time Analytics
- Real-time analytics processes data as it arrives, enabling immediate insights and automated responses. Unlike traditional batch processing, streaming analytics provides:
-
- Instant visibility: See events as they happen
- Automated responses: Trigger actions based on real-time conditions
- Competitive advantage: React faster than competitors
- Operational efficiency: Prevent issues before they escalate
-
-
- Streaming Data Architecture
-
- Core Components
-
- Data Sources: Applications, IoT devices, databases, APIs
- Stream Ingestion: Kafka, Kinesis, Pub/Sub
- Stream Processing: Apache Flink, Spark Streaming, Kafka Streams
- Data Storage: Time-series databases, data lakes, caches
- Visualisation: Real-time dashboards and monitoring
-
-
- Technology Stack Recommendations
-
- Apache Kafka: Distributed streaming platform
- Apache Flink: Low-latency stream processing
- InfluxDB: Time-series data storage
- Grafana: Real-time visualisation
- Elasticsearch: Search and analytics engine
-
-
- Implementation Strategies
-
- Start with Use Cases
- Identify high-value scenarios for real-time analytics:
-
- Fraud detection: Immediate transaction analysis
- Operational monitoring: System health and performance
- Customer experience: Real-time personalisation
- Supply chain: Inventory and logistics tracking
-
-
- Data Quality Considerations
-
- Schema validation: Ensure data consistency
- Error handling: Manage invalid or missing data
- Backpressure: Handle varying data volumes
- Monitoring: Track data flow and quality metrics
-
-
-
- "Real-time analytics isn't just about speed—it's about making data actionable at the moment of opportunity."
-Learn more about our data cleaning service .
-
-
- Common Challenges and Solutions
-
- Latency Requirements
- Different use cases require different latency levels:
-
- Hard real-time: < 1ms (financial trading)
- Near real-time: < 100ms (fraud detection)
- Soft real-time: < 1s (monitoring alerts)
- Interactive: < 10s (dashboard updates)
-
-
- Scalability Planning
-
- Horizontal scaling: Add processing nodes
- Partitioning: Distribute data load
- Caching: Reduce computation overhead
- Auto-scaling: Dynamic resource allocation
-
-
- Real-Time Dashboard Design
-
- Key Performance Indicators
- Focus on metrics that drive immediate action:
-
- Alert thresholds: Define clear action triggers
- Trend indicators: Show directional changes
- Contextual information: Provide decision-making context
- Historical comparison: Compare current vs. normal patterns
-
-
- Visualisation Best Practices
-
- Use appropriate chart types for time-series data
- Implement colour coding for status indicators
- Enable drill-down capabilities
- Optimise for mobile viewing
-
-
-
-
-
-
Real-Time Analytics Specialists
-
Our analytics team specialises in building scalable real-time data systems that deliver actionable insights.
-
-
- Discuss Your Project
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+header('HTTP/1.1 301 Moved Permanently');
+header('Location: https://ukdataservices.co.uk/blog/articles/real-time-analytics-streaming-data');
+exit;
diff --git a/blog/articles/real-time-data-extraction-technical-guide-uk-businesses.php b/blog/articles/real-time-data-extraction-technical-guide-uk-businesses.php
index d7c4fdc..06f4429 100644
--- a/blog/articles/real-time-data-extraction-technical-guide-uk-businesses.php
+++ b/blog/articles/real-time-data-extraction-technical-guide-uk-businesses.php
@@ -1,5 +1,5 @@
diff --git a/blog/articles/retail-price-monitoring-strategies.php b/blog/articles/retail-price-monitoring-strategies.php
index 861109c..00bb453 100644
--- a/blog/articles/retail-price-monitoring-strategies.php
+++ b/blog/articles/retail-price-monitoring-strategies.php
@@ -10,7 +10,7 @@ $article_author = "David Martinez";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/retail-price-monitoring-strategies";
$article_published = "2025-06-03T09:00:00+00:00";
$article_modified = "2025-06-03T09:00:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/dashboard-ecommerce.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 10;
?>
@@ -117,10 +117,10 @@ $read_time = 10;
@@ -308,10 +308,10 @@ $read_time = 10;
© UK Data Services. All rights reserved.
diff --git a/blog/articles/selenium-vs-playwright-comparison.php b/blog/articles/selenium-vs-playwright-comparison.php
index 2c4eab2..f218a0b 100644
--- a/blog/articles/selenium-vs-playwright-comparison.php
+++ b/blog/articles/selenium-vs-playwright-comparison.php
@@ -3,14 +3,14 @@
header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
// Article-specific SEO variables
-$article_title = "Selenium vs Playwright: Which is Better in 2024?";
+$article_title = "Selenium vs Playwright: Which is Better in 2026?";
$article_description = "In-depth technical comparison of Selenium vs Playwright for web automation & scraping. We analyse speed, reliability, and ease of use to help you choose.";
$article_keywords = "Selenium vs Playwright, web automation comparison, browser automation tools, Selenium Playwright performance, web scraping tools 2025";
$article_author = "Michael Thompson";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/selenium-vs-playwright-comparison";
$article_published = "2025-05-10T09:00:00+00:00";
$article_modified = "2025-05-10T09:00:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/icon-automation.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 9;
?>
@@ -117,10 +117,10 @@ $read_time = 9;
@@ -485,10 +485,10 @@ run_scraper()
© UK Data Services. All rights reserved.
diff --git a/blog/articles/uk-cookie-law-compliance.php b/blog/articles/uk-cookie-law-compliance.php
index 83c4b63..dd1f119 100644
--- a/blog/articles/uk-cookie-law-compliance.php
+++ b/blog/articles/uk-cookie-law-compliance.php
@@ -10,7 +10,7 @@ $article_author = "Sarah Chen";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/uk-cookie-law-compliance";
$article_published = "2025-05-12T09:00:00+00:00";
$article_modified = "2025-05-12T09:00:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/icon-compliance.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 8;
?>
diff --git a/blog/articles/uk-property-market-data-trends.php b/blog/articles/uk-property-market-data-trends.php
index 2d185da..1b15068 100644
--- a/blog/articles/uk-property-market-data-trends.php
+++ b/blog/articles/uk-property-market-data-trends.php
@@ -10,7 +10,7 @@ $article_author = "Emma Richardson";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/uk-property-market-data-trends.php";
$article_published = "2025-05-22T09:00:00+00:00";
$article_modified = "2025-05-22T09:00:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/dashboard-property.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 8;
?>
@@ -116,10 +116,10 @@ $read_time = 8;
@@ -411,10 +411,10 @@ $read_time = 8;
© UK Data Services. All rights reserved.
diff --git a/blog/articles/web-scraping-compliance-uk-guide.php b/blog/articles/web-scraping-compliance-uk-guide.php
index 5581f2f..a58d6cb 100644
--- a/blog/articles/web-scraping-compliance-uk-guide.php
+++ b/blog/articles/web-scraping-compliance-uk-guide.php
@@ -10,7 +10,7 @@ $article_author = "Sarah Chen";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/web-scraping-compliance-uk-guide";
$article_published = "2025-06-08T09:00:00+00:00";
$article_modified = "2026-03-08T00:00:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/icon-compliance.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 12;
?>
@@ -761,10 +761,10 @@ $read_time = 12;
© UK Data Services. All rights reserved.
diff --git a/blog/articles/web-scraping-lead-generation-uk.php b/blog/articles/web-scraping-lead-generation-uk.php
index ee14b66..54ad74c 100644
--- a/blog/articles/web-scraping-lead-generation-uk.php
+++ b/blog/articles/web-scraping-lead-generation-uk.php
@@ -8,7 +8,7 @@ $article_author = 'Emma Richardson';
$canonical_url = 'https://ukdataservices.co.uk/blog/articles/web-scraping-lead-generation-uk';
$article_published = '2026-03-08T09:00:00+00:00';
$article_modified = '2026-03-08T09:00:00+00:00';
-$og_image = 'https://ukdataservices.co.uk/assets/images/hero-data-analytics.svg';
+$og_image = 'https://ukdataservices.co.uk/assets/images/ukds-social-card.png';
$read_time = 10;
?>
diff --git a/blog/articles/web-scraping-rate-limiting.php b/blog/articles/web-scraping-rate-limiting.php
index 5cc5fd2..33e7349 100644
--- a/blog/articles/web-scraping-rate-limiting.php
+++ b/blog/articles/web-scraping-rate-limiting.php
@@ -10,7 +10,7 @@ $article_author = "Michael Thompson";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/web-scraping-rate-limiting";
$article_published = "2025-04-28T09:00:00+00:00";
$article_modified = "2025-04-28T09:00:00+00:00";
-$og_image = "https://ukdataservices.co.uk/assets/images/icon-speed.svg";
+$og_image = "https://ukdataservices.co.uk/assets/images/ukds-social-card.png";
$read_time = 9;
?>
@@ -115,10 +115,10 @@ $read_time = 9;
@@ -814,10 +814,10 @@ monitor.print_report()
© UK Data Services. All rights reserved.
diff --git a/index.php b/index.php
index 96b0996..7e7166b 100644
--- a/index.php
+++ b/index.php
@@ -6,10 +6,8 @@ ini_set('session.cookie_httponly', '1');
ini_set('session.cookie_secure', '1');
session_start();
-// Prevent caching - page contains session-specific tokens
-header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
-header("Pragma: no-cache");
-header("Expires: Sat, 01 Jan 2000 00:00:00 GMT");
+// Allow private caching with revalidation (CSRF token requires session)
+header("Cache-Control: private, no-cache, must-revalidate");
if (!isset($_SESSION['csrf_token'])) {
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}
@@ -18,7 +16,7 @@ header('Content-Security-Policy: default-src \'self\'; script-src \'self\' \'uns
// SEO and performance optimizations
$page_title = "UK Web Scraping Services | Custom Data Extraction Experts";
-$page_description = "Expert UK web scraping services. We deliver clean, structured data for competitor pricing, market research & leads. Fast, reliable & GDPR compliant. Free q";
+$page_description = "Expert UK web scraping services. We deliver clean, structured data for competitor pricing, market research & leads. GDPR compliant. Free quote.";
$canonical_url = "https://ukdataservices.co.uk/";
$keywords = "web scraping services UK, data analytics London, web scraping UK, data extraction services, business intelligence, competitive analysis, price monitoring, data analytics Manchester, market research, web data mining, GDPR compliant scraping, enterprise data solutions, automated data collection UK";
$author = "UK Data Services";
diff --git a/locations/birmingham.php b/locations/birmingham.php
index d2f0d4f..d0a6e43 100644
--- a/locations/birmingham.php
+++ b/locations/birmingham.php
@@ -10,6 +10,7 @@ $keywords = "web scraping Birmingham, data analytics Birmingham, data extraction
// Breadcrumb navigation
$breadcrumbs = [
['url' => '/', 'label' => 'Home'],
+ ['url' => '/#services', 'label' => 'Services'],
['url' => '', 'label' => 'Birmingham']
];
?>
diff --git a/locations/london.php b/locations/london.php
index 0bd1bbb..7d2c5a3 100644
--- a/locations/london.php
+++ b/locations/london.php
@@ -10,6 +10,7 @@ $keywords = "web scraping London, data analytics London, data extraction London,
// Breadcrumb navigation
$breadcrumbs = [
['url' => '/', 'label' => 'Home'],
+ ['url' => '/#services', 'label' => 'Services'],
['url' => '', 'label' => 'London']
];
?>
diff --git a/locations/manchester.php b/locations/manchester.php
index d8f4b1b..6a86fbf 100644
--- a/locations/manchester.php
+++ b/locations/manchester.php
@@ -10,6 +10,7 @@ $keywords = "web scraping Manchester, data analytics Manchester, data extraction
// Breadcrumb navigation
$breadcrumbs = [
['url' => '/', 'label' => 'Home'],
+ ['url' => '/#services', 'label' => 'Services'],
['url' => '', 'label' => 'Manchester']
];
?>
diff --git a/services/competitive-intelligence.php b/services/competitive-intelligence.php
index ae00f8a..4349767 100644
--- a/services/competitive-intelligence.php
+++ b/services/competitive-intelligence.php
@@ -2,7 +2,7 @@
// Enhanced security headers
header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
-$page_title = "Competitive Intelligence Services | UK Market & Competito...";
+$page_title = "Competitive Intelligence Services UK | Market & Competitor Analysis";
$page_description = "Gain a competitive edge with our UK-based intelligence services. We deliver data-driven market research & competitor analysis. Request a free consultation.";
$canonical_url = "https://ukdataservices.co.uk/services/competitive-intelligence";
$keywords = "competitive intelligence UK, competitor analysis, market intelligence, business intelligence, competitive analysis services, market research UK";
diff --git a/services/data-cleaning.php b/services/data-cleaning.php
index d94a95c..9d22586 100644
--- a/services/data-cleaning.php
+++ b/services/data-cleaning.php
@@ -1,4 +1,6 @@