SEO improvements
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m0s

This commit is contained in:
Tudor
2026-01-08 11:47:38 +00:00
parent 71b05769ae
commit 0aafdfa382
5 changed files with 98 additions and 0 deletions

View File

@@ -208,6 +208,12 @@ const routes = {
"/rankings": "rankings",
};
const pageTitles = {
dashboard: "SchoolCompare | Compare Primary School Performance",
compare: "Compare Schools | SchoolCompare",
rankings: "School Rankings | SchoolCompare",
};
function navigateTo(path) {
// Update URL without reload
window.history.pushState({}, "", path);
@@ -218,6 +224,9 @@ function handleRoute() {
const path = window.location.pathname;
const view = routes[path] || "dashboard";
// Update page title for SEO
document.title = pageTitles[view] || pageTitles.dashboard;
// Update navigation
document.querySelectorAll(".nav-link").forEach((link) => {
link.classList.toggle("active", link.dataset.view === view);

View File

@@ -4,6 +4,52 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SchoolCompare | Compare Primary School Performance</title>
<!-- Primary Meta Tags -->
<meta name="description" content="Compare primary school KS2 performance across England. Search, filter and compare Reading, Writing and Maths results for thousands of schools.">
<meta name="keywords" content="school comparison, KS2 results, primary school performance, England schools, SATs results">
<meta name="author" content="SchoolCompare">
<meta name="robots" content="index, follow">
<!-- Canonical -->
<link rel="canonical" href="https://schoolcompare.co.uk/">
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://schoolcompare.co.uk/">
<meta property="og:title" content="SchoolCompare | Compare Primary School Performance">
<meta property="og:description" content="Compare primary school KS2 performance across England. Search and compare Reading, Writing and Maths results.">
<meta property="og:site_name" content="SchoolCompare">
<!-- Twitter -->
<meta name="twitter:card" content="summary">
<meta name="twitter:url" content="https://schoolcompare.co.uk/">
<meta name="twitter:title" content="SchoolCompare | Compare Primary School Performance">
<meta name="twitter:description" content="Compare primary school KS2 performance across England.">
<!-- JSON-LD Structured Data -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "SchoolCompare",
"url": "https://schoolcompare.co.uk",
"description": "Compare primary school KS2 performance across England",
"applicationCategory": "EducationalApplication",
"operatingSystem": "Web",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "GBP"
},
"author": {
"@type": "Organization",
"name": "SchoolCompare",
"url": "https://schoolcompare.co.uk"
}
}
</script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700&family=Playfair+Display:wght@600;700&display=swap" rel="stylesheet">

8
frontend/robots.txt Normal file
View File

@@ -0,0 +1,8 @@
User-agent: *
Allow: /
Allow: /compare
Allow: /rankings
Disallow: /api/
Sitemap: https://schoolcompare.co.uk/sitemap.xml

18
frontend/sitemap.xml Normal file
View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://schoolcompare.co.uk/</loc>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://schoolcompare.co.uk/compare</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://schoolcompare.co.uk/rankings</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
</urlset>