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>
This commit is contained in:
root
2026-01-29 11:39:22 +00:00
parent d8622b7f9e
commit 9cea601fb3
9 changed files with 628 additions and 561 deletions

View File

@@ -136,6 +136,12 @@ Options -Indexes
<IfModule mod_rewrite.c> <IfModule mod_rewrite.c>
RewriteEngine On RewriteEngine On
# Redirect old /services paths to /project-types
RewriteRule ^services/?$ /project-types [R=301,L]
RewriteRule ^services/data-cleaning\.php$ /project-types [R=301,L]
RewriteRule ^services/data-cleaning$ /project-types [R=301,L]
RewriteRule ^services/(.*)$ /project-types [R=301,L]
# Clean URL rewriting - remove .php extension # Clean URL rewriting - remove .php extension
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-f

View File

@@ -201,11 +201,11 @@ $breadcrumbs = [
<div class="nav-menu" id="nav-menu"> <div class="nav-menu" id="nav-menu">
<a href="/" class="nav-link">Home</a> <a href="/" class="nav-link">Home</a>
<a href="/#services" class="nav-link">Capabilities</a> <a href="/#services" class="nav-link">Capabilities</a>
<a href="project-types" class="nav-link">Project Types</a> <a href="/project-types" class="nav-link">Project Types</a>
<a href="about" class="nav-link">About</a> <a href="/about" class="nav-link">About</a>
<a href="blog/" class="nav-link">Blog</a> <a href="/blog/" class="nav-link">Blog</a>
<a href="/#contact" class="nav-link">Contact</a> <a href="/#contact" class="nav-link">Contact</a>
<a href="quote" class="nav-link cta-button">Request Consultation</a> <a href="/quote" class="nav-link cta-button">Request Consultation</a>
</div> </div>
<div class="nav-toggle" id="nav-toggle"> <div class="nav-toggle" id="nav-toggle">
<span class="bar"></span> <span class="bar"></span>
@@ -330,10 +330,10 @@ $breadcrumbs = [
<div style="max-width: 800px; margin: 0 auto; text-align: center;"> <div style="max-width: 800px; margin: 0 auto; text-align: center;">
<h2 style="margin-bottom: 30px;">Our Mission</h2> <h2 style="margin-bottom: 30px;">Our Mission</h2>
<p style="font-size: 1.3rem; line-height: 1.6; color: #333; margin-bottom: 40px; font-weight: 500;"> <p style="font-size: 1.3rem; line-height: 1.6; color: #333; margin-bottom: 40px; font-weight: 500;">
"To democratise access to web data and transform how businesses make decisions through accurate, actionable, and ethically-sourced information." We believe every UK business should be able to see what's really happening in their market — not just the ones with in-house data teams. We make that possible.
</p> </p>
<p style="font-size: 1.1rem; line-height: 1.6; color: #666;"> <p style="font-size: 1.1rem; line-height: 1.6; color: #666;">
We believe that every business, regardless of size, should have access to the data insights that drive competitive advantage. Our mission is to bridge the gap between complex web data and practical business intelligence, enabling our clients to make informed decisions that drive growth and innovation. Our mission is to bridge the gap between complex web data and practical business intelligence, enabling our clients to make informed decisions that drive growth and innovation.
</p> </p>
</div> </div>
</div> </div>
@@ -436,10 +436,10 @@ $breadcrumbs = [
<div class="container"> <div class="container">
<h2 style="margin-bottom: 20px;">Ready to Work Together?</h2> <h2 style="margin-bottom: 20px;">Ready to Work Together?</h2>
<p style="font-size: 1.2rem; color: #666; margin-bottom: 40px;"> <p style="font-size: 1.2rem; color: #666; margin-bottom: 40px;">
Let's discuss how our expertise can help transform your data challenges into opportunities Tell us about your data challenge and we'll show you what's possible.
</p> </p>
<div style="display: flex; gap: 20px; justify-content: center; flex-wrap: wrap;"> <div style="display: flex; gap: 20px; justify-content: center; flex-wrap: wrap;">
<a href="quote" class="btn btn-primary">Get Free Quote</a> <a href="/quote" class="btn btn-primary">Get Your Free Data Proposal</a>
<a href="/#contact" class="btn btn-secondary">Contact Us</a> <a href="/#contact" class="btn btn-secondary">Contact Us</a>
</div> </div>
</div> </div>

View File

@@ -4121,3 +4121,103 @@ main {
font-size: 0.9rem; font-size: 0.9rem;
} }
} }
/* Trust Signals Below Hero */
.trust-signals-hero {
background: #f8f9fa;
padding: 2rem 0;
text-align: center;
}
.trust-signals-hero .trust-heading {
font-size: 0.95rem;
color: #6c757d;
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 1.5rem;
}
.trust-signals-hero .trust-logos {
display: flex;
justify-content: center;
align-items: center;
gap: 2rem;
flex-wrap: wrap;
margin-bottom: 1.5rem;
}
.trust-signals-hero .trust-logo-placeholder {
width: 120px;
height: 50px;
background: #e9ecef;
border-radius: 6px;
}
.trust-signals-hero .trust-badges {
display: flex;
justify-content: center;
gap: 1.5rem;
flex-wrap: wrap;
}
.trust-signals-hero .trust-badges .badge {
background: #fff;
border: 1px solid #dee2e6;
padding: 0.5rem 1rem;
border-radius: 20px;
font-size: 0.9rem;
color: #495057;
}
/* Quote Page Layout */
.quote-page-layout {
display: grid;
grid-template-columns: 1fr 350px;
gap: 2rem;
max-width: 1100px;
margin: 0 auto;
padding: 2rem 0;
}
@media (max-width: 768px) {
.quote-page-layout {
grid-template-columns: 1fr;
}
}
.quote-sidebar {
position: sticky;
top: 100px;
align-self: start;
}
.quote-sidebar .testimonial-card {
background: #f8f9fa;
border-left: 4px solid #0d6efd;
padding: 1.5rem;
border-radius: 8px;
margin-bottom: 1.5rem;
}
.quote-sidebar .testimonial-card blockquote p {
font-style: italic;
margin-bottom: 0.5rem;
}
.quote-sidebar .what-happens-next {
background: #fff;
border: 1px solid #dee2e6;
padding: 1.5rem;
border-radius: 8px;
}
.quote-sidebar .what-happens-next ol {
padding-left: 1.2rem;
}
.quote-sidebar .what-happens-next li {
margin-bottom: 0.75rem;
}
.optional {
color: #6c757d;
font-weight: normal;
font-size: 0.85em;
}
.form-group input.error,
.form-group select.error {
border-color: #dc3545;
}
.form-buttons {
display: flex;
gap: 1rem;
margin-top: 1.5rem;
}
}

View File

@@ -135,7 +135,7 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog-og-image.png";
<!-- Blog search functionality --> <!-- Blog search functionality -->
<div class="hero-search"> <div class="hero-search">
<form method="GET" action="search.php"> <form method="GET" action="/blog/search">
<input type="search" name="q" placeholder="Search articles..." aria-label="Search blog articles" required> <input type="search" name="q" placeholder="Search articles..." aria-label="Search blog articles" required>
<button type="submit" aria-label="Search">🔍</button> <button type="submit" aria-label="Search">🔍</button>
</form> </form>
@@ -164,37 +164,37 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog-og-image.png";
<div class="container"> <div class="container">
<h2>Explore by Category</h2> <h2>Explore by Category</h2>
<div class="categories-grid"> <div class="categories-grid">
<a href="categories/web-scraping.php" class="category-card"> <a href="/blog/categories/web-scraping" class="category-card">
<span class="category-icon">🕷️</span> <span class="category-icon">🕷️</span>
<h3>Web Scraping</h3> <h3>Web Scraping</h3>
<p>Techniques, tools, and best practices for professional web data extraction</p> <p>Techniques, tools, and best practices for professional web data extraction</p>
</a> </a>
<a href="categories/data-analytics.php" class="category-card"> <a href="/blog/categories/data-analytics" class="category-card">
<span class="category-icon">📊</span> <span class="category-icon">📊</span>
<h3>Data Analytics</h3> <h3>Data Analytics</h3>
<p>Business intelligence insights and data analysis methodologies</p> <p>Business intelligence insights and data analysis methodologies</p>
</a> </a>
<a href="categories/compliance.php" class="category-card"> <a href="/blog/categories/compliance" class="category-card">
<span class="category-icon">⚖️</span> <span class="category-icon">⚖️</span>
<h3>Legal & Compliance</h3> <h3>Legal & Compliance</h3>
<p>UK data protection laws, GDPR compliance, and legal considerations</p> <p>UK data protection laws, GDPR compliance, and legal considerations</p>
</a> </a>
<a href="categories/industry-insights.php" class="category-card"> <a href="/blog/categories/industry-insights" class="category-card">
<span class="category-icon">🏢</span> <span class="category-icon">🏢</span>
<h3>Industry Insights</h3> <h3>Industry Insights</h3>
<p>Market trends, competitive analysis, and sector-specific guidance</p> <p>Market trends, competitive analysis, and sector-specific guidance</p>
</a> </a>
<a href="categories/case-studies.php" class="category-card"> <a href="/blog/categories/case-studies" class="category-card">
<span class="category-icon">📋</span> <span class="category-icon">📋</span>
<h3>Case Studies</h3> <h3>Case Studies</h3>
<p>Real-world examples and successful project implementations</p> <p>Real-world examples and successful project implementations</p>
</a> </a>
<a href="categories/technology.php" class="category-card"> <a href="/blog/categories/technology" class="category-card">
<span class="category-icon">⚙️</span> <span class="category-icon">⚙️</span>
<h3>Technology</h3> <h3>Technology</h3>
<p>Latest tools, platforms, and technological developments</p> <p>Latest tools, platforms, and technological developments</p>
@@ -214,11 +214,11 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog-og-image.png";
<span class="category">Legal & Compliance</span> <span class="category">Legal & Compliance</span>
<time datetime="2025-06-08">8 June 2025</time> <time datetime="2025-06-08">8 June 2025</time>
</div> </div>
<h3><a href="articles/web-scraping-compliance-uk-guide.php">Complete Guide to Web Scraping Compliance in the UK</a></h3> <h3><a href="/blog/articles/web-scraping-compliance-uk-guide">Complete Guide to Web Scraping Compliance in the UK</a></h3>
<p>Navigate the complex landscape of UK data protection laws and ensure your web scraping activities remain fully compliant with GDPR and industry regulations.</p> <p>Navigate the complex landscape of UK data protection laws and ensure your web scraping activities remain fully compliant with GDPR and industry regulations.</p>
<div class="article-footer"> <div class="article-footer">
<span class="read-time">12 min read</span> <span class="read-time">12 min read</span>
<a href="articles/web-scraping-compliance-uk-guide.php" class="read-more">Read Full Article →</a> <a href="/blog/articles/web-scraping-compliance-uk-guide" class="read-more">Read Full Article →</a>
</div> </div>
</div> </div>
</article> </article>
@@ -229,11 +229,11 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog-og-image.png";
<span class="category">Business Intelligence</span> <span class="category">Business Intelligence</span>
<time datetime="2025-06-05">5 June 2025</time> <time datetime="2025-06-05">5 June 2025</time>
</div> </div>
<h3><a href="articles/competitive-intelligence-roi-metrics.php">Measuring ROI from Competitive Intelligence Programmes</a></h3> <h3><a href="/blog/articles/competitive-intelligence-roi-metrics">Measuring ROI from Competitive Intelligence Programmes</a></h3>
<p>Learn how to quantify the business value of competitive intelligence initiatives and demonstrate measurable returns on your data investment.</p> <p>Learn how to quantify the business value of competitive intelligence initiatives and demonstrate measurable returns on your data investment.</p>
<div class="article-footer"> <div class="article-footer">
<span class="read-time">8 min read</span> <span class="read-time">8 min read</span>
<a href="articles/competitive-intelligence-roi-metrics.php" class="read-more">Read More →</a> <a href="/blog/articles/competitive-intelligence-roi-metrics" class="read-more">Read More →</a>
</div> </div>
</div> </div>
</article> </article>
@@ -244,11 +244,11 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog-og-image.png";
<span class="category">Industry Insights</span> <span class="category">Industry Insights</span>
<time datetime="2025-06-03">3 June 2025</time> <time datetime="2025-06-03">3 June 2025</time>
</div> </div>
<h3><a href="articles/retail-price-monitoring-strategies.php">Advanced Price Monitoring Strategies for UK Retailers</a></h3> <h3><a href="/blog/articles/retail-price-monitoring-strategies">Advanced Price Monitoring Strategies for UK Retailers</a></h3>
<p>Discover how leading British retailers leverage automated price monitoring to maintain competitive advantage and optimise pricing strategies.</p> <p>Discover how leading British retailers leverage automated price monitoring to maintain competitive advantage and optimise pricing strategies.</p>
<div class="article-footer"> <div class="article-footer">
<span class="read-time">10 min read</span> <span class="read-time">10 min read</span>
<a href="articles/retail-price-monitoring-strategies.php" class="read-more">Read More →</a> <a href="/blog/articles/retail-price-monitoring-strategies" class="read-more">Read More →</a>
</div> </div>
</div> </div>
</article> </article>
@@ -267,11 +267,11 @@ $og_image = "https://ukdataservices.co.uk/assets/images/blog-og-image.png";
<span class="category">Technology</span> <span class="category">Technology</span>
<time datetime="2025-08-08">8 August 2025</time> <time datetime="2025-08-08">8 August 2025</time>
</div> </div>
<h3><a href="articles/real-time-data-extraction-technical-guide-uk-businesses.php">Real-Time Data Extraction: Technical Guide for UK Businesses</a></h3> <h3><a href="/blog/articles/real-time-data-extraction-technical-guide-uk-businesses">Real-Time Data Extraction: Technical Guide for UK Businesses</a></h3>
<p>Master the technologies, architectures, and best practices for implementing real-time data extraction systems that deliver instant insights and competitive advantage.</p> <p>Master the technologies, architectures, and best practices for implementing real-time data extraction systems that deliver instant insights and competitive advantage.</p>
<div class="article-footer"> <div class="article-footer">
<span class="read-time">17 min read</span> <span class="read-time">17 min read</span>
<a href="articles/real-time-data-extraction-technical-guide-uk-businesses.php" class="read-more">Read →</a> <a href="/blog/articles/real-time-data-extraction-technical-guide-uk-businesses" class="read-more">Read →</a>
</div> </div>
</article> </article>

View File

@@ -313,25 +313,25 @@ if ($search_query) {
<div class="container"> <div class="container">
<h2>Browse by Category</h2> <h2>Browse by Category</h2>
<div class="categories-grid"> <div class="categories-grid">
<a href="categories/web-scraping.php" class="category-card"> <a href="/blog/categories/web-scraping" class="category-card">
<span class="category-icon">🕷️</span> <span class="category-icon">🕷️</span>
<h3>Web Scraping</h3> <h3>Web Scraping</h3>
<p>Techniques, tools, and best practices</p> <p>Techniques, tools, and best practices</p>
</a> </a>
<a href="categories/data-analytics.php" class="category-card"> <a href="/blog/categories/data-analytics" class="category-card">
<span class="category-icon">📊</span> <span class="category-icon">📊</span>
<h3>Data Analytics</h3> <h3>Data Analytics</h3>
<p>Business intelligence insights</p> <p>Business intelligence insights</p>
</a> </a>
<a href="categories/compliance.php" class="category-card"> <a href="/blog/categories/compliance" class="category-card">
<span class="category-icon">⚖️</span> <span class="category-icon">⚖️</span>
<h3>Legal & Compliance</h3> <h3>Legal & Compliance</h3>
<p>UK data protection and GDPR</p> <p>UK data protection and GDPR</p>
</a> </a>
<a href="categories/technology.php" class="category-card"> <a href="/blog/categories/technology" class="category-card">
<span class="category-icon">⚙️</span> <span class="category-icon">⚙️</span>
<h3>Technology</h3> <h3>Technology</h3>
<p>Latest tools and platforms</p> <p>Latest tools and platforms</p>

145
index.php
View File

@@ -357,18 +357,10 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
"mainEntity": [ "mainEntity": [
{ {
"@type": "Question", "@type": "Question",
"name": "What is web scraping and how can it benefit my business?", "name": "How much does web scraping cost?",
"acceptedAnswer": { "acceptedAnswer": {
"@type": "Answer", "@type": "Answer",
"text": "Web scraping is the automated process of extracting data from websites. It benefits businesses by providing competitive intelligence, automating data collection, enabling real-time price monitoring, and supporting strategic decision-making." "text": "Our web scraping projects typically start from £500 for simple data extraction tasks. Pricing varies based on data volume, complexity, frequency of updates, and delivery format. We offer fixed-price quotes with no hidden fees."
}
},
{
"@type": "Question",
"name": "How much do web scraping services cost?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Web scraping costs vary based on complexity: Simple extraction £500-£2,000, Medium projects £2,000-£10,000, Enterprise solutions £10,000+. We provide custom quotes based on your specific requirements."
} }
}, },
{ {
@@ -376,7 +368,39 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
"name": "Is web scraping legal in the UK?", "name": "Is web scraping legal in the UK?",
"acceptedAnswer": { "acceptedAnswer": {
"@type": "Answer", "@type": "Answer",
"text": "Yes, web scraping is legal in the UK when conducted properly. We ensure full compliance with UK Data Protection Act 2018, GDPR, website terms of service, and industry best practices." "text": "Yes, web scraping is legal in the UK when conducted ethically and in compliance with data protection laws. We ensure all our data collection follows GDPR guidelines, respects robots.txt directives, and adheres to website terms of service. Our compliance team reviews every project to ensure legal and ethical data collection."
}
},
{
"@type": "Question",
"name": "How long does a typical project take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Project timelines vary based on scope and complexity. Simple one-off extractions can be delivered within 2-5 business days. Larger projects with multiple data sources typically take 1-3 weeks. Ongoing monitoring services are set up within a week and run continuously."
}
},
{
"@type": "Question",
"name": "What data formats do you deliver?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We deliver data in whatever format works best for your workflow: CSV, Excel, JSON, XML, or direct database integration. We can also connect to your existing systems via API, push data to cloud storage (AWS S3, Google Cloud), or integrate with your CRM, BI tools, or data warehouse."
}
},
{
"@type": "Question",
"name": "Is the data GDPR compliant?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, GDPR compliance is built into everything we do. We only collect publicly available data with legitimate business purposes. Personal data is handled according to data minimisation principles, and we provide full documentation for your compliance records."
}
},
{
"@type": "Question",
"name": "Do you offer ongoing monitoring services?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, we offer continuous monitoring solutions for price tracking, competitor analysis, and market intelligence. Data can be updated hourly, daily, or weekly depending on your needs. We provide real-time alerts for significant changes and customisable dashboards to visualise trends over time."
} }
} }
] ]
@@ -466,7 +490,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<a href="#services" class="nav-link">Capabilities</a> <a href="#services" class="nav-link">Capabilities</a>
<a href="/project-types" class="nav-link">Project Types</a> <a href="/project-types" class="nav-link">Project Types</a>
<a href="/about" class="nav-link">About</a> <a href="/about" class="nav-link">About</a>
<a href="blog/" class="nav-link">Blog</a> <a href="/blog/" class="nav-link">Blog</a>
<a href="#contact" class="nav-link">Contact</a> <a href="#contact" class="nav-link">Contact</a>
<a href="/quote" class="nav-link cta-button">Request Consultation</a> <a href="/quote" class="nav-link cta-button">Request Consultation</a>
</div> </div>
@@ -483,16 +507,16 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<section id="home" class="hero"> <section id="home" class="hero">
<div class="hero-container"> <div class="hero-container">
<div class="hero-content"> <div class="hero-content">
<h1 class="hero-title"><span class="highlight rotating-text" id="rotating-text">UK's Leading Web Scraping & Data Analytics Services</span></h1> <h1 class="hero-title">Stop guessing what your competitors are doing.</h1>
<p class="hero-subtitle" id="hero-subtitle">Transform your business decisions with accurate, real-time market intelligence. We help UK businesses extract competitor data, monitor prices, and automate research—all while staying 100% GDPR compliant.</p> <p class="hero-subtitle" id="hero-subtitle">We extract real-time pricing, product, and market data from any website — legally, accurately, and on your schedule.</p>
<div class="hero-buttons"> <div class="hero-buttons">
<a href="/quote" class="btn btn-primary">Request Consultation</a> <a href="/quote" class="btn btn-primary">Get Your Free Data Proposal</a>
<a href="#services" class="btn btn-secondary">Our Capabilities</a> <a href="/project-types" class="btn btn-secondary">See Our Work</a>
</div> </div>
<div class="hero-stats"> <div class="hero-stats">
<div class="stat"> <div class="stat">
<span class="stat-number">£2.5M+</span> <span class="stat-number">500+</span>
<span class="stat-label">Value Created for Clients</span> <span class="stat-label">Projects Delivered</span>
</div> </div>
<div class="stat"> <div class="stat">
<span class="stat-number">99.8%</span> <span class="stat-number">99.8%</span>
@@ -599,12 +623,31 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
</div> </div>
</section> </section>
<!-- Trust Signals Below Hero -->
<section class="trust-signals-hero">
<div class="container">
<p class="trust-heading">Trusted by businesses across the UK</p>
<div class="trust-logos">
<div class="trust-logo-placeholder"></div>
<div class="trust-logo-placeholder"></div>
<div class="trust-logo-placeholder"></div>
<div class="trust-logo-placeholder"></div>
<div class="trust-logo-placeholder"></div>
</div>
<div class="trust-badges">
<span class="badge">GDPR Compliant</span>
<span class="badge">ICO Registered</span>
<span class="badge">Cyber Essentials</span>
</div>
</div>
</section>
<!-- Services Section --> <!-- Services Section -->
<section id="services" class="services"> <section id="services" class="services">
<div class="container"> <div class="container">
<div class="section-header"> <div class="section-header">
<h2>Enterprise Data Solutions Portfolio</h2> <h2>Enterprise Data Solutions Portfolio</h2>
<p>Comprehensive data intelligence services designed for mission-critical business operations and strategic decision-making across British industry sectors. Our <a href="/about">experienced team</a> delivers solutions for <a href="/project-types">diverse project types</a> while maintaining full <a href="blog/articles/web-scraping-compliance-uk-guide.php">legal compliance</a> with UK data protection regulations.</p> <p>Comprehensive data intelligence services designed for mission-critical business operations and strategic decision-making across British industry sectors. Our <a href="/about">experienced team</a> delivers solutions for <a href="/project-types">diverse project types</a> while maintaining full <a href="/blog/articles/web-scraping-compliance-uk-guide">legal compliance</a> with UK data protection regulations.</p>
</div> </div>
<div class="services-grid"> <div class="services-grid">
<div class="service-card animate-on-scroll" style="--animation-delay: 0.1s;"> <div class="service-card animate-on-scroll" style="--animation-delay: 0.1s;">
@@ -612,15 +655,15 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<img src="assets/images/icon-web-scraping-v2.svg" alt="Enterprise web scraping technology icon featuring data extraction pipeline and automated collection systems" loading="lazy"> <img src="assets/images/icon-web-scraping-v2.svg" alt="Enterprise web scraping technology icon featuring data extraction pipeline and automated collection systems" loading="lazy">
</div> </div>
<h3>Enterprise Web Intelligence & Monitoring</h3> <h3>Enterprise Web Intelligence & Monitoring</h3>
<p>Our web scraping services UK consultancy delivers strategic data acquisition solutions utilising advanced web intelligence platforms and proprietary extraction methodologies. Trusted by <a href="case-studies/">leading UK businesses</a> across London, Manchester, and Birmingham for <a href="blog/articles/competitive-intelligence-roi-metrics.php">competitive intelligence</a>, market surveillance, and automated data collection with <a href="blog/articles/web-scraping-compliance-uk-guide.php">full legal compliance</a>.</p> <p>Our web scraping services UK consultancy delivers strategic data acquisition solutions utilising advanced web intelligence platforms and proprietary extraction methodologies. Trusted by <a href="case-studies/">leading UK businesses</a> across London, Manchester, and Birmingham for <a href="/blog/articles/competitive-intelligence-roi-metrics">competitive intelligence</a>, market surveillance, and automated data collection with <a href="/blog/articles/web-scraping-compliance-uk-guide">full legal compliance</a>.</p>
<ul> <ul>
<li>Competitive intelligence & market surveillance</li> <li>Competitive intelligence & market surveillance</li>
<li>Financial data aggregation & securities monitoring</li> <li>Financial data aggregation & securities monitoring</li>
<li>E-commerce pricing intelligence & inventory tracking</li> <li>E-commerce pricing intelligence & inventory tracking</li>
<li><a href="blog/articles/uk-property-market-data-trends.php">Property market analysis</a> & investment research</li> <li><a href="/blog/articles/uk-property-market-data-trends">Property market analysis</a> & investment research</li>
<li>Multi-platform marketplace intelligence (Amazon, eBay, Auto Trader)</li> <li>Multi-platform marketplace intelligence (Amazon, eBay, Auto Trader)</li>
<li><a href="blog/articles/retail-price-monitoring-strategies.php">Promotional intelligence</a> & pricing strategy analysis</li> <li><a href="/blog/articles/retail-price-monitoring-strategies">Promotional intelligence</a> & pricing strategy analysis</li>
<li><a href="blog/categories/compliance.php">GDPR-compliant</a> data collection processes</li> <li><a href="/blog/categories/compliance">GDPR-compliant</a> data collection processes</li>
<li>Real-time market monitoring and alert systems</li> <li>Real-time market monitoring and alert systems</li>
</ul> </ul>
</div> </div>
@@ -630,10 +673,10 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<img src="assets/images/icon-scalability.svg" alt="Cloud-native scalability icon showing distributed data processing architecture with growth arrows and server clusters" loading="lazy"> <img src="assets/images/icon-scalability.svg" alt="Cloud-native scalability icon showing distributed data processing architecture with growth arrows and server clusters" loading="lazy">
</div> </div>
<h3>Advanced Technology Platform</h3> <h3>Advanced Technology Platform</h3>
<p>Our enterprise-grade infrastructure leverages cutting-edge Microsoft technologies and <a href="blog/articles/cloud-native-scraping-architecture.php">cloud-native architectures</a> to deliver scalable, reliable data solutions. Built for <a href="services/data-cleaning.php">enterprise-scale operations</a> with 99.8% uptime guarantees and comprehensive <a href="gdpr-compliance">data protection measures</a>.</p> <p>Our enterprise-grade infrastructure leverages cutting-edge Microsoft technologies and <a href="/blog/articles/cloud-native-scraping-architecture">cloud-native architectures</a> to deliver scalable, reliable data solutions. Built for <a href="/project-types">enterprise-scale operations</a> with 99.8% uptime guarantees and comprehensive <a href="gdpr-compliance">data protection measures</a>.</p>
<ul> <ul>
<li><a href="blog/articles/python-data-pipeline-tools-2025.php">Cloud-native data processing pipelines</a></li> <li><a href="/blog/articles/python-data-pipeline-tools-2025">Cloud-native data processing pipelines</a></li>
<li><a href="blog/articles/real-time-analytics-streaming-data.php">Real-time data streaming & analytics</a></li> <li><a href="/blog/articles/real-time-analytics-streaming-data">Real-time data streaming & analytics</a></li>
<li>Enterprise security & encrypted data storage</li> <li>Enterprise security & encrypted data storage</li>
<li>API-first architecture & system integration</li> <li>API-first architecture & system integration</li>
</ul> </ul>
@@ -647,10 +690,10 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<p>Professional data analytics London solutions providing end-to-end data lifecycle management tailored to meet complex enterprise requirements and UK regulatory compliance standards across all major cities.</p> <p>Professional data analytics London solutions providing end-to-end data lifecycle management tailored to meet complex enterprise requirements and UK regulatory compliance standards across all major cities.</p>
<ul> <ul>
<li>Strategic web intelligence programmes</li> <li>Strategic web intelligence programmes</li>
<li><a href="blog/articles/database-optimization-big-data.php">Database migration & transformation services</a></li> <li><a href="/blog/articles/database-optimization-big-data">Database migration & transformation services</a></li>
<li>Lead generation & CRM data enrichment</li> <li>Lead generation & CRM data enrichment</li>
<li>Document digitisation & data entry services</li> <li>Document digitisation & data entry services</li>
<li><a href="blog/articles/data-quality-validation-pipelines.php">Data processing & quality assurance</a></li> <li><a href="/blog/articles/data-quality-validation-pipelines">Data processing & quality assurance</a></li>
<li>Bulk data operations & system integration</li> <li>Bulk data operations & system integration</li>
<li>Bespoke data extraction solutions</li> <li>Bespoke data extraction solutions</li>
</ul> </ul>
@@ -660,8 +703,8 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="service-icon"> <div class="service-icon">
<img src="assets/images/icon-automation.svg" alt="Business automation icon showing robotic process automation with gears, workflows, and automated data integration systems" loading="lazy"> <img src="assets/images/icon-automation.svg" alt="Business automation icon showing robotic process automation with gears, workflows, and automated data integration systems" loading="lazy">
</div> </div>
<h3>Automation & APIs</h3> <h3>Automation &amp; APIs</h3>
<p>Streamline your data workflows with custom automation solutions and API integrations.</p> <p>Automate your data collection. Get fresh data delivered to your systems daily — no manual exports, no copy-pasting from spreadsheets.</p>
<ul> <ul>
<li>Custom API development</li> <li>Custom API development</li>
<li>Automated data pipelines</li> <li>Automated data pipelines</li>
@@ -674,13 +717,13 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="service-icon"> <div class="service-icon">
<img src="assets/images/icon-compliance.svg" alt="GDPR compliance shield icon featuring legal checkmarks, data protection symbols, and UK regulatory compliance badges" loading="lazy"> <img src="assets/images/icon-compliance.svg" alt="GDPR compliance shield icon featuring legal checkmarks, data protection symbols, and UK regulatory compliance badges" loading="lazy">
</div> </div>
<h3>Compliance & Security</h3> <h3>Compliance &amp; Security</h3>
<p>Maintain the highest standards of data security and regulatory compliance across all projects.</p> <p>Sleep easy knowing your data is handled right. Full GDPR compliance, encryption, and audit trails built into every project.</p>
<ul> <ul>
<li>GDPR compliance</li> <li>GDPR-compliant data handling</li>
<li>Data encryption</li> <li>End-to-end encryption</li>
<li>Secure data transfer</li> <li>Full audit trails</li>
<li>Privacy protection</li> <li>Secure data storage</li>
</ul> </ul>
</div> </div>
@@ -689,12 +732,12 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<img src="assets/images/icon-consulting.svg" alt="Strategic consulting icon showing business analysts, data strategy frameworks, and custom solution development blueprints" loading="lazy"> <img src="assets/images/icon-consulting.svg" alt="Strategic consulting icon showing business analysts, data strategy frameworks, and custom solution development blueprints" loading="lazy">
</div> </div>
<h3>Custom Development</h3> <h3>Custom Development</h3>
<p>Build tailored solutions designed specifically for your unique business requirements and data challenges.</p> <p>Built for your exact requirements. Off-the-shelf tools don't work? We'll build a scraping solution that fits your data sources, your format, your schedule.</p>
<ul> <ul>
<li>Bespoke scraping solutions</li> <li>Bespoke scraping solutions</li>
<li>Custom API development</li> <li>Custom data formats</li>
<li>Tailored reporting systems</li> <li>Flexible scheduling</li>
<li>System integrations</li> <li>Ongoing maintenance</li>
</ul> </ul>
</div> </div>
</div> </div>
@@ -706,7 +749,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="container"> <div class="container">
<div class="section-header"> <div class="section-header">
<h2>Trusted by Industry Leaders Across the UK</h2> <h2>Trusted by Industry Leaders Across the UK</h2>
<p>Our enterprise clients span regulated industries including <a href="blog/categories/industry-insights.php">financial services</a>, gaming, property, and retail across London, Manchester, Birmingham, Edinburgh, and Cardiff. From <a href="case-studies/">FTSE 100 companies</a> to innovative startups, we deliver <a href="blog/articles/web-scraping-compliance-uk-guide.php">compliant data solutions</a> that drive business growth.</p> <p>Our enterprise clients span regulated industries including <a href="/blog/categories/industry-insights">financial services</a>, gaming, property, and retail across London, Manchester, Birmingham, Edinburgh, and Cardiff. From <a href="case-studies/">FTSE 100 companies</a> to innovative startups, we deliver <a href="/blog/articles/web-scraping-compliance-uk-guide">compliant data solutions</a> that drive business growth.</p>
</div> </div>
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 40px; align-items: center; opacity: 0.7; margin-bottom: 60px;"> <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 40px; align-items: center; opacity: 0.7; margin-bottom: 60px;">
@@ -740,17 +783,17 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div style="text-align: center; padding: 20px; background: #f8f9fa; border-radius: 12px;"> <div style="text-align: center; padding: 20px; background: #f8f9fa; border-radius: 12px;">
<h4 style="color: #179e83; margin-bottom: 15px;">🏙️ London & South East</h4> <h4 style="color: #179e83; margin-bottom: 15px;">🏙️ London & South East</h4>
<p style="color: #666; margin: 0;">Financial services, fintech, and e-commerce data solutions for the capital's business district.</p> <p style="color: #666; margin: 0;">Financial services, fintech, and e-commerce data solutions for the capital's business district.</p>
<a href="blog/articles/uk-property-market-data-trends.php" style="color: #179e83; text-decoration: none; font-weight: 500;">Property Market Analysis →</a> <a href="/blog/articles/uk-property-market-data-trends" style="color: #179e83; text-decoration: none; font-weight: 500;">Property Market Analysis →</a>
</div> </div>
<div style="text-align: center; padding: 20px; background: #f8f9fa; border-radius: 12px;"> <div style="text-align: center; padding: 20px; background: #f8f9fa; border-radius: 12px;">
<h4 style="color: #179e83; margin-bottom: 15px;">🏭 Manchester & North West</h4> <h4 style="color: #179e83; margin-bottom: 15px;">🏭 Manchester & North West</h4>
<p style="color: #666; margin: 0;">Manufacturing, logistics, and industrial data intelligence for the North West's business hub.</p> <p style="color: #666; margin: 0;">Manufacturing, logistics, and industrial data intelligence for the North West's business hub.</p>
<a href="services/data-cleaning.php" style="color: #179e83; text-decoration: none; font-weight: 500;">Data Processing Services →</a> <a href="/project-types" style="color: #179e83; text-decoration: none; font-weight: 500;">Data Processing Services →</a>
</div> </div>
<div style="text-align: center; padding: 20px; background: #f8f9fa; border-radius: 12px;"> <div style="text-align: center; padding: 20px; background: #f8f9fa; border-radius: 12px;">
<h4 style="color: #179e83; margin-bottom: 15px;">🏴󠁧󠁢󠁳󠁣󠁴󠁿 Edinburgh & Scotland</h4> <h4 style="color: #179e83; margin-bottom: 15px;">🏴󠁧󠁢󠁳󠁣󠁴󠁿 Edinburgh & Scotland</h4>
<p style="color: #666; margin: 0;">Energy, oil & gas, and renewable energy sector data solutions across Scotland.</p> <p style="color: #666; margin: 0;">Energy, oil & gas, and renewable energy sector data solutions across Scotland.</p>
<a href="blog/categories/industry-insights.php" style="color: #179e83; text-decoration: none; font-weight: 500;">Industry Insights →</a> <a href="/blog/categories/industry-insights" style="color: #179e83; text-decoration: none; font-weight: 500;">Industry Insights →</a>
</div> </div>
<div style="text-align: center; padding: 20px; background: #f8f9fa; border-radius: 12px;"> <div style="text-align: center; padding: 20px; background: #f8f9fa; border-radius: 12px;">
<h4 style="color: #179e83; margin-bottom: 15px;">🏴󠁧󠁢󠁷󠁬󠁳󠁿 Cardiff & Wales</h4> <h4 style="color: #179e83; margin-bottom: 15px;">🏴󠁧󠁢󠁷󠁬󠁳󠁿 Cardiff & Wales</h4>
@@ -818,7 +861,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="container"> <div class="container">
<div class="section-header"> <div class="section-header">
<h2>Why Choose UK Data Services</h2> <h2>Why Choose UK Data Services</h2>
<p>Enterprise-grade expertise, cutting-edge technology infrastructure, and unwavering commitment to delivering measurable business outcomes. Trusted by businesses across London, Manchester, Birmingham, and throughout the UK for <a href="blog/articles/web-scraping-compliance-uk-guide.php">compliant data extraction</a> and <a href="blog/categories/data-analytics.php">advanced analytics solutions</a>.</p> <p>Enterprise-grade expertise, cutting-edge technology infrastructure, and unwavering commitment to delivering measurable business outcomes. Trusted by businesses across London, Manchester, Birmingham, and throughout the UK for <a href="/blog/articles/web-scraping-compliance-uk-guide">compliant data extraction</a> and <a href="/blog/categories/data-analytics">advanced analytics solutions</a>.</p>
</div> </div>
<div class="features-grid"> <div class="features-grid">
<div class="feature"> <div class="feature">
@@ -826,7 +869,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<img src="assets/images/icon-accuracy.svg" alt="Data precision target icon showing accuracy metrics, quality validation checkmarks, and statistical accuracy indicators" loading="lazy"> <img src="assets/images/icon-accuracy.svg" alt="Data precision target icon showing accuracy metrics, quality validation checkmarks, and statistical accuracy indicators" loading="lazy">
</div> </div>
<h3>Guaranteed Data Precision</h3> <h3>Guaranteed Data Precision</h3>
<p>Exceptional 99.8% accuracy rates achieved through advanced validation algorithms and rigorous quality assurance methodologies. Our <a href="blog/articles/data-quality-validation-pipelines.php">data quality framework</a> ensures enterprise-grade reliability.</p> <p>Exceptional 99.8% accuracy rates achieved through advanced validation algorithms and rigorous quality assurance methodologies. Our <a href="/blog/articles/data-quality-validation-pipelines">data quality framework</a> ensures enterprise-grade reliability.</p>
</div> </div>
<div class="feature"> <div class="feature">
@@ -834,7 +877,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<img src="assets/images/icon-speed.svg" alt="High-speed delivery icon featuring performance metrics, acceleration arrows, and rapid deployment timelines" loading="lazy"> <img src="assets/images/icon-speed.svg" alt="High-speed delivery icon featuring performance metrics, acceleration arrows, and rapid deployment timelines" loading="lazy">
</div> </div>
<h3>Accelerated Delivery Excellence</h3> <h3>Accelerated Delivery Excellence</h3>
<p>Optimised workflows and automated processing pipelines enable rapid project completion whilst maintaining enterprise-grade quality standards. Learn about our <a href="blog/categories/technology.php">advanced technology stack</a>.</p> <p>Optimised workflows and automated processing pipelines enable rapid project completion whilst maintaining enterprise-grade quality standards. Learn about our <a href="/blog/categories/technology">advanced technology stack</a>.</p>
</div> </div>
<div class="feature"> <div class="feature">
@@ -842,7 +885,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<img src="assets/images/icon-security.svg" alt="Enterprise security shield icon with encryption locks, data protection barriers, and cybersecurity monitoring systems" loading="lazy"> <img src="assets/images/icon-security.svg" alt="Enterprise security shield icon with encryption locks, data protection barriers, and cybersecurity monitoring systems" loading="lazy">
</div> </div>
<h3>Enterprise Security & Compliance</h3> <h3>Enterprise Security & Compliance</h3>
<p>Enterprise-grade security measures and <a href="gdpr-compliance">GDPR compliance frameworks</a> protect sensitive data throughout the entire processing lifecycle. Full adherence to <a href="blog/categories/compliance.php">UK data protection regulations</a>.</p> <p>Enterprise-grade security measures and <a href="gdpr-compliance">GDPR compliance frameworks</a> protect sensitive data throughout the entire processing lifecycle. Full adherence to <a href="/blog/categories/compliance">UK data protection regulations</a>.</p>
</div> </div>
<div class="feature"> <div class="feature">
@@ -850,7 +893,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<img src="assets/images/icon-scalability.svg" alt="Scalable infrastructure icon showing cloud expansion, distributed systems, and elastic resource allocation capabilities" loading="lazy"> <img src="assets/images/icon-scalability.svg" alt="Scalable infrastructure icon showing cloud expansion, distributed systems, and elastic resource allocation capabilities" loading="lazy">
</div> </div>
<h3>Scalable Infrastructure Platform</h3> <h3>Scalable Infrastructure Platform</h3>
<p>Cloud-native architecture scales seamlessly from pilot programmes to enterprise-wide deployments, supporting millions of data points daily. Explore our <a href="blog/articles/cloud-native-scraping-architecture.php">enterprise architecture approach</a>.</p> <p>Cloud-native architecture scales seamlessly from pilot programmes to enterprise-wide deployments, supporting millions of data points daily. Explore our <a href="/blog/articles/cloud-native-scraping-architecture">enterprise architecture approach</a>.</p>
</div> </div>
<div class="feature"> <div class="feature">
@@ -866,7 +909,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<img src="assets/images/icon-compliance-check.svg" alt="Regulatory compliance checklist icon with government badges, legal verification marks, and audit approval stamps" loading="lazy"> <img src="assets/images/icon-compliance-check.svg" alt="Regulatory compliance checklist icon with government badges, legal verification marks, and audit approval stamps" loading="lazy">
</div> </div>
<h3>Full Regulatory Compliance</h3> <h3>Full Regulatory Compliance</h3>
<p>Comprehensive compliance with UK data protection legislation, industry regulations, and international privacy standards ensuring legal certainty. Read our <a href="blog/articles/gdpr-data-minimisation-practices.php">compliance best practices guide</a>.</p> <p>Comprehensive compliance with UK data protection legislation, industry regulations, and international privacy standards ensuring legal certainty. Read our <a href="/blog/articles/gdpr-data-minimisation-practices">compliance best practices guide</a>.</p>
</div> </div>
</div> </div>
</div> </div>
@@ -1178,7 +1221,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="footer-section"> <div class="footer-section">
<h3>Resources & Insights</h3> <h3>Resources & Insights</h3>
<ul> <ul>
<li><a href="blog/">Data Intelligence Blog</a></li> <li><a href="/blog/">Data Intelligence Blog</a></li>
<li><a href="case-studies/">Case Studies</a></li> <li><a href="case-studies/">Case Studies</a></li>
<li><a href="/about">About UK Data Services</a></li> <li><a href="/about">About UK Data Services</a></li>
<li><a href="/project-types">Project Types</a></li> <li><a href="/project-types">Project Types</a></li>

View File

@@ -6,8 +6,8 @@ header('X-XSS-Protection: 1; mode=block');
header('Strict-Transport-Security: max-age=31536000; includeSubDomains'); header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
header('Referrer-Policy: strict-origin-when-cross-origin'); header('Referrer-Policy: strict-origin-when-cross-origin');
$page_title = "Project Types | UK Data Services - Development Portfolio"; $page_title = "Web Scraping & Data Services | Project Types | UK Data Services";
$page_description = "Discover the diverse range of C# development projects we've undertaken, from web scraping frameworks to business intelligence systems and environmental data processing."; $page_description = "Explore the data solutions we've delivered for UK businesses — from web scraping frameworks to business intelligence systems and automation.";
$canonical_url = "https://ukdataservices.co.uk/project-types"; $canonical_url = "https://ukdataservices.co.uk/project-types";
// Breadcrumb navigation // Breadcrumb navigation
@@ -291,6 +291,35 @@ $breadcrumbs = [
} }
</style> </style>
<?php include($_SERVER['DOCUMENT_ROOT'] . '/includes/breadcrumb-schema.php'); ?> <?php include($_SERVER['DOCUMENT_ROOT'] . '/includes/breadcrumb-schema.php'); ?>
<!-- Organization Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://ukdataservices.co.uk#organization",
"name": "UK Data Services",
"url": "https://ukdataservices.co.uk",
"logo": "https://ukdataservices.co.uk/assets/images/ukds-main-logo.png",
"description": "Professional web scraping, data extraction, and automation services for UK businesses.",
"address": {
"@type": "PostalAddress",
"addressLocality": "London",
"addressRegion": "England",
"postalCode": "EC1A 1BB",
"addressCountry": "GB"
},
"contactPoint": {
"@type": "ContactPoint",
"contactType": "sales",
"url": "https://ukdataservices.co.uk/quote"
},
"sameAs": [
"https://www.linkedin.com/company/uk-data-services",
"https://twitter.com/ukdataservices"
]
}
</script>
</head> </head>
<body> <body>
<!-- Skip to content link for accessibility --> <!-- Skip to content link for accessibility -->
@@ -307,11 +336,11 @@ $breadcrumbs = [
<div class="nav-menu" id="nav-menu"> <div class="nav-menu" id="nav-menu">
<a href="/" class="nav-link">Home</a> <a href="/" class="nav-link">Home</a>
<a href="/#services" class="nav-link">Capabilities</a> <a href="/#services" class="nav-link">Capabilities</a>
<a href="project-types" class="nav-link">Project Types</a> <a href="/project-types" class="nav-link">Project Types</a>
<a href="about" class="nav-link">About</a> <a href="/about" class="nav-link">About</a>
<a href="blog/" class="nav-link">Blog</a> <a href="/blog/" class="nav-link">Blog</a>
<a href="/#contact" class="nav-link">Contact</a> <a href="/#contact" class="nav-link">Contact</a>
<a href="quote" class="nav-link cta-button">Request Consultation</a> <a href="/quote" class="nav-link cta-button">Request Consultation</a>
</div> </div>
<div class="nav-toggle" id="nav-toggle"> <div class="nav-toggle" id="nav-toggle">
<span class="bar"></span> <span class="bar"></span>
@@ -325,8 +354,8 @@ $breadcrumbs = [
<main id="main-content"> <main id="main-content">
<section class="project-types-hero"> <section class="project-types-hero">
<div class="container"> <div class="container">
<h1>Types of Projects We Have Undertaken</h1> <h1>Data Solutions We've Delivered for UK Businesses</h1>
<p>Our development team has extensive experience across a diverse range of C# applications, from specialised data extraction tools to enterprise-level automation systems.</p> <p>Our development team has extensive experience across a diverse range of data applications, from specialised data extraction tools to enterprise-level automation systems.</p>
</div> </div>
</section> </section>
@@ -805,7 +834,7 @@ $breadcrumbs = [
Let's explore how our expertise can help transform your business requirements into efficient, reliable solutions Let's explore how our expertise can help transform your business requirements into efficient, reliable solutions
</p> </p>
<div style="display: flex; gap: 20px; justify-content: center; flex-wrap: wrap;"> <div style="display: flex; gap: 20px; justify-content: center; flex-wrap: wrap;">
<a href="quote" class="btn btn-primary">Request Consultation</a> <a href="/quote" class="btn btn-primary">Request Consultation</a>
<a href="/#contact" class="btn btn-secondary">Contact Us</a> <a href="/#contact" class="btn btn-secondary">Contact Us</a>
</div> </div>
</div> </div>

392
quote.php
View File

@@ -476,11 +476,11 @@ $breadcrumbs = [
<div class="nav-menu" id="nav-menu"> <div class="nav-menu" id="nav-menu">
<a href="/" class="nav-link">Home</a> <a href="/" class="nav-link">Home</a>
<a href="/#services" class="nav-link">Capabilities</a> <a href="/#services" class="nav-link">Capabilities</a>
<a href="project-types" class="nav-link">Project Types</a> <a href="/project-types" class="nav-link">Project Types</a>
<a href="about" class="nav-link">About</a> <a href="/about" class="nav-link">About</a>
<a href="blog/" class="nav-link">Blog</a> <a href="/blog/" class="nav-link">Blog</a>
<a href="/#contact" class="nav-link">Contact</a> <a href="/#contact" class="nav-link">Contact</a>
<a href="quote" class="nav-link cta-button">Request Consultation</a> <a href="/quote" class="nav-link cta-button">Request Consultation</a>
</div> </div>
<div class="nav-toggle" id="nav-toggle"> <div class="nav-toggle" id="nav-toggle">
<span class="bar"></span> <span class="bar"></span>
@@ -502,6 +502,9 @@ $breadcrumbs = [
<!-- Quote Form --> <!-- Quote Form -->
<section class="quote-form-section"> <section class="quote-form-section">
<div class="container"> <div class="container">
<div class="quote-page-layout">
<!-- Main form -->
<div class="quote-form-main">
<div class="quote-form-container"> <div class="quote-form-container">
<!-- Message Container --> <!-- Message Container -->
<div id="message-container" class="message-container"> <div id="message-container" class="message-container">
@@ -519,170 +522,120 @@ $breadcrumbs = [
$_SESSION['form_start_time'] = time(); $_SESSION['form_start_time'] = time();
?> ?>
<input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token']); ?>"> <input type="hidden" name="csrf_token" value="<?php echo htmlspecialchars($_SESSION['csrf_token']); ?>">
<!-- reCAPTCHA response field -->
<input type="hidden" name="recaptcha_response" id="recaptchaResponseQuote" value=""> <input type="hidden" name="recaptcha_response" id="recaptchaResponseQuote" value="">
<!-- Honeypot field for spam protection -->
<input type="text" name="website" style="display: none !important; position: absolute !important; left: -9999px !important;" tabindex="-1" autocomplete="off"> <input type="text" name="website" style="display: none !important; position: absolute !important; left: -9999px !important;" tabindex="-1" autocomplete="off">
<!-- Step 1: Project Type -->
<div class="form-step">
<div class="step-title">
<span class="step-number">1</span>
What type of data services do you need? <span class="required-indicator">*</span>
</div>
<div class="checkbox-group">
<label class="checkbox-item">
<input type="checkbox" name="services[]" value="web-scraping">
<span>Web Scraping & Data Extraction</span>
</label>
<label class="checkbox-item">
<input type="checkbox" name="services[]" value="business-intelligence">
<span>Business Intelligence & Analytics</span>
</label>
<label class="checkbox-item">
<input type="checkbox" name="services[]" value="data-processing">
<span>Data Processing & Cleaning</span>
</label>
<label class="checkbox-item">
<input type="checkbox" name="services[]" value="automation">
<span>Automation & APIs</span>
</label>
<label class="checkbox-item">
<input type="checkbox" name="services[]" value="consulting">
<span>Custom Development</span>
</label>
<label class="checkbox-item">
<input type="checkbox" name="services[]" value="other">
<span>Other (please specify below)</span>
</label>
</div>
</div>
<!-- Step 2: Project Scale --> <!-- STEP 1: Service & Scale -->
<div class="form-step"> <div class="form-step" id="step-1" data-step="1">
<div class="step-title"> <h2>Step 1: Tell us what you need</h2>
<span class="step-number">2</span>
What's the scale of your project? <span class="required-indicator">*</span>
</div>
<div class="radio-group">
<label class="radio-item">
<input type="radio" name="project_scale" value="small">
<div>
<strong>Small Project</strong><br>
<small>One-time extraction, < 10k records</small>
</div>
</label>
<label class="radio-item">
<input type="radio" name="project_scale" value="medium">
<div>
<strong>Medium Project</strong><br>
<small>Regular updates, 10k-100k records</small>
</div>
</label>
<label class="radio-item">
<input type="radio" name="project_scale" value="large">
<div>
<strong>Large Project</strong><br>
<small>Ongoing service, 100k+ records</small>
</div>
</label>
<label class="radio-item">
<input type="radio" name="project_scale" value="enterprise">
<div>
<strong>Enterprise</strong><br>
<small>Complex multi-source solution</small>
</div>
</label>
</div>
</div>
<!-- Step 3: Timeline -->
<div class="form-step">
<div class="step-title">
<span class="step-number">3</span>
When do you need this completed? <span class="required-indicator">*</span>
</div>
<div class="radio-group">
<label class="radio-item">
<input type="radio" name="timeline" value="asap">
<span>ASAP (Rush job)</span>
</label>
<label class="radio-item">
<input type="radio" name="timeline" value="1-week">
<span>Within 1 week</span>
</label>
<label class="radio-item">
<input type="radio" name="timeline" value="2-4-weeks">
<span>2-4 weeks</span>
</label>
<label class="radio-item">
<input type="radio" name="timeline" value="flexible">
<span>Flexible timeline</span>
</label>
</div>
</div>
<!-- Step 4: Contact Information -->
<div class="form-step">
<div class="step-title">
<span class="step-number">4</span>
Your contact information
</div>
<div class="form-row">
<div class="form-group"> <div class="form-group">
<label for="quote-name">Full Name *</label> <label for="service_type">What service are you interested in?</label>
<input type="text" id="quote-name" name="name" required> <select name="service_type" id="service_type" required>
</div> <option value="">Select a service...</option>
<div class="form-group"> <option value="web-scraping">Web Scraping</option>
<label for="quote-email">Email Address *</label> <option value="data-cleaning">Data Cleaning</option>
<input type="email" id="quote-email" name="email" required> <option value="api-development">API Development</option>
</div> <option value="automation">Automation</option>
</div> <option value="custom">Custom Solution</option>
<div class="form-row"> <option value="other">Other</option>
<div class="form-group">
<label for="quote-company">Company</label>
<input type="text" id="quote-company" name="company">
</div>
<div class="form-group">
<label for="quote-phone">Phone Number</label>
<input type="tel" id="quote-phone" name="phone">
</div>
</div>
</div>
<!-- Step 5: Project Details -->
<div class="form-step">
<div class="step-title">
<span class="step-number">5</span>
Project details
</div>
<div class="form-group">
<label for="quote-sources">Data Sources (websites, APIs, databases)</label>
<textarea id="quote-sources" name="data_sources" rows="3" placeholder="Please list the websites, APIs, or data sources you need us to work with..."></textarea>
</div>
<div class="form-group">
<label for="quote-requirements">Detailed Requirements *</label>
<textarea id="quote-requirements" name="requirements" rows="5" required placeholder="Please describe your project in detail: what data you need, how you plan to use it, any specific format requirements, delivery preferences, etc."></textarea>
</div>
<div class="form-group">
<label for="quote-budget">Estimated Budget Range (Optional)</label>
<select id="quote-budget" name="budget">
<option value="">Select budget range...</option>
<option value="under-1k">Under £1,000</option>
<option value="1k-5k">£1,000 - £5,000</option>
<option value="5k-10k">£5,000 - £10,000</option>
<option value="10k-25k">£10,000 - £25,000</option>
<option value="25k-50k">£25,000 - £50,000</option>
<option value="50k-plus">£50,000+</option>
<option value="discuss">Let's discuss</option>
</select> </select>
</div> </div>
<div class="form-group">
<label for="scale">Estimated scale</label>
<select name="scale" id="scale" required>
<option value="">Select scale...</option>
<option value="small">Small (under 1,000 records)</option>
<option value="medium">Medium (1,000 - 50,000 records)</option>
<option value="large">Large (50,000 - 500,000 records)</option>
<option value="enterprise">Enterprise (500,000+ records)</option>
<option value="unsure">Not sure yet</option>
</select>
</div> </div>
<!-- Submit --> <button type="button" class="btn btn-primary next-step">Next &rarr;</button>
<button type="submit" class="btn btn-primary btn-full">Get My Free Quote</button> </div>
<!-- STEP 2: Contact & Timeline -->
<div class="form-step" id="step-2" data-step="2" style="display:none;">
<h2>Step 2: Your details</h2>
<div class="form-group">
<label for="quote-name">Your name</label>
<input type="text" name="name" id="quote-name" required>
</div>
<div class="form-group">
<label for="quote-email">Email address</label>
<input type="email" name="email" id="quote-email" required>
</div>
<div class="form-group">
<label for="quote-company">Company name</label>
<input type="text" name="company" id="quote-company">
</div>
<div class="form-group">
<label for="timeline">When do you need this?</label>
<select name="timeline" id="timeline" required>
<option value="">Select timeline...</option>
<option value="asap">As soon as possible</option>
<option value="2weeks">Within 2 weeks</option>
<option value="1month">Within a month</option>
<option value="flexible">Flexible / No rush</option>
</select>
</div>
<div class="form-buttons">
<button type="button" class="btn btn-secondary prev-step">&larr; Back</button>
<button type="button" class="btn btn-primary next-step">Next &rarr;</button>
</div>
</div>
<!-- STEP 3: Project Details -->
<div class="form-step" id="step-3" data-step="3" style="display:none;">
<h2>Step 3: Project details</h2>
<div class="form-group">
<label for="website_urls">Target website(s)</label>
<input type="text" name="data_sources" id="website_urls" placeholder="e.g., competitor.com, amazon.co.uk">
</div>
<div class="form-group">
<label for="quote-requirements">Detailed requirements <span class="optional">(optional)</span></label>
<textarea name="requirements" id="quote-requirements" rows="5" placeholder="Tell us more about what data you need, how often, what format..."></textarea>
</div>
<div class="form-buttons">
<button type="button" class="btn btn-secondary prev-step">&larr; Back</button>
<button type="submit" class="btn btn-primary">Get Your Free Proposal</button>
</div>
</div>
</form> </form>
</div> </div>
</div> </div>
<!-- Sidebar -->
<aside class="quote-sidebar">
<div class="testimonial-card">
<blockquote>
<p>"UK Data Services transformed how we track competitor pricing. The data is accurate, timely, and has directly impacted our revenue."</p>
<cite>— Client Testimonial</cite>
</blockquote>
</div>
<div class="what-happens-next">
<h3>What happens next?</h3>
<ol>
<li><strong>We review your request</strong> — our team assesses your requirements</li>
<li><strong>You receive a detailed proposal</strong> — within 24 hours</li>
<li><strong>Free consultation call</strong> — we schedule a call to discuss your project</li>
</ol>
</div>
</aside>
</div>
</div>
</section> </section>
</main> </main>
@@ -752,37 +705,38 @@ $breadcrumbs = [
<!-- Scripts --> <!-- Scripts -->
<script src="assets/js/main.js"></script> <script src="assets/js/main.js"></script>
<script> <script>
// Enhanced quote form functionality
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
const checkboxItems = document.querySelectorAll('.checkbox-item'); const steps = document.querySelectorAll('.form-step');
const radioItems = document.querySelectorAll('.radio-item'); const nextBtns = document.querySelectorAll('.next-step');
const prevBtns = document.querySelectorAll('.prev-step');
// Handle checkbox styling nextBtns.forEach(btn => {
checkboxItems.forEach(item => { btn.addEventListener('click', function() {
const checkbox = item.querySelector('input[type="checkbox"]'); const current = this.closest('.form-step');
checkbox.addEventListener('change', function() { const currentStep = parseInt(current.dataset.step);
if (this.checked) { const requiredFields = current.querySelectorAll('[required]');
item.classList.add('checked'); let valid = true;
requiredFields.forEach(field => {
if (!field.value) {
field.classList.add('error');
valid = false;
} else { } else {
item.classList.remove('checked'); field.classList.remove('error');
} }
}); });
if (!valid) return;
current.style.display = 'none';
document.querySelector('[data-step="' + (currentStep + 1) + '"]').style.display = 'block';
});
}); });
// Handle radio button styling prevBtns.forEach(btn => {
radioItems.forEach(item => { btn.addEventListener('click', function() {
const radio = item.querySelector('input[type="radio"]'); const current = this.closest('.form-step');
radio.addEventListener('change', function() { const currentStep = parseInt(current.dataset.step);
// Remove checked class from all items in the same group current.style.display = 'none';
const groupName = this.name; document.querySelector('[data-step="' + (currentStep - 1) + '"]').style.display = 'block';
document.querySelectorAll(`input[name="${groupName}"]`).forEach(r => {
r.closest('.radio-item').classList.remove('checked');
});
// Add checked class to selected item
if (this.checked) {
item.classList.add('checked');
}
}); });
}); });
@@ -791,15 +745,10 @@ $breadcrumbs = [
const container = document.getElementById('message-container'); const container = document.getElementById('message-container');
const titleEl = container.querySelector('.message-title'); const titleEl = container.querySelector('.message-title');
const listEl = container.querySelector('.message-list'); const listEl = container.querySelector('.message-list');
// Reset classes
container.className = 'message-container'; container.className = 'message-container';
container.classList.add(type); container.classList.add(type);
// Set content
titleEl.textContent = title; titleEl.textContent = title;
listEl.innerHTML = ''; listEl.innerHTML = '';
if (Array.isArray(messages)) { if (Array.isArray(messages)) {
messages.forEach(msg => { messages.forEach(msg => {
const li = document.createElement('li'); const li = document.createElement('li');
@@ -811,11 +760,7 @@ $breadcrumbs = [
li.textContent = messages; li.textContent = messages;
listEl.appendChild(li); listEl.appendChild(li);
} }
// Show with animation
container.classList.add('show'); container.classList.add('show');
// Scroll to message
container.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); container.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
} }
@@ -824,10 +769,10 @@ $breadcrumbs = [
container.classList.remove('show'); container.classList.remove('show');
} }
// Enhanced form submission with reCAPTCHA // Form submission with reCAPTCHA
const quoteForm = document.getElementById('quote-form'); const quoteForm = document.getElementById('quote-form');
// Track form interactions // Track form interactions for bot detection
let formInteractions = { let formInteractions = {
mouseMovements: 0, mouseMovements: 0,
keystrokes: 0, keystrokes: 0,
@@ -836,27 +781,23 @@ $breadcrumbs = [
fields: {} fields: {}
}; };
// Add hidden timestamp field
const timestampField = document.createElement('input'); const timestampField = document.createElement('input');
timestampField.type = 'hidden'; timestampField.type = 'hidden';
timestampField.name = 'form_timestamp'; timestampField.name = 'form_timestamp';
timestampField.value = Date.now(); timestampField.value = Date.now();
quoteForm.appendChild(timestampField); quoteForm.appendChild(timestampField);
// Add hidden interaction token
const interactionToken = document.createElement('input'); const interactionToken = document.createElement('input');
interactionToken.type = 'hidden'; interactionToken.type = 'hidden';
interactionToken.name = 'interaction_token'; interactionToken.name = 'interaction_token';
quoteForm.appendChild(interactionToken); quoteForm.appendChild(interactionToken);
// Track mouse movements
document.addEventListener('mousemove', function() { document.addEventListener('mousemove', function() {
if (formInteractions.mouseMovements < 100) { if (formInteractions.mouseMovements < 100) {
formInteractions.mouseMovements++; formInteractions.mouseMovements++;
} }
}); });
// Track form field interactions
quoteForm.querySelectorAll('input, textarea, select').forEach(field => { quoteForm.querySelectorAll('input, textarea, select').forEach(field => {
field.addEventListener('keydown', function() { field.addEventListener('keydown', function() {
formInteractions.keystrokes++; formInteractions.keystrokes++;
@@ -869,7 +810,6 @@ $breadcrumbs = [
quoteForm.addEventListener('submit', function(e) { quoteForm.addEventListener('submit', function(e) {
e.preventDefault(); e.preventDefault();
// Calculate interaction score
const timeSpent = Date.now() - formInteractions.startTime; const timeSpent = Date.now() - formInteractions.startTime;
const interactionScore = Math.min(100, const interactionScore = Math.min(100,
(timeSpent > 5000 ? 20 : 0) + (timeSpent > 5000 ? 20 : 0) +
@@ -878,65 +818,38 @@ $breadcrumbs = [
(formInteractions.focusEvents > 3 ? 10 : 0) (formInteractions.focusEvents > 3 ? 10 : 0)
); );
// Set interaction token
interactionToken.value = btoa(JSON.stringify({ interactionToken.value = btoa(JSON.stringify({
score: interactionScore, score: interactionScore,
time: timeSpent, time: timeSpent,
interactions: formInteractions.mouseMovements + formInteractions.keystrokes + formInteractions.focusEvents interactions: formInteractions.mouseMovements + formInteractions.keystrokes + formInteractions.focusEvents
})); }));
// Validate form
const services = document.querySelectorAll('input[name="services[]"]:checked');
const projectScale = document.querySelector('input[name="project_scale"]:checked');
const timeline = document.querySelector('input[name="timeline"]:checked');
const name = document.getElementById('quote-name').value.trim(); const name = document.getElementById('quote-name').value.trim();
const email = document.getElementById('quote-email').value.trim(); const email = document.getElementById('quote-email').value.trim();
const requirements = document.getElementById('quote-requirements').value.trim();
let errors = []; let errors = [];
if (services.length === 0) {
errors.push('Please select at least one service');
}
if (!projectScale) {
errors.push('Please select a project scale');
}
if (!timeline) {
errors.push('Please select a timeline');
}
if (!name || name.length < 2) { if (!name || name.length < 2) {
errors.push('Please enter your full name'); errors.push('Please enter your name');
} }
if (!email || !email.includes('@')) { if (!email || !email.includes('@')) {
errors.push('Please enter a valid email address'); errors.push('Please enter a valid email address');
} }
if (!requirements || requirements.length < 20) {
errors.push('Please provide detailed project requirements (minimum 20 characters)');
}
if (errors.length > 0) { if (errors.length > 0) {
showMessage('error', 'Please complete the following required fields:', errors); showMessage('error', 'Please complete the following:', errors);
return; return;
} }
// Hide any existing error messages
hideMessage(); hideMessage();
// Execute reCAPTCHA
const self = this; const self = this;
grecaptcha.ready(function() { grecaptcha.ready(function() {
grecaptcha.execute('<?php echo RECAPTCHA_SITE_KEY; ?>', {action: 'quote'}).then(function(token) { grecaptcha.execute('<?php echo RECAPTCHA_SITE_KEY; ?>', {action: 'quote'}).then(function(token) {
document.getElementById('recaptchaResponseQuote').value = token; document.getElementById('recaptchaResponseQuote').value = token;
// Submit form
const submitButton = self.querySelector('button[type="submit"]'); const submitButton = self.querySelector('button[type="submit"]');
const originalText = submitButton.textContent; const originalText = submitButton.textContent;
submitButton.textContent = 'Sending Quote Request...'; submitButton.textContent = 'Sending...';
submitButton.disabled = true; submitButton.disabled = true;
const formData = new FormData(self); const formData = new FormData(self);
@@ -954,34 +867,17 @@ $breadcrumbs = [
if (data.success) { if (data.success) {
showMessage('success', 'Thank you!', 'Your quote request has been sent successfully. We will get back to you within 24 hours with a detailed proposal.'); showMessage('success', 'Thank you!', 'Your quote request has been sent successfully. We will get back to you within 24 hours with a detailed proposal.');
self.reset(); self.reset();
// Reset interaction tracking document.querySelectorAll('.form-step').forEach(s => s.style.display = 'none');
formInteractions = { document.querySelector('[data-step="1"]').style.display = 'block';
mouseMovements: 0,
keystrokes: 0,
focusEvents: 0,
startTime: Date.now(),
fields: {}
};
// Reset styling
checkboxItems.forEach(item => item.classList.remove('checked'));
radioItems.forEach(item => item.classList.remove('checked'));
// Scroll to top after success
window.scrollTo({ top: 0, behavior: 'smooth' }); window.scrollTo({ top: 0, behavior: 'smooth' });
} else { } else {
// Parse error message if it contains multiple validation errors let errorMessages = data.message.includes('. ') ? data.message.split('. ').filter(msg => msg.trim()) : [data.message];
let errorMessages = []; showMessage('error', 'There was a problem:', errorMessages);
if (data.message.includes('. ')) {
errorMessages = data.message.split('. ').filter(msg => msg.trim());
} else {
errorMessages = [data.message];
}
showMessage('error', 'There was a problem with your submission:', errorMessages);
} }
}) })
.catch(error => { .catch(error => {
console.error('Error:', error); console.error('Error:', error);
showMessage('error', 'Connection Error', 'There was an error sending your quote request. Please check your internet connection and try again, or contact us directly at info@ukdataservices.co.uk'); showMessage('error', 'Connection Error', 'There was an error sending your request. Please try again or contact us at info@ukdataservices.co.uk');
}) })
.finally(() => { .finally(() => {
submitButton.textContent = originalText; submitButton.textContent = originalText;

View File

@@ -4,7 +4,7 @@
<!-- Homepage --> <!-- Homepage -->
<url> <url>
<loc>https://ukdataservices.co.uk/</loc> <loc>https://ukdataservices.co.uk/</loc>
<lastmod>2025-08-09T06:06:11+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>1.0</priority> <priority>1.0</priority>
<image:image> <image:image>
@@ -16,22 +16,22 @@
<!-- Core Service Pages --> <!-- Core Service Pages -->
<url> <url>
<loc>https://ukdataservices.co.uk/about.php</loc> <loc>https://ukdataservices.co.uk/about</loc>
<lastmod>2025-06-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.9</priority> <priority>0.9</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/project-types.php</loc> <loc>https://ukdataservices.co.uk/project-types</loc>
<lastmod>2025-06-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.9</priority> <priority>0.9</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/quote.php</loc> <loc>https://ukdataservices.co.uk/quote</loc>
<lastmod>2025-06-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
@@ -39,165 +39,158 @@
<!-- Blog Section --> <!-- Blog Section -->
<url> <url>
<loc>https://ukdataservices.co.uk/blog/</loc> <loc>https://ukdataservices.co.uk/blog/</loc>
<lastmod>2025-06-08T20:30:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>daily</changefreq> <changefreq>daily</changefreq>
<priority>0.9</priority> <priority>0.9</priority>
</url> </url>
<url>
<loc>https://ukdataservices.co.uk/blog/search.php</loc>
<lastmod>2025-06-08T20:30:00+00:00</lastmod>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<!-- Blog Categories --> <!-- Blog Categories -->
<url> <url>
<loc>https://ukdataservices.co.uk/blog/categories/web-scraping.php</loc> <loc>https://ukdataservices.co.uk/blog/categories/web-scraping</loc>
<lastmod>2025-06-08T14:30:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/categories/data-analytics.php</loc> <loc>https://ukdataservices.co.uk/blog/categories/data-analytics</loc>
<lastmod>2025-06-08T14:30:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/categories/compliance.php</loc> <loc>https://ukdataservices.co.uk/blog/categories/compliance</loc>
<lastmod>2025-06-08T14:30:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/categories/industry-insights.php</loc> <loc>https://ukdataservices.co.uk/blog/categories/industry-insights</loc>
<lastmod>2025-06-08T14:30:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/categories/case-studies.php</loc> <loc>https://ukdataservices.co.uk/blog/categories/case-studies</loc>
<lastmod>2025-06-08T14:30:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/categories/technology.php</loc> <loc>https://ukdataservices.co.uk/blog/categories/technology</loc>
<lastmod>2025-06-08T14:30:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<!-- Featured Blog Articles --> <!-- Featured Blog Articles -->
<url> <url>
<loc>https://ukdataservices.co.uk/blog/articles/web-scraping-compliance-uk-guide.php</loc> <loc>https://ukdataservices.co.uk/blog/articles/web-scraping-compliance-uk-guide</loc>
<lastmod>2025-06-08T14:30:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.9</priority> <priority>0.9</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/articles/competitive-intelligence-roi-metrics.php</loc> <loc>https://ukdataservices.co.uk/blog/articles/competitive-intelligence-roi-metrics</loc>
<lastmod>2025-06-05T10:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/articles/retail-price-monitoring-strategies.php</loc> <loc>https://ukdataservices.co.uk/blog/articles/retail-price-monitoring-strategies</loc>
<lastmod>2025-06-03T09:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/articles/javascript-heavy-sites-scraping.php</loc> <loc>https://ukdataservices.co.uk/blog/articles/javascript-heavy-sites-scraping</loc>
<lastmod>2025-06-01T11:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.7</priority> <priority>0.7</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/articles/data-quality-validation-pipelines.php</loc> <loc>https://ukdataservices.co.uk/blog/articles/data-quality-validation-pipelines</loc>
<lastmod>2025-05-29T14:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.7</priority> <priority>0.7</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/articles/financial-services-data-transformation.php</loc> <loc>https://ukdataservices.co.uk/blog/articles/financial-services-data-transformation</loc>
<lastmod>2025-05-27T16:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.7</priority> <priority>0.7</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/articles/cloud-native-scraping-architecture.php</loc> <loc>https://ukdataservices.co.uk/blog/articles/cloud-native-scraping-architecture</loc>
<lastmod>2025-05-25T13:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.7</priority> <priority>0.7</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/articles/uk-property-market-data-trends.php</loc> <loc>https://ukdataservices.co.uk/blog/articles/uk-property-market-data-trends</loc>
<lastmod>2025-05-22T10:30:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.7</priority> <priority>0.7</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/blog/articles/gdpr-data-minimisation-practices.php</loc> <loc>https://ukdataservices.co.uk/blog/articles/gdpr-data-minimisation-practices</loc>
<lastmod>2025-05-20T15:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.7</priority> <priority>0.7</priority>
</url> </url>
<!-- Services --> <!-- Services -->
<url> <url>
<loc>https://ukdataservices.co.uk/services/data-cleaning.php</loc> <loc>https://ukdataservices.co.uk/services/data-cleaning</loc>
<lastmod>2025-06-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/services/price-monitoring.php</loc> <loc>https://ukdataservices.co.uk/services/price-monitoring</loc>
<lastmod>2025-12-07T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/services/competitive-intelligence.php</loc> <loc>https://ukdataservices.co.uk/services/competitive-intelligence</loc>
<lastmod>2025-12-07T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<!-- Location Pages --> <!-- Location Pages -->
<url> <url>
<loc>https://ukdataservices.co.uk/locations/london.php</loc> <loc>https://ukdataservices.co.uk/locations/london</loc>
<lastmod>2025-12-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/locations/manchester.php</loc> <loc>https://ukdataservices.co.uk/locations/manchester</loc>
<lastmod>2025-12-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/locations/birmingham.php</loc> <loc>https://ukdataservices.co.uk/locations/birmingham</loc>
<lastmod>2025-12-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
@@ -205,44 +198,44 @@
<!-- Case Studies --> <!-- Case Studies -->
<url> <url>
<loc>https://ukdataservices.co.uk/case-studies/</loc> <loc>https://ukdataservices.co.uk/case-studies/</loc>
<lastmod>2025-06-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>weekly</changefreq> <changefreq>weekly</changefreq>
<priority>0.8</priority> <priority>0.8</priority>
</url> </url>
<!-- Legal Pages --> <!-- Legal Pages -->
<url> <url>
<loc>https://ukdataservices.co.uk/privacy-policy.php</loc> <loc>https://ukdataservices.co.uk/privacy-policy</loc>
<lastmod>2025-06-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>quarterly</changefreq> <changefreq>quarterly</changefreq>
<priority>0.4</priority> <priority>0.4</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/terms-of-service.php</loc> <loc>https://ukdataservices.co.uk/terms-of-service</loc>
<lastmod>2025-06-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>quarterly</changefreq> <changefreq>quarterly</changefreq>
<priority>0.4</priority> <priority>0.4</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/cookie-policy.php</loc> <loc>https://ukdataservices.co.uk/cookie-policy</loc>
<lastmod>2025-06-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>quarterly</changefreq> <changefreq>quarterly</changefreq>
<priority>0.4</priority> <priority>0.4</priority>
</url> </url>
<url> <url>
<loc>https://ukdataservices.co.uk/gdpr-compliance.php</loc> <loc>https://ukdataservices.co.uk/gdpr-compliance</loc>
<lastmod>2025-06-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>quarterly</changefreq> <changefreq>quarterly</changefreq>
<priority>0.6</priority> <priority>0.6</priority>
</url> </url>
<!-- FAQ Section --> <!-- FAQ Section -->
<url> <url>
<loc>https://ukdataservices.co.uk/faq.php</loc> <loc>https://ukdataservices.co.uk/faq</loc>
<lastmod>2025-06-08T12:00:00+00:00</lastmod> <lastmod>2026-01-29T00:00:00+00:00</lastmod>
<changefreq>monthly</changefreq> <changefreq>monthly</changefreq>
<priority>0.6</priority> <priority>0.6</priority>
</url> </url>