From 321a0686816570cfdc40ce4d6438333c2225afae Mon Sep 17 00:00:00 2001 From: Paul Hitt Date: Wed, 9 Sep 2026 16:16:54 -0400 Subject: [PATCH 1/2] x-default was empty on the homepage, and /donate was not listed Three findings from an SEO audit of the live site. The landing route set hasAlternate and altHref when the Spanish page exists but never defaultHref, so the highest-authority URL on the domain shipped . Every other page had it right; this was introduced with the Spanish routing today. /donate returns 200, is linked from every footer in both languages, and was missing from the sitemap because it is served outside the page table. priority was set on one URL out of thirty. Google ignores it. Co-Authored-By: Claude Opus 5 --- Sources/FlamenetRelay/Entrypoint.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Sources/FlamenetRelay/Entrypoint.swift b/Sources/FlamenetRelay/Entrypoint.swift index 0dd37a5..a9acff6 100644 --- a/Sources/FlamenetRelay/Entrypoint.swift +++ b/Sources/FlamenetRelay/Entrypoint.swift @@ -435,6 +435,10 @@ func register(routes r: Routes, on app: Application) throws { hasAlternate: spanishLanding, altLang: spanishLanding ? "es" : "", altHref: spanishLanding ? publicOrigin(req) + "/es/" : "", + // English is x-default, the same as every other page. Setting + // hasAlternate without this renders href="" on the one URL + // that matters most. + defaultHref: spanishLanding ? publicOrigin(req) + "/" : "", iosLive: r.config.iosLive, canonical: publicOrigin(req) + "/", origin: publicOrigin(req), @@ -679,7 +683,7 @@ func register(routes r: Routes, on app: Application) throws { var body = """ - \(origin)/1.0 + \(origin)/ """ for (slug, _, _) in pages { @@ -687,7 +691,7 @@ func register(routes r: Routes, on app: Application) throws { } // Served by something other than the page table, so they are named here // rather than silently missing. - for slug in ["releases", "status"] { + for slug in ["releases", "status", "donate"] { body += "\(origin)/\(slug)\n" } // Translated pages are listed too, or the only way to reach the Spanish -- 2.54.0 From c66d8b1b0ac16a775ed206c36d4a54c2b88c2a3f Mon Sep 17 00:00:00 2001 From: Paul Hitt Date: Wed, 9 Sep 2026 16:18:54 -0400 Subject: [PATCH 2/2] Keep priority on the root: a test pins it Removing it failed PublicPagesTests, which asserts the root is the highest-priority entry. Google ignores the tag either way, so the test's intention wins over the tidy-up. --- Sources/FlamenetRelay/Entrypoint.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/FlamenetRelay/Entrypoint.swift b/Sources/FlamenetRelay/Entrypoint.swift index a9acff6..59fa660 100644 --- a/Sources/FlamenetRelay/Entrypoint.swift +++ b/Sources/FlamenetRelay/Entrypoint.swift @@ -683,7 +683,7 @@ func register(routes r: Routes, on app: Application) throws { var body = """ - \(origin)/ + \(origin)/1.0 """ for (slug, _, _) in pages { -- 2.54.0