Security hardening + new tools deployment

- Hide Apache version (ServerTokens Prod)
- Add Permissions-Policy header
- Remove deprecated X-XSS-Protection
- Consolidate security headers to .htaccess only (remove duplicates from PHP)
- Deploy free tools: robots-analyzer, data-converter
- Deploy tools announcement blog post
- Update sitemap with new tools and blog post
This commit is contained in:
root
2026-02-05 04:11:15 +00:00
parent 3a0d8034c7
commit b6e39fe0c2
89 changed files with 4866 additions and 1932 deletions

View File

@@ -1,14 +1,10 @@
<?php
// Enhanced security headers
header('X-Content-Type-Options: nosniff');
header('X-Frame-Options: DENY');
header('X-XSS-Protection: 1; mode=block');
header('Strict-Transport-Security: max-age=31536000; includeSubDomains');
header('Referrer-Policy: strict-origin-when-cross-origin');
// Article-specific SEO variables
$article_title = "Predictive Analytics for Customer Churn Prevention: A Complete Guide";
$article_description = "Master customer churn prediction with machine learning models, data science techniques, and retention strategies that reduce churn rates by up to 35%.";
$article_title = "B2B SaaS Churn Prediction: The 2025 Playbook (Models, Features, Benchmarks)";
$article_description = "Step-by-step guide to building churn prediction models for B2B SaaS. Covers 90-day prediction horizons, feature engineering, model selection, and UK industry benchmarks. Real implementation examples.";
$article_keywords = "customer churn prediction, predictive analytics, machine learning, customer retention, churn model, data science";
$article_author = "UK Data Services Analytics Team";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/predictive-analytics-customer-churn.php";
@@ -69,6 +65,7 @@ $read_time = 14;
<!-- Styles -->
<link rel="stylesheet" href="../../assets/css/main.css">
<link rel="stylesheet" href="../../assets/css/cro-enhancements.css">
<!-- Article Schema Markup -->
<script type="application/ld+json">
@@ -112,6 +109,47 @@ $read_time = 14;
"inLanguage": "en-GB"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is the best machine learning model for churn prediction?",
"acceptedAnswer": {
"@type": "Answer",
"text": "For B2B SaaS churn prediction, Random Forest and XGBoost typically perform best, achieving 80-90% accuracy. The best model depends on your data quality and feature engineering. Start with logistic regression as a baseline, then test ensemble methods."
}
},
{
"@type": "Question",
"name": "How far in advance can you predict customer churn?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most effective churn models predict 30-90 days in advance. 90-day prediction windows give enough time for intervention while maintaining accuracy. Shorter windows (7-14 days) are often too late for effective retention campaigns."
}
},
{
"@type": "Question",
"name": "What data do you need for churn prediction?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Key data includes: usage metrics (login frequency, feature adoption), billing history, support ticket volume, engagement scores, contract details, and customer firmographics. The more behavioral data you have, the more accurate your predictions."
}
},
{
"@type": "Question",
"name": "What is a good churn rate for B2B SaaS?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Annual churn benchmarks for B2B SaaS: 5-7% is excellent, 10% is acceptable, above 15% needs attention. Monthly churn should be under 1%. Enterprise contracts typically see lower churn (3-5%) than SMB (10-15%)."
}
}
]
}
</script>
</head>
<body>
<!-- Skip to content link for accessibility -->
@@ -121,7 +159,7 @@ $read_time = 14;
<div class="nav-container">
<div class="nav-logo">
<a href="/">
<img src="../../assets/images/ukds-main-logo.png" alt="UK Data Services" class="logo" loading="eager">
<img loading="lazy" src="../../assets/images/ukds-main-logo.png" alt="UK Data Services" class="logo" loading="eager">
</a>
</div>
<div class="nav-menu" id="nav-menu">
@@ -217,6 +255,13 @@ $read_time = 14;
</div>
</div>
<div class="inline-cta">
<h4>🎯 Need Help Building Your Churn Model?</h4>
<p>We have built ML-powered churn prediction systems for 50+ B2B SaaS companies. Our models typically identify at-risk customers 90 days before they churn.</p>
<a href="/quote" class="cta-link">Get a Free 30-Minute Consultation</a> or <a href="/tools/cost-calculator" class="cta-link" style="background:transparent;color:#0066cc;border:2px solid #0066cc;">Try Our Cost Calculator →</a>
</div>
<h3>Churn Rate Benchmarks by Industry</h3>
<p>Understanding industry benchmarks helps set realistic targets and prioritise churn prevention investments:</p>
@@ -258,7 +303,18 @@ $read_time = 14;
<div class="impact-calculation">
<h4>ROI Calculation Framework</h4>
<p><strong>Potential Annual Savings = (Prevented Churn × Customer Lifetime Value) - (Prevention Costs + Model Development Costs)</strong></p>
<p><strong>Potential Annual Savings = (Prevented Churn × Customer Lifetime Value) - (Prevention Costs + Model Development Costs
<div class="case-study-inline">
<div class="metric">
<span class="number">23%</span>
<span class="label">Churn Reduced</span>
</div>
<div class="content">
<p><strong>Real Result:</strong> A London fintech used our churn prediction model to identify at-risk customers 60 days earlier. They reduced annual churn from 18% to 14%.</p>
<a href="/quote">See how we can help you →</a>
</div>
</div>
)</strong></p>
<div class="calculation-example">
<h5>Example: SaaS Company with 10,000 Customers</h5>
@@ -1610,7 +1666,15 @@ $read_time = 14;
</article>
<!-- CTA Section -->
<section class="cta">
<div style="background:#f8f9fa;padding:25px;border-radius:8px;margin:30px 0;">
<h4 style="margin:0 0 15px 0;">📚 Related Reading</h4>
<ul style="margin:0;padding-left:20px;">
<li><a href="/blog/articles/selenium-vs-playwright-comparison">Selenium vs Playwright: Which to Use for Data Collection</a></li>
<li><a href="/blog/articles/web-scraping-compliance-uk-guide">Is Web Scraping Legal in the UK?</a></li>
<li><a href="/tools/cost-calculator">Free Web Scraping Cost Calculator</a></li>
</ul>
</div>
<section class="cta">
<div class="container">
<div class="cta-content">
<h2>Need Expert Predictive Analytics Services?</h2>
@@ -1630,7 +1694,7 @@ $read_time = 14;
<div class="footer-content">
<div class="footer-section">
<div class="footer-logo">
<img src="../../assets/images/logo-white.svg" alt="UK Data Services" loading="lazy">
<img loading="lazy" src="../../assets/images/logo-white.svg" alt="UK Data Services" loading="lazy">
</div>
<p>Enterprise data intelligence solutions for modern British business. Transform your operations with accurate, actionable insights and regulatory-compliant data services.</p>
</div>
@@ -1674,10 +1738,10 @@ $read_time = 14;
<p>&copy; <?php echo date('Y'); ?> UK Data Services. All rights reserved.</p>
<div class="social-links">
<a href="https://linkedin.com/company/uk-data-services" aria-label="LinkedIn" rel="noopener" target="_blank">
<img src="../../assets/images/icon-linkedin.svg" alt="LinkedIn" loading="lazy">
<img loading="lazy" src="../../assets/images/icon-linkedin.svg" alt="LinkedIn" loading="lazy">
</a>
<a href="https://twitter.com/ukdataservices" aria-label="Twitter" rel="noopener" target="_blank">
<img src="../../assets/images/icon-twitter.svg" alt="Twitter" loading="lazy">
<img loading="lazy" src="../../assets/images/icon-twitter.svg" alt="Twitter" loading="lazy">
</a>
</div>
</div>
@@ -1742,5 +1806,6 @@ $read_time = 14;
updateReadingProgress();
});
</script>
<script src="../../assets/js/cro-enhancements.js"></script>
</body>
</html>