From 71ff888ee8a10036d9a6906d792b83f5eb303702 Mon Sep 17 00:00:00 2001 From: ssavutu Date: Thu, 13 Aug 2026 01:19:05 -0400 Subject: [PATCH] Let /podcasts be the Podcasts page it now has LEGACY_SECTION_SLUGS redirects a dead WordPress category archive to the section that absorbed it, and it carried one entry: /podcasts -> /columns, from when Podcasts existed only as a category_aliases entry on Columns. Podcasts has a subsection row now, with 75 articles and a page of its own. The redirect runs in middleware, ahead of routing, so it shadowed that page completely: every request for /podcasts still landed on /columns, and the count on the sections screen was the only visible sign the page existed. The module's own comment called this out -- "if a slug here is ever given a real taxonomy row, remove it from this map" -- so this is that removal. The map is now empty, which is the healthy state: every WordPress sub-category the migration left behind has a row. The mechanism stays for the next one. Checked the other 47 seeded slugs against production first; /podcasts was the only one shadowed. /wrestling, /editorial and /mens-lacrosse were already serving their own pages. Co-Authored-By: Claude Opus 5 --- src/utils/legacySections.ts | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/utils/legacySections.ts b/src/utils/legacySections.ts index defc0e8..58332ec 100644 --- a/src/utils/legacySections.ts +++ b/src/utils/legacySections.ts @@ -12,16 +12,18 @@ // regenerated wholesale after every reseed, and a hand-maintained entry living // in it would be silently overwritten. // -// Add an entry only where the destination genuinely holds the content. The CMS -// records this relationship itself as a `category_aliases` entry on the owning -// section -- "Podcasts" is listed on Columns -- so that is the source to check -// before adding a row here. +// Add an entry only where the destination genuinely holds the content, and only +// where the slug has no taxonomy row of its own. A row is always the better +// answer: it gives the category its own page instead of pointing at a section +// that merely contains it. // -// If a slug here is ever given a real taxonomy row, remove it from this map: -// the redirect runs ahead of routing and would shadow the new page. -export const LEGACY_SECTION_SLUGS: Record = { - // Columns carries "Podcasts" in its category_aliases. 784 requests over the - // ten days of retained logs, and nothing on the site links it -- this is - // entirely inbound from the WordPress era. - podcasts: "/columns", -}; +// If a slug here is ever given a real taxonomy row, remove it from this map. +// The redirect runs ahead of routing, so it shadows the new page completely -- +// which is what happened to /podcasts. The CMS gave Podcasts a subsection row +// with 75 articles, and this map went on sending every request for it to +// /columns -- 784 of them in the ten days of logs that were retained when this +// entry was added, none of them from a link on the site. +// +// Empty is the healthy state. Every WordPress sub-category the migration left +// behind now has a row. +export const LEGACY_SECTION_SLUGS: Record = {};