From 63e0e886618844027d1299f8d8e71a55dae5535f Mon Sep 17 00:00:00 2001 From: "Sol (Paperclip)" Date: Tue, 4 Aug 2026 23:03:02 +0000 Subject: [PATCH] fix(BUY-66226): drop deprecated sitemap-products-sg.xml from sitemap index + robots MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SG product slug pages return 410 Gone (BUY-37747/BUY-37750) and the /sitemap-products-sg.xml route itself emits 410, but the sitemap index (sitemap.xml) and robots.txt still unconditionally listed it. That kept a permanent broken-sitemap reference alive in GSC coverage (an index pointing at a Gone sub-sitemap) — the route comment said "delete it from GSC" yet the index kept re-publishing the reference. Remove the SG entry from both the index route and robots.ts so no crawler is directed at a Gone sitemap. Part of BUY-66226 (sitemap deploy triage). The core BUY-66176 regression (100 SG URLs in sitemap-products.xml) is already fixed in prod; this clears the residual broken-index reference. Co-Authored-By: Claude --- src/app/robots.ts | 4 +++- src/app/sitemap.xml/route.ts | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/app/robots.ts b/src/app/robots.ts index de3c501fe..b789b51ea 100644 --- a/src/app/robots.ts +++ b/src/app/robots.ts @@ -72,11 +72,13 @@ export default function robots(): MetadataRoute.Robots { // they ignore a single sitemap.xml pointer to an index. Listing // each sub-sitemap here also keeps coverage if the index is // temporarily stale at a CDN edge. + // Note: sitemap-products-sg.xml is intentionally omitted — SG product + // pages return 410 Gone (BUY-37747/BUY-37750) and the route returns 410, + // so listing it creates a permanent broken-sitemap reference in GSC. sitemap: [ "https://buywhere.ai/sitemap.xml", "https://buywhere.ai/sitemap-pages.xml", "https://buywhere.ai/sitemap-products.xml", - "https://buywhere.ai/sitemap-products-sg.xml", "https://buywhere.ai/sitemap-merchants.xml", "https://buywhere.ai/sitemap-categories.xml", "https://buywhere.ai/sitemap-compare.xml", diff --git a/src/app/sitemap.xml/route.ts b/src/app/sitemap.xml/route.ts index e6c94e891..d7dda8295 100644 --- a/src/app/sitemap.xml/route.ts +++ b/src/app/sitemap.xml/route.ts @@ -12,12 +12,15 @@ export const runtime = "nodejs"; export async function GET(): Promise { const now = new Date(); + // Sub-sitemaps listed here. sitemap-products-sg.xml is intentionally + // omitted: SG product slug pages return 410 Gone (BUY-37747/BUY-37750) + // and the /sitemap-products-sg.xml route emits 410, so listing it in the + // index produces a permanent broken-sitemap reference in GSC coverage. const sitemapEntries = [ { url: `${SITEMAP_BASE_URL}/sitemap-pages.xml`, lastModified: now }, { url: `${SITEMAP_BASE_URL}/sitemap-categories.xml`, lastModified: now }, { url: `${SITEMAP_BASE_URL}/sitemap-compare.xml`, lastModified: now }, { url: `${SITEMAP_BASE_URL}/sitemap-products.xml`, lastModified: now }, - { url: `${SITEMAP_BASE_URL}/sitemap-products-sg.xml`, lastModified: now }, { url: `${SITEMAP_BASE_URL}/sitemap-merchants.xml`, lastModified: now }, ];