From 4336ae8949795f1bfa68287f6a64a1641dcea942 Mon Sep 17 00:00:00 2001 From: Florent Tapponnier Date: Mon, 6 Jul 2026 12:28:16 +0200 Subject: [PATCH] fix(seo): emit rss in JSX directly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Next Metadata.alternates.types silently drops the RSS alternate in App Router — validated on prod after #916 shipped and the tag never rendered in HTML. Falling back to a direct in the JSX so feed readers + AI crawlers (Perplexity, Bing News, Claude) can auto-discover /rss.xml. --- src/app/layout.tsx | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 0d55ff41..b54c0699 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -91,16 +91,11 @@ export const metadata: Metadata = { description: "Open benchmarks for crypto infrastructure.", site: SITE.twitter, }, - // so feed readers - // + AI crawlers (Perplexity, Bing News, Claude) auto-discover the - // RSS feed. Route: src/app/rss.xml/route.ts. + // The is emitted + // directly in the JSX (layout render) because Next Metadata + // .alternates.types silently drops the entry in App Router. alternates: { canonical: SITE.url, - types: { - "application/rss+xml": [ - { url: "/rss.xml", title: "OpenChainBench — new benchmarks" }, - ], - }, }, }; @@ -177,6 +172,16 @@ export default async function RootLayout({ suppressHydrationWarning > + {/* RSS feed auto-discovery. Next Metadata.alternates.types does + NOT render this in App Router (silently dropped); emit directly + in so feed readers, AI crawlers (Perplexity, Bing News, + Claude), and browsers pick up /rss.xml. */} +