feat(seo): sitemap aligné sur les canoniques des pages (slashes) et hreflang ajouté aux pages dynamiques (articles, blog)
This commit is contained in:
parent
f2f1bd41e1
commit
88adcb1590
3 changed files with 42 additions and 36 deletions
|
|
@ -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))
|
||||
|
|
|
|||
Loading…
Reference in a new issue