Skip to content

Commit ead3459

Browse files
ericyangpanclaude
andcommitted
fix(seo): correct sitemap URL paths and improve crawl efficiency
- Fix missing leading slashes in all static and dynamic paths - Remove zh-CN language code mapping (use zh-Hans directly) - Add missing category pages (extensions, vendors) to sitemap - Adjust changeFreq for high-traffic pages to 'daily' - Reorder static paths by priority for better organization These fixes ensure proper URL canonicalization and improve search engine crawling efficiency for all localized pages. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 85c8d1b commit ead3459

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

src/app/sitemap.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ function generateLocalizedPages(
3131
alternates: {
3232
languages: Object.fromEntries(
3333
locales.map((loc) => [
34-
loc === 'zh-Hans' ? 'zh-CN' : loc,
34+
loc,
3535
getLocalizedUrl(baseUrl, path, loc),
3636
])
3737
),
@@ -50,14 +50,16 @@ export default function sitemap(): MetadataRoute.Sitemap {
5050
// Static pages - generate for all locales
5151
const staticPaths = [
5252
{ path: '/', priority: 1, changeFreq: 'weekly' as const },
53+
{ path: '/ides', priority: 0.8, changeFreq: 'daily' as const },
54+
{ path: '/clis', priority: 0.8, changeFreq: 'daily' as const },
55+
{ path: '/extensions', priority: 0.8, changeFreq: 'daily' as const },
56+
{ path: '/models', priority: 0.8, changeFreq: 'daily' as const },
57+
{ path: '/model-providers', priority: 0.8, changeFreq: 'daily' as const },
58+
{ path: '/vendors', priority: 0.8, changeFreq: 'daily' as const },
59+
{ path: '/articles', priority: 0.8, changeFreq: 'daily' as const },
5360
{ path: '/ai-coding-stack', priority: 0.9, changeFreq: 'weekly' as const },
54-
{ path: 'ides', priority: 0.8, changeFreq: 'weekly' as const },
55-
{ path: 'clis', priority: 0.8, changeFreq: 'weekly' as const },
56-
{ path: 'models', priority: 0.8, changeFreq: 'daily' as const },
57-
{ path: 'model-providers', priority: 0.8, changeFreq: 'weekly' as const },
58-
{ path: '/curated-collections', priority: 0.7, changeFreq: 'monthly' as const },
59-
{ path: '/articles', priority: 0.8, changeFreq: 'weekly' as const },
6061
{ path: '/docs', priority: 0.8, changeFreq: 'weekly' as const },
62+
{ path: '/curated-collections', priority: 0.7, changeFreq: 'monthly' as const },
6163
];
6264

6365
const staticPages: MetadataRoute.Sitemap = staticPaths.flatMap(({ path, priority, changeFreq }) =>
@@ -90,7 +92,7 @@ export default function sitemap(): MetadataRoute.Sitemap {
9092
const ideDetailPages: MetadataRoute.Sitemap = (idesData as ManifestItem[])
9193
.filter((ide) => ide.id)
9294
.flatMap((ide) =>
93-
generateLocalizedPages(baseUrl, `ides/${ide.id}`, {
95+
generateLocalizedPages(baseUrl, `/ides/${ide.id}`, {
9496
lastModified: buildDate,
9597
changeFrequency: 'weekly' as const,
9698
priority: 0.6,
@@ -101,7 +103,7 @@ export default function sitemap(): MetadataRoute.Sitemap {
101103
const cliDetailPages: MetadataRoute.Sitemap = (clisData as ManifestItem[])
102104
.filter((cli) => cli.id)
103105
.flatMap((cli) =>
104-
generateLocalizedPages(baseUrl, `clis/${cli.id}`, {
106+
generateLocalizedPages(baseUrl, `/clis/${cli.id}`, {
105107
lastModified: buildDate,
106108
changeFrequency: 'weekly' as const,
107109
priority: 0.6,
@@ -112,7 +114,7 @@ export default function sitemap(): MetadataRoute.Sitemap {
112114
const modelDetailPages: MetadataRoute.Sitemap = (modelsData as ManifestItem[])
113115
.filter((model) => model.id)
114116
.flatMap((model) =>
115-
generateLocalizedPages(baseUrl, `models/${model.id}`, {
117+
generateLocalizedPages(baseUrl, `/models/${model.id}`, {
116118
lastModified: buildDate,
117119
changeFrequency: 'daily' as const,
118120
priority: 0.6,
@@ -123,7 +125,7 @@ export default function sitemap(): MetadataRoute.Sitemap {
123125
const providerDetailPages: MetadataRoute.Sitemap = (providersData as ManifestItem[])
124126
.filter((provider) => provider.id)
125127
.flatMap((provider) =>
126-
generateLocalizedPages(baseUrl, `model-providers/${provider.id}`, {
128+
generateLocalizedPages(baseUrl, `/model-providers/${provider.id}`, {
127129
lastModified: buildDate,
128130
changeFrequency: 'weekly' as const,
129131
priority: 0.6,

0 commit comments

Comments
 (0)