Fix broken internal links across site

This commit is contained in:
Peter Foster
2026-03-02 11:44:06 +00:00
parent b257ceb3a4
commit 4fcb16bd89
16 changed files with 38 additions and 37 deletions

1
.gitignore vendored
View File

@@ -30,3 +30,4 @@ node_modules/
# Backup files # Backup files
*.bak *.bak
*.backup *.backup
*.backup.meta

View File

@@ -71,7 +71,7 @@ http_response_code(403);
opacity: 0.8; opacity: 0.8;
} }
</style> </style>
<link rel="stylesheet" href="/css/main.css?v=20260222"> <link rel="stylesheet" href="/assets/css/main.css?v=20260222">
</head> </head>
<body> <body>
<?php include($_SERVER["DOCUMENT_ROOT"] . "/includes/nav.php"); ?> <?php include($_SERVER["DOCUMENT_ROOT"] . "/includes/nav.php"); ?>

View File

@@ -81,7 +81,7 @@ error_log('500 Error triggered: ' . date('Y-m-d H:i:s') . ' - IP: ' . $_SERVER['
border-radius: 10px; border-radius: 10px;
} }
</style> </style>
<link rel="stylesheet" href="/css/main.css?v=20260222"> <link rel="stylesheet" href="/assets/css/main.css?v=20260222">
</head> </head>
<body> <body>
<?php include($_SERVER["DOCUMENT_ROOT"] . "/includes/nav.php"); ?> <?php include($_SERVER["DOCUMENT_ROOT"] . "/includes/nav.php"); ?>

View File

@@ -105,7 +105,7 @@ $read_time = 12;
<div class="breadcrumb"> <div class="breadcrumb">
<a href="/">Home</a> &gt; <a href="/">Home</a> &gt;
<a href="/blog">Blog</a> &gt; <a href="/blog">Blog</a> &gt;
<a href="/blog/category/legal-compliance">Legal & Compliance</a> &gt; <a href="/blog/categories/compliance">Legal & Compliance</a> &gt;
<span>DPIA for Web Scraping</span> <span>DPIA for Web Scraping</span>
</div> </div>
@@ -352,7 +352,7 @@ $read_time = 12;
<div class="callout success"> <div class="callout success">
<h3>✅ Next Steps</h3> <h3>✅ Next Steps</h3>
<p>1. <strong>Download our DPIA Template:</strong> <a href="/assets/documents/dpia-template-web-scraping.docx">DPIA Template for Web Scraping (DOCX)</a></p> <p>1. <strong>Download our DPIA Template:</strong> our DPIA template (available on request)</p>
<p>2. <strong>Schedule a Consultation:</strong> <a href="/contact">Book a free 30-minute DPIA review</a></p> <p>2. <strong>Schedule a Consultation:</strong> <a href="/contact">Book a free 30-minute DPIA review</a></p>
<p>3. <strong>Explore Our Services:</strong> <a href="/gdpr-compliance">GDPR-Compliant Web Scraping Services</a></p> <p>3. <strong>Explore Our Services:</strong> <a href="/gdpr-compliance">GDPR-Compliant Web Scraping Services</a></p>
</div> </div>
@@ -380,7 +380,7 @@ $read_time = 12;
</div> </div>
<div class="next-article"> <div class="next-article">
<span class="nav-label">Next Article</span> <span class="nav-label">Next Article</span>
<a href="/blog/articles/legal-framework-web-scraping-uk">Legal Framework for Web Scraping in the UK</a> <a href="/blog/articles/web-scraping-compliance-uk-guide">Legal Framework for Web Scraping in the UK</a>
</div> </div>
</div> </div>
@@ -392,7 +392,7 @@ $read_time = 12;
<p>Implement effective data minimisation strategies that comply with GDPR requirements.</p> <p>Implement effective data minimisation strategies that comply with GDPR requirements.</p>
</article> </article>
<article class="related-item"> <article class="related-item">
<h4><a href="/blog/articles/legal-framework-web-scraping-uk">Legal Framework for Web Scraping in the UK</a></h4> <h4><a href="/blog/articles/web-scraping-compliance-uk-guide">Legal Framework for Web Scraping in the UK</a></h4>
<p>Complete guide to the legal considerations for web scraping under UK law.</p> <p>Complete guide to the legal considerations for web scraping under UK law.</p>
</article> </article>
<article class="related-item"> <article class="related-item">

View File

@@ -110,7 +110,7 @@ $read_time = 9;
<p>At its core, <strong>advanced statistical validation is the critical process that ensures accuracy</strong> in large datasets. For UK businesses relying on data for decision-making, moving beyond basic checks to implement robust statistical tests—like hypothesis testing, regression analysis, and outlier detection—is essential for maintaining a competitive edge and building trust in your analytics.</p> <p>At its core, <strong>advanced statistical validation is the critical process that ensures accuracy</strong> in large datasets. For UK businesses relying on data for decision-making, moving beyond basic checks to implement robust statistical tests—like hypothesis testing, regression analysis, and outlier detection—is essential for maintaining a competitive edge and building trust in your analytics.</p>
<h2>Leverage Expert Data Validation for Your Business</h2> <h2>Leverage Expert Data Validation for Your Business</h2>
<p>While understanding these concepts is the first step, implementing them requires expertise. At UK Data Services, we specialise in building robust data collection and validation pipelines. Our services ensure that the data you receive is not only comprehensive but also 99.8% accurate and fully GDPR compliant. Whether you need <a href="/services/market-research-data.php">market research data</a> or <a href="/services/competitor-price-monitoring.php">competitor price monitoring</a>, our advanced validation is built-in.</p> <p>While understanding these concepts is the first step, implementing them requires expertise. At UK Data Services, we specialise in building robust data collection and validation pipelines. Our services ensure that the data you receive is not only comprehensive but also 99.8% accurate and fully GDPR compliant. Whether you need <a href="/services/data-analysis-services">market research data</a> or <a href="/services/price-monitoring">competitor price monitoring</a>, our advanced validation is built-in.</p>
<p>Ready to build a foundation of trust in your data? <a href="/contact.php">Contact us today</a> for a free consultation on your data project.</p> <p>Ready to build a foundation of trust in your data? <a href="/contact.php">Contact us today</a> for a free consultation on your data project.</p>
<h2>Frequently Asked Questions</h2> <h2>Frequently Asked Questions</h2>

View File

@@ -115,7 +115,7 @@ $breadcrumbs = [
</section> </section>
<section> <section>
<h2>Comparing Top Platforms for Streaming Data Analytics</h2> <h2>Comparing Top Platforms for Streaming Data Analytics</h2>
<p>To help you navigate the options, we've compared the leading platforms optimised for streaming data based on performance, scalability, and common use cases. While our <a href="/services/data-analytics.php">data analytics team</a> can build a custom solution, understanding these core technologies is key.</p> <p>To help you navigate the options, we've compared the leading platforms optimised for streaming data based on performance, scalability, and common use cases. While our <a href="/services/data-analysis-services">data analytics team</a> can build a custom solution, understanding these core technologies is key.</p>
<table class="styled-table"> <table class="styled-table">
<thead> <thead>
<tr> <tr>
@@ -166,7 +166,7 @@ $breadcrumbs = [
</div> </div>
<div class="faq-item"> <div class="faq-item">
<h3>How can UK Data Services help with streaming analytics?</h3> <h3>How can UK Data Services help with streaming analytics?</h3>
<p>Our analytics engineering team specialises in designing and implementing bespoke real-time data solutions. From setting up robust data pipelines with our <a href="/services/web-scraping-services.php">web scraping services</a> to building advanced analytics dashboards, we provide end-to-end support to turn your streaming data into actionable intelligence. <a href="/contact.php">Contact us for a free consultation</a>.</p> <p>Our analytics engineering team specialises in designing and implementing bespoke real-time data solutions. From setting up robust data pipelines with our <a href="/services/web-scraping">web scraping services</a> to building advanced analytics dashboards, we provide end-to-end support to turn your streaming data into actionable intelligence. <a href="/contact.php">Contact us for a free consultation</a>.</p>
</div> </div>
<li><strong>Digital Transformation:</strong> IoT devices, mobile apps, and web platforms generating continuous data streams</li> <li><strong>Digital Transformation:</strong> IoT devices, mobile apps, and web platforms generating continuous data streams</li>
<li><strong>Customer Expectations:</strong> Users expecting immediate responses and personalized experiences</li> <li><strong>Customer Expectations:</strong> Users expecting immediate responses and personalized experiences</li>

View File

@@ -44,8 +44,8 @@ header('Content-Security-Policy: default-src "self"; script-src "self" "unsafe-i
<meta name="twitter:image" content="<?php echo htmlspecialchars($og_image); ?>"> <meta name="twitter:image" content="<?php echo htmlspecialchars($og_image); ?>">
<!-- Favicon --> <!-- Favicon -->
<link rel="icon" type="image/x-icon" href="/assets/images/favicon.ico"> <link rel="icon" type="image/x-icon" href="/assets/images/favicon.svg">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/apple-touch-icon.png"> <link rel="apple-touch-icon" sizes="180x180" href="/assets/images/apple-touch-icon.svg">
<!-- CSS --> <!-- CSS -->
<link rel="stylesheet" href="/assets/css/main.css"> <link rel="stylesheet" href="/assets/css/main.css">

View File

@@ -116,7 +116,7 @@ function getPageUrl($pageKey) {
'competitive-intelligence' => '/services/competitive-intelligence', 'competitive-intelligence' => '/services/competitive-intelligence',
'price-monitoring' => '/services/price-monitoring', 'price-monitoring' => '/services/price-monitoring',
'data-cleaning' => '/services/data-cleaning', 'data-cleaning' => '/services/data-cleaning',
'data-analytics' => '/services/data-analytics', 'data-analytics' => '/services/data-analysis-services',
'api-development' => '/services/api-development', 'api-development' => '/services/api-development',
'property-data' => '/services/property-data-extraction', 'property-data' => '/services/property-data-extraction',
'financial-data' => '/services/financial-data-services', 'financial-data' => '/services/financial-data-services',

View File

@@ -155,7 +155,7 @@ $serviceConfigs = [
'data-analytics' => [ 'data-analytics' => [
'name' => 'Data Analytics Services UK', 'name' => 'Data Analytics Services UK',
'description' => 'Business intelligence and data analytics solutions for UK enterprises. Transform raw data into actionable insights.', 'description' => 'Business intelligence and data analytics solutions for UK enterprises. Transform raw data into actionable insights.',
'url' => 'https://ukdataservices.co.uk/services/data-analytics', 'url' => 'https://ukdataservices.co.uk/services/data-analysis-services',
'serviceType' => 'Data Analytics', 'serviceType' => 'Data Analytics',
'priceRange' => '1000-30000', 'priceRange' => '1000-30000',
'features' => [ 'features' => [

View File

@@ -30,7 +30,7 @@ $urlMap = [
'competitive-intelligence' => '/services/competitive-intelligence', 'competitive-intelligence' => '/services/competitive-intelligence',
'price-monitoring' => '/services/price-monitoring', 'price-monitoring' => '/services/price-monitoring',
'data-cleaning' => '/services/data-cleaning', 'data-cleaning' => '/services/data-cleaning',
'data-analytics' => '/services/data-analytics', 'data-analytics' => '/services/data-analysis-services',
'api-development' => '/services/api-development', 'api-development' => '/services/api-development',
'property-data-extraction' => '/services/property-data-extraction', 'property-data-extraction' => '/services/property-data-extraction',
'financial-data-services' => '/services/financial-data-services' 'financial-data-services' => '/services/financial-data-services'
@@ -99,7 +99,7 @@ $serviceData = [
'icon' => 'icon-data-processing.svg' 'icon' => 'icon-data-processing.svg'
], ],
'data-analytics' => [ 'data-analytics' => [
'url' => '/services/data-analytics', 'url' => '/services/data-analysis-services',
'title' => 'Data Analytics', 'title' => 'Data Analytics',
'shortTitle' => 'Analytics', 'shortTitle' => 'Analytics',
'description' => 'Business intelligence and data analytics solutions', 'description' => 'Business intelligence and data analytics solutions',

View File

@@ -72,7 +72,7 @@ header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
<div class="hero-content"> <div class="hero-content">
<div class="breadcrumb"> <div class="breadcrumb">
<a href="/">Home</a> &gt; <a href="/">Home</a> &gt;
<a href="/locations">Locations</a> &gt; <a href="/">Locations</a> &gt;
<span>Bristol</span> <span>Bristol</span>
</div> </div>
@@ -175,9 +175,9 @@ header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
<div class="container"> <div class="container">
<h2>Also Serving Nearby Areas</h2> <h2>Also Serving Nearby Areas</h2>
<div class="locations-grid"> <div class="locations-grid">
<a href="/locations/web-scraping-london/" class="location-link">London</a> <a href="/locations/london" class="location-link">London</a>
<a href="/locations/web-scraping-manchester/" class="location-link">Manchester</a> <a href="/locations/manchester" class="location-link">Manchester</a>
<a href="/locations/web-scraping-birmingham/" class="location-link">Birmingham</a> <a href="/locations/birmingham" class="location-link">Birmingham</a>
<a href="/locations/" class="location-link">All Locations →</a> <a href="/locations/" class="location-link">All Locations →</a>
</div> </div>
</div> </div>

View File

@@ -72,7 +72,7 @@ header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
<div class="hero-content"> <div class="hero-content">
<div class="breadcrumb"> <div class="breadcrumb">
<a href="/">Home</a> &gt; <a href="/">Home</a> &gt;
<a href="/locations">Locations</a> &gt; <a href="/">Locations</a> &gt;
<span>Cardiff</span> <span>Cardiff</span>
</div> </div>
@@ -175,9 +175,9 @@ header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
<div class="container"> <div class="container">
<h2>Also Serving Nearby Areas</h2> <h2>Also Serving Nearby Areas</h2>
<div class="locations-grid"> <div class="locations-grid">
<a href="/locations/web-scraping-london/" class="location-link">London</a> <a href="/locations/london" class="location-link">London</a>
<a href="/locations/web-scraping-manchester/" class="location-link">Manchester</a> <a href="/locations/manchester" class="location-link">Manchester</a>
<a href="/locations/web-scraping-birmingham/" class="location-link">Birmingham</a> <a href="/locations/birmingham" class="location-link">Birmingham</a>
<a href="/locations/" class="location-link">All Locations →</a> <a href="/locations/" class="location-link">All Locations →</a>
</div> </div>
</div> </div>

View File

@@ -72,7 +72,7 @@ header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
<div class="hero-content"> <div class="hero-content">
<div class="breadcrumb"> <div class="breadcrumb">
<a href="/">Home</a> &gt; <a href="/">Home</a> &gt;
<a href="/locations">Locations</a> &gt; <a href="/">Locations</a> &gt;
<span>Edinburgh</span> <span>Edinburgh</span>
</div> </div>
@@ -175,9 +175,9 @@ header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
<div class="container"> <div class="container">
<h2>Also Serving Nearby Areas</h2> <h2>Also Serving Nearby Areas</h2>
<div class="locations-grid"> <div class="locations-grid">
<a href="/locations/web-scraping-london/" class="location-link">London</a> <a href="/locations/london" class="location-link">London</a>
<a href="/locations/web-scraping-manchester/" class="location-link">Manchester</a> <a href="/locations/manchester" class="location-link">Manchester</a>
<a href="/locations/web-scraping-birmingham/" class="location-link">Birmingham</a> <a href="/locations/birmingham" class="location-link">Birmingham</a>
<a href="/locations/" class="location-link">All Locations →</a> <a href="/locations/" class="location-link">All Locations →</a>
</div> </div>
</div> </div>

View File

@@ -72,7 +72,7 @@ header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
<div class="hero-content"> <div class="hero-content">
<div class="breadcrumb"> <div class="breadcrumb">
<a href="/">Home</a> &gt; <a href="/">Home</a> &gt;
<a href="/locations">Locations</a> &gt; <a href="/">Locations</a> &gt;
<span>Leeds</span> <span>Leeds</span>
</div> </div>
@@ -175,9 +175,9 @@ header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
<div class="container"> <div class="container">
<h2>Also Serving Nearby Areas</h2> <h2>Also Serving Nearby Areas</h2>
<div class="locations-grid"> <div class="locations-grid">
<a href="/locations/web-scraping-london/" class="location-link">London</a> <a href="/locations/london" class="location-link">London</a>
<a href="/locations/web-scraping-manchester/" class="location-link">Manchester</a> <a href="/locations/manchester" class="location-link">Manchester</a>
<a href="/locations/web-scraping-birmingham/" class="location-link">Birmingham</a> <a href="/locations/birmingham" class="location-link">Birmingham</a>
<a href="/locations/" class="location-link">All Locations →</a> <a href="/locations/" class="location-link">All Locations →</a>
</div> </div>
</div> </div>

View File

@@ -44,8 +44,8 @@ header('Content-Security-Policy: default-src "self"; script-src "self" "unsafe-i
<meta name="twitter:image" content="<?php echo htmlspecialchars($og_image); ?>"> <meta name="twitter:image" content="<?php echo htmlspecialchars($og_image); ?>">
<!-- Favicon --> <!-- Favicon -->
<link rel="icon" type="image/x-icon" href="/assets/images/favicon.ico"> <link rel="icon" type="image/x-icon" href="/assets/images/favicon.svg">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/apple-touch-icon.png"> <link rel="apple-touch-icon" sizes="180x180" href="/assets/images/apple-touch-icon.svg">
<!-- CSS --> <!-- CSS -->
<link rel="preload" href="/assets/css/main.css?v=20260222" as="style"> <link rel="preload" href="/assets/css/main.css?v=20260222" as="style">
@@ -567,9 +567,9 @@ https://competitor3.com/product"></textarea>
</div> </div>
<div class="service-card"> <div class="service-card">
<h3><a href="/price-monitoring">Price Monitoring</a></h3> <h3><a href="/services/price-monitoring">Price Monitoring</a></h3>
<p>Specialized price tracking across all retail sectors.</p> <p>Specialized price tracking across all retail sectors.</p>
<a href="/price-monitoring" class="service-link">Learn More →</a> <a href="/services/price-monitoring" class="service-link">Learn More →</a>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -44,8 +44,8 @@ header('Content-Security-Policy: default-src "self"; script-src "self" "unsafe-i
<meta name="twitter:image" content="<?php echo htmlspecialchars($og_image); ?>"> <meta name="twitter:image" content="<?php echo htmlspecialchars($og_image); ?>">
<!-- Favicon --> <!-- Favicon -->
<link rel="icon" type="image/x-icon" href="/assets/images/favicon.ico"> <link rel="icon" type="image/x-icon" href="/assets/images/favicon.svg">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/apple-touch-icon.png"> <link rel="apple-touch-icon" sizes="180x180" href="/assets/images/apple-touch-icon.svg">
<!-- CSS --> <!-- CSS -->
<link rel="stylesheet" href="/assets/css/main.css"> <link rel="stylesheet" href="/assets/css/main.css">