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) |
||
|---|---|---|
| .. | ||
| analytics.ts | ||
| boardPinMapping.ts | ||
| boardProtocols.ts | ||
| captureCanvasPreview.ts | ||
| compilationLogger.ts | ||
| countryFlag.ts | ||
| esp32ImageParser.ts | ||
| exampleToBuildNetlistInput.ts | ||
| fatImage.ts | ||
| firmwareLoader.ts | ||
| generateExamplePreview.tsx | ||
| hexParser.ts | ||
| importProject.ts | ||
| loadExample.ts | ||
| pinPositionCalculator.ts | ||
| projectPayload.ts | ||
| reservedUsernames.ts | ||
| sdCardFiles.ts | ||
| useSEO.ts | ||
| useTouchDevice.ts | ||
| uuid.ts | ||
| vlxFile.ts | ||
| wireColors.ts | ||
| wireHitDetection.ts | ||
| wireUtils.ts | ||
| wokwiZip.ts | ||