Static/docs/example routes are served as <route>/index.html and nginx 301-redirects the slash-less form to add the trailing slash. The sitemap generator, the prerender canonical/og:url, and the client useSEO canonical all emitted the slash-LESS form, so every sitemap URL was fetched as a redirect (filed under 'Page with redirect' in Search Console) and each canonical pointed at a redirecting URL. Align all three to the trailing-slash form so sitemap URL == canonical == served URL == 200, with no redirect hop. - generate-sitemap.mjs: append '/' to every <loc> (root stays '/') - prerender-seo.mjs: withSlash() on canonical + og:url (routes + examples) - useSEO.ts: withTrailingSlash() on canonical + og:url (covers dynamic project pages too) |
||
|---|---|---|
| .. | ||
| add-passive-presets.mjs | ||
| copy-monaco.mjs | ||
| generate-sitemap.mjs | ||
| generate-sitemap.ts | ||
| prerender-seo.mjs | ||
| translate-i18n.mjs | ||