feat(seo): sitemap aligné sur les canoniques des pages (slashes) et hreflang ajouté aux pages dynamiques (articles, blog)

This commit is contained in:
riricdev 2026-09-07 13:18:01 +02:00
commit 88adcb1590
3 changed files with 42 additions and 36 deletions

View file

@ -15,11 +15,11 @@
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/blog/" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/en/equipe</loc>
<loc>https://riricdev.tail5ea5cd.ts.net/en/equipe/</loc>
<lastmod>2026-08-14</lastmod>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/equipe" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/equipe" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/equipe" hreflang="x-default" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/equipe/" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/equipe/" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/equipe/" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/en/fingerprint-test</loc>
@ -36,11 +36,11 @@
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/privacy-policy" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/en/projets</loc>
<loc>https://riricdev.tail5ea5cd.ts.net/en/projets/</loc>
<lastmod>2026-08-17</lastmod>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/projets" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/projets" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/projets" hreflang="x-default" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/projets/" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/projets/" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/projets/" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/en/tos</loc>
@ -50,11 +50,11 @@
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/tos" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/en/zmap</loc>
<loc>https://riricdev.tail5ea5cd.ts.net/en/zmap/</loc>
<lastmod>2026-08-17</lastmod>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/zmap" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap" hreflang="x-default" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/zmap/" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/en/zmap/archives</loc>
@ -64,10 +64,10 @@
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/archives" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/en/zmap/road-speeds</loc>
<loc>https://riricdev.tail5ea5cd.ts.net/en/zmap/road-speeds/</loc>
<lastmod>2026-08-17</lastmod>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/vitesses-par-route" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/zmap/road-speeds" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/vitesses-par-route" hreflang="x-default" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/vitesses-par-route/" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/zmap/road-speeds/" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/vitesses-par-route/" hreflang="x-default" rel="alternate"/>
</url>
</urlset>

View file

@ -15,11 +15,11 @@
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/blog/" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/fr/equipe</loc>
<loc>https://riricdev.tail5ea5cd.ts.net/fr/equipe/</loc>
<lastmod>2026-08-14</lastmod>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/equipe" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/equipe" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/equipe" hreflang="x-default" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/equipe/" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/equipe/" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/equipe/" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/fr/fingerprint-test</loc>
@ -36,11 +36,11 @@
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/privacy-policy" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/fr/projets</loc>
<loc>https://riricdev.tail5ea5cd.ts.net/fr/projets/</loc>
<lastmod>2026-08-17</lastmod>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/projets" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/projets" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/projets" hreflang="x-default" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/projets/" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/projets/" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/projets/" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/fr/tos</loc>
@ -50,11 +50,11 @@
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/tos" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/fr/zmap</loc>
<loc>https://riricdev.tail5ea5cd.ts.net/fr/zmap/</loc>
<lastmod>2026-08-17</lastmod>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/zmap" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap" hreflang="x-default" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/zmap/" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/fr/zmap/archives</loc>
@ -64,10 +64,10 @@
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/archives" hreflang="x-default" rel="alternate"/>
</url>
<url>
<loc>https://riricdev.tail5ea5cd.ts.net/fr/zmap/vitesses-par-route</loc>
<loc>https://riricdev.tail5ea5cd.ts.net/fr/zmap/vitesses-par-route/</loc>
<lastmod>2026-08-17</lastmod>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/vitesses-par-route" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/zmap/road-speeds" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/vitesses-par-route" hreflang="x-default" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/vitesses-par-route/" hreflang="fr" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/en/zmap/road-speeds/" hreflang="en" rel="alternate"/>
<xhtml:link href="https://riricdev.tail5ea5cd.ts.net/fr/zmap/vitesses-par-route/" hreflang="x-default" rel="alternate"/>
</url>
</urlset>

View file

@ -655,6 +655,9 @@ function articlePage(article: Article, lang: "fr" | "en"): string {
<meta name="robots" content="index, follow" />
<title>${escHtml(v.title)} · Zektyc</title>
<link rel="canonical" href="${url}" />
<link rel="alternate" hreflang="fr" href="${frUrl}" />
<link rel="alternate" hreflang="en" href="${enUrl}" />
<link rel="alternate" hreflang="x-default" href="${frUrl}" />
<meta name="theme-color" content="#070a0f" />
<meta property="og:type" content="article" />
<meta property="og:site_name" content="Zektyc" />
@ -718,6 +721,9 @@ function newsIndex(lang: "fr" | "en"): string {
<meta name="robots" content="index, follow" />
<title>Blog · Zektyc</title>
<link rel="canonical" href="${SITE_URL}/${lang}/blog/" />
<link rel="alternate" hreflang="fr" href="${SITE_URL}/fr/blog/" />
<link rel="alternate" hreflang="en" href="${SITE_URL}/en/blog/" />
<link rel="alternate" hreflang="x-default" href="${SITE_URL}/fr/blog/" />
<meta name="theme-color" content="#070a0f" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Zektyc" />
@ -756,11 +762,11 @@ function writeSitemaps(articles: Article[]) {
{ fr: "/fr/privacy-policy", en: "/en/privacy-policy", lm: "2026-08-14" },
{ fr: "/fr/blog/", en: "/en/blog/", lm: "2026-08-14" },
{ fr: "/fr/fingerprint-test", en: "/en/fingerprint-test", lm: "2026-08-16" },
{ fr: "/fr/projets", en: "/en/projets", lm: "2026-08-17" },
{ fr: "/fr/equipe", en: "/en/equipe", lm: "2026-08-14" },
{ fr: "/fr/zmap", en: "/en/zmap", lm: "2026-08-17" },
{ fr: "/fr/projets/", en: "/en/projets/", lm: "2026-08-17" },
{ fr: "/fr/equipe/", en: "/en/equipe/", lm: "2026-08-14" },
{ fr: "/fr/zmap/", en: "/en/zmap/", lm: "2026-08-17" },
{ fr: "/fr/zmap/archives", en: "/en/zmap/archives", lm: "2026-08-17" },
{ fr: "/fr/zmap/vitesses-par-route", en: "/en/zmap/road-speeds", lm: "2026-08-17" },
{ fr: "/fr/zmap/vitesses-par-route/", en: "/en/zmap/road-speeds/", lm: "2026-08-17" },
]
const art = articles.map((a) => ({ fr: `/fr/blog/${a.slug}/`, en: `/en/blog/${a.slug}/`, lm: a.modified || a.published }))
const pages = [...base, ...art].sort((x, y) => x.fr.localeCompare(y.fr))