mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 17:35:10 +03:00
chore(www): add /evals to the sitemap (#49226)
<!-- ccr-slack-attribution --> _Requested by **Sean Oliver** · [Slack thread](https://supabase.slack.com/archives/C07P3AU3J2D/p1787036390117589?thread_ts=1787036390.117589&cid=C07P3AU3J2D)_ ## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## What kind of change does this PR introduce? Chore. One entry added to the www sitemap generator. ## What is the current behavior? `https://supabase.com/evals` is missing from `sitemap_www.xml`, so search crawlers are never told the page exists. `robots.txt` doesn't block it, they just have no way to find it from the sitemap. The reason is that `/evals` is served by a separate Vercel project and only reaches supabase.com through a proxy rewrite in `apps/www/lib/rewrites.js`: ```js { source: '/evals', destination: 'https://supabase-evals.vercel.app', }, ``` `apps/www/internals/generate-sitemap.mjs` builds its URL list by globbing local route source files (`pages/**`, `_blog/*.mdx`, prerendered `.next/server/pages/**`, etc.) and never resolves rewrites. There is no page file behind `/evals`, so the globs can't discover it. Closes GROWTH-1113. ## What is the new behavior? `https://supabase.com/evals` appears once in the generated `sitemap_www.xml`, with the same `<changefreq>weekly</changefreq>` and `<priority>0.5</priority>` as every other entry in the file (no entry in this sitemap carries a `<lastmod>`). The entry is a small named const spread into the final `urlset` join, next to `changelogDetailUrls` — the existing precedent in this file for URLs with no page file behind them. Nothing else in the script changed, and the sitemap index output (`sitemap.xml`) is byte-identical. ```diff + // /evals is a separate app proxied onto supabase.com via a rewrite in lib/rewrites.js, + // so it has no page file for the globs above to find. Hardcode it here. + const proxiedAppUrls = [ + ` + <url> + <loc>https://supabase.com/evals</loc> + <changefreq>weekly</changefreq> + <priority>0.5</priority> + </url> + `, + ] + const sitemap = ` <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> - ${[...staticUrls, ...changelogDetailUrls].join('')} + ${[...staticUrls, ...changelogDetailUrls, ...proxiedAppUrls].join('')} </urlset> ` ``` This only makes the URL discoverable. Whether the page content itself is crawlable is separate work, tracked in the evals repo. ## Additional context Verification, run locally against this branch. The generator runs standalone (`node ./internals/generate-sitemap.mjs` from `apps/www`); a missing `.next` just means the globs match fewer pages, and the missing changelog RSS is caught internally. I generated `sitemap_www.xml` from `master` and from this branch and diffed the two. The added entry is the only difference: ``` 3271a3272,3277 > > <url> > <loc>https://supabase.com/evals</loc> > <changefreq>weekly</changefreq> > <priority>0.5</priority> > </url> ``` Exactly one occurrence, with its neighbouring entry for context: ``` $ grep -c '<loc>https://supabase.com/evals</loc>' public/sitemap_www.xml 1 <url> <loc>https://supabase.com/terms</loc> <changefreq>weekly</changefreq> <priority>0.5</priority> </url> <url> <loc>https://supabase.com/evals</loc> <changefreq>weekly</changefreq> <priority>0.5</priority> </url> </urlset> ``` Other checks: - Both outputs parse as well-formed XML (Python `xml.dom.minidom`): `sitemap_www.xml` has 545 `<url>` elements, `sitemap.xml` parses OK. - `sitemap.xml` (the sitemap index) is identical to the pre-change output; `diff` reports no changes. - `npx prettier --check internals/generate-sitemap.mjs` → "All matched files use Prettier code style!" - Both generated sitemaps are gitignored (`apps/www/.gitignore` lines 29-30), confirmed with `git check-ignore`. `git status` shows only `apps/www/internals/generate-sitemap.mjs`, so no generated file is in the commit. - No test, snapshot, or fixture anywhere in the repo references the sitemap generator, so there was nothing to run. Its only caller is `apps/www`'s `postbuild` script. Not run: `pnpm --filter=www build`. It fails during "Collecting page data" on a clean `master` checkout in this environment too, so the failure is pre-existing and unrelated, and this change needs no build to verify. Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
1 parent
6368f00ca0
commit
8a33c094b4
1 file changed
+13
-1
@@ -139,10 +139,22 @@ async function generate() {
|
||||
}
|
||||
})()
|
||||
|
||||
// /evals is a separate app proxied onto supabase.com via a rewrite in lib/rewrites.js,
|
||||
// so it has no page file for the globs above to find. Hardcode it here.
|
||||
const proxiedAppUrls = [
|
||||
`
|
||||
<url>
|
||||
<loc>https://supabase.com/evals</loc>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
`,
|
||||
]
|
||||
|
||||
const sitemap = `
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
${[...staticUrls, ...changelogDetailUrls].join('')}
|
||||
${[...staticUrls, ...changelogDetailUrls, ...proxiedAppUrls].join('')}
|
||||
</urlset>
|
||||
`
|
||||
|
||||
|
||||
Reference in new issue
Block a user