From 4e1143896305598cce2e8f16e407c9d5f93d87a6 Mon Sep 17 00:00:00 2001 From: Ryan Salazar Date: Wed, 20 May 2026 07:17:59 +0000 Subject: [PATCH] seo: open site to search engines + expand sitemap to full catalog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - layout.tsx: flip robots.index from false→true (and the matching googleBot block). Drop the manual in the JSX head — it was duplicating (and conflicting with) the metadata-driven tag, so Google was seeing both "index, follow" AND "noindex, nofollow" and taking the more restrictive one. Now the metadata block is the single source of truth. - sitemap.ts: expand from 5,000 articles to up to 45,000 (catalog is ~26k; cap leaves room for static + authors + events under Google's 50k-per-file ceiling). Add /authors/[slug] entries pulled from bb.author_profiles, and /events/[slug] entries pulled from bb.events. Drop the duplicate /articles/[slug] emissions — /news/[slug] is the canonical news URL. - legacy-source.ts: page through the supabase query in 1,000-row chunks via Range headers so the 25k cap actually returns the full catalog (the previous `.limit(25000)` was getting silently truncated at PostgREST's default 1,000 max_rows). Phase B (Ollama rewriter) is live; the press-release scrubber + AI featured-image jobs are running in background to clean the catalog. User explicitly chose to open SEO now rather than wait for those jobs to finish. --- src/app/layout.tsx | 17 +++--- src/app/sitemap.ts | 95 +++++++++++++++++++++++-------- src/lib/articles/legacy-source.ts | 78 +++++++++++++++++-------- 3 files changed, 133 insertions(+), 57 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index f364129..bec2ff8 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -52,14 +52,14 @@ export const metadata: Metadata = { images: ['/assets/images/og-image.png'] }, robots: { - // noindex while Phase B (PR rewrite) and Phase D (i18n routes) land. - // Flip both to true once Google Rich Results Test passes on a sample - // NewsArticle and the news sitemap is wired up (Phase C). - index: false, - follow: false, + // Open to indexing as of 2026-05-20. Phase B (Ollama rewriter) is + // live; sitemap + robots.ts exist; the PR scrubber + AI featured + // images are running in the background to clean up the catalog. + index: true, + follow: true, googleBot: { - index: false, - follow: false, + index: true, + follow: true, 'max-video-preview': -1, 'max-image-preview': 'large', 'max-snippet': -1 @@ -85,7 +85,8 @@ export default function RootLayout({ or person names and offers a translate popup unprompted. */} - + {/* robots tag now driven entirely by `export const metadata.robots` + above — having both produced conflicting noindex/index tags. */}