Skip to content

Commit 3d7d8ee

Browse files
committed
fix(docs): reorder sitemap — comparison pages first, fix compare priority
- Emit /compare hub and all /compare/* slugs before docs and static pages - Remove duplicate /compare from static list - Use /compare/ prefix rule (0.85) before hub (0.9) so subpages get correct priority
1 parent a1bdb1e commit 3d7d8ee

1 file changed

Lines changed: 19 additions & 14 deletions

File tree

apps/docs/lib/sitemap-generator.ts

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@ import { source } from "@/lib/source";
77
const priorityRules = [
88
{ pattern: "/", priority: 1.0 },
99
{ pattern: "/docs", priority: 1.0 },
10+
{ pattern: "/compare/", priority: 0.85 },
1011
{ pattern: "/compare", priority: 0.9 },
11-
{ pattern: "/compare/plausible", priority: 0.85 },
12-
{ pattern: "/compare/google-analytics", priority: 0.85 },
13-
{ pattern: "/compare/fathom", priority: 0.85 },
1412

1513
{ pattern: "/getting-started", priority: 0.9 },
1614
{ pattern: "/sdk", priority: 0.9 },
@@ -97,6 +95,23 @@ export async function generateSitemapEntries(): Promise<MetadataRoute.Sitemap> {
9795
const entries: MetadataRoute.Sitemap = [];
9896

9997
try {
98+
// Comparison hub + every competitor page first (high-intent landing pages)
99+
const competitorSlugs = getAllCompetitorSlugs();
100+
entries.push({
101+
url: `${SITE_URL}/compare`,
102+
lastModified,
103+
changeFrequency: "monthly",
104+
priority: getPriority("/compare"),
105+
});
106+
entries.push(
107+
...competitorSlugs.map((slug) => ({
108+
url: `${SITE_URL}/compare/${slug}`,
109+
lastModified,
110+
changeFrequency: "monthly" as const,
111+
priority: getPriority(`/compare/${slug}`),
112+
}))
113+
);
114+
100115
// Get all documentation pages from source
101116
const pages = source.getPages();
102117
entries.push(
@@ -108,7 +123,7 @@ export async function generateSitemapEntries(): Promise<MetadataRoute.Sitemap> {
108123
}))
109124
);
110125

111-
// Add static pages that actually exist
126+
// Add static pages that actually exist (/compare already emitted above)
112127
const staticPages = [
113128
"/privacy",
114129
"/llms.txt",
@@ -121,7 +136,6 @@ export async function generateSitemapEntries(): Promise<MetadataRoute.Sitemap> {
121136
"/sponsors",
122137
"/terms",
123138
"/ambassadors",
124-
"/compare",
125139
"/data-policy",
126140
"/dpa",
127141
];
@@ -162,15 +176,6 @@ export async function generateSitemapEntries(): Promise<MetadataRoute.Sitemap> {
162176
priority: 0.8,
163177
});
164178
}
165-
166-
const competitorSlugs = getAllCompetitorSlugs();
167-
const comparisonEntries = competitorSlugs.map((slug) => ({
168-
url: `${SITE_URL}/compare/${slug}`,
169-
lastModified,
170-
changeFrequency: "monthly" as const,
171-
priority: getPriority(`/compare/${slug}`),
172-
}));
173-
entries.push(...comparisonEntries);
174179
} catch (error) {
175180
console.warn("Sitemap generation failed, using minimal fallback:", error);
176181
entries.push({

0 commit comments

Comments
 (0)