Bean URLs are derived from normalize(roaster) + name (scripts/lib/aggregate.js). If a published review's roaster or bean name is edited, the slug — and therefore the canonical URL /bean/<slug>/ — changes, breaking existing links and losing accrued SEO.
Options to consider:
- Generate lightweight redirect stubs (
<meta http-equiv="refresh"> + canonical) for previous slugs.
- Persist a stable id per bean and map slugs to it.
- Keep a committed
redirects map the build honours.
Low priority until beans are renamed in practice, but worth designing before the catalogue grows.
Bean URLs are derived from
normalize(roaster) + name(scripts/lib/aggregate.js). If a published review's roaster or bean name is edited, the slug — and therefore the canonical URL/bean/<slug>/— changes, breaking existing links and losing accrued SEO.Options to consider:
<meta http-equiv="refresh">+ canonical) for previous slugs.redirectsmap the build honours.Low priority until beans are renamed in practice, but worth designing before the catalogue grows.