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 = "Selenium vs Playwright: Complete Comparison for 2025";
$article_description = "Compare Selenium and Playwright for web automation and scraping. Performance benchmarks, feature analysis, and practical recommendations for your projects.";
$article_title = "Is Playwright Better Than Selenium in 2025? Yes—Here's Why (And When It's Not)";
$article_description = "Playwright is 3-5x faster, more reliable, and has better modern browser support. But Selenium still wins for legacy systems and specific edge cases. Full benchmark comparison inside.";
$article_keywords = "Selenium vs Playwright, web automation comparison, browser automation tools, Selenium Playwright performance, web scraping tools 2025";
$article_author = "UK Data Services Technical Team";
$canonical_url = "https://ukdataservices.co.uk/blog/articles/selenium-vs-playwright-comparison";
@@ -64,6 +60,7 @@ $read_time = 9;
<!-- Styles -->
<link rel="stylesheet" href="../../assets/css/main.css">
<link rel="stylesheet" href="../../assets/css/cro-enhancements.css">
<!-- Article Schema -->
<script type="application/ld+json">
@@ -94,6 +91,47 @@ $read_time = 9;
"dateModified": "<?php echo $article_modified; ?>"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Is Playwright better than Selenium in 2025?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, for most modern use cases. Playwright is 3-5x faster, has better auto-waiting, built-in screenshot and video capabilities, and superior support for modern JavaScript frameworks. However, Selenium still has advantages for legacy browser testing and has a larger community."
}
},
{
"@type": "Question",
"name": "Is Playwright faster than Selenium?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, Playwright is significantly faster. In benchmarks, Playwright completes test suites 3-5x faster than Selenium due to its modern architecture, better parallelization, and elimination of the WebDriver protocol overhead."
}
},
{
"@type": "Question",
"name": "Should I switch from Selenium to Playwright?",
"acceptedAnswer": {
"@type": "Answer",
"text": "For new projects, yes. For existing Selenium projects, consider switching if you need better performance, modern browser support, or built-in features like auto-waiting and tracing. Keep Selenium if you need legacy browser support or have heavy investment in Selenium infrastructure."
}
},
{
"@type": "Question",
"name": "Which is better for web scraping: Selenium or Playwright?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Playwright is generally better for web scraping due to its faster execution, better handling of dynamic content, built-in stealth capabilities, and superior JavaScript rendering. It also has better support for intercepting network requests and handling modern anti-bot measures."
}
}
]
}
</script>
</head>
<body>
<!-- Skip to content link for accessibility -->
@@ -103,7 +141,7 @@ $read_time = 9;
<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">
@@ -140,10 +178,10 @@ $read_time = 9;
</div>
<div class="share-buttons">
<a href="https://www.linkedin.com/sharing/share-offsite/?url=<?php echo urlencode($canonical_url); ?>" class="share-button linkedin" aria-label="Share on LinkedIn" rel="noopener" target="_blank">
<img src="../../assets/images/icon-linkedin.svg" alt="LinkedIn">
<img loading="lazy" src="../../assets/images/icon-linkedin.svg" alt="LinkedIn">
</a>
<a href="https://twitter.com/intent/tweet?url=<?php echo urlencode($canonical_url); ?>&text=<?php echo urlencode($article_title); ?>" class="share-button twitter" aria-label="Share on Twitter" rel="noopener" target="_blank">
<img src="../../assets/images/icon-twitter.svg" alt="Twitter">
<img loading="lazy" src="../../assets/images/icon-twitter.svg" alt="Twitter">
</a>
</div>
</div>
@@ -294,6 +332,13 @@ run_scraper()
<li><strong>Third-party Integrations:</strong> Fewer existing integrations</li>
</ul>
<div class="inline-cta">
<h4>🔧 Need a Production-Ready Scraping Solution?</h4>
<p>We handle the Playwright vs Selenium decision for you. Our team builds and maintains enterprise scraping infrastructure so you can focus on using the data.</p>
<a href="/quote" class="cta-link">Talk to Our Scraping Experts</a> or <a href="/tools/cost-calculator" class="cta-link" style="background:transparent;color:#0066cc;border:2px solid #0066cc;">Estimate Your Project Cost →</a>
</div>
<h2>Performance Comparison</h2>
<h3>Speed Benchmarks</h3>
@@ -488,7 +533,7 @@ run_scraper()
<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.</p>
</div>
@@ -519,10 +564,10 @@ run_scraper()
<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>
@@ -531,5 +576,6 @@ run_scraper()
<!-- Scripts -->
<script src="../../assets/js/main.js"></script>
<script src="../../assets/js/cro-enhancements.js"></script>
</body>
</html>