Product URLs are SEO-friendly with slugs, not IDs
Why it matters
URLs like /products/clk123abc456 give search engines and humans zero keyword signal, cost rankings on long-tail product queries, and make every shared link look like spam. Competitors using slug-based URLs rank above you for the same inventory. Swapping product platforms or re-seeding the database also breaks every external link because IDs shift, whereas stable slugs survive migrations and preserve the findability equity you already earned.
Severity rationale
Low because the catalog still functions, but ID-based URLs permanently suppress organic traffic and link equity.
Remediation
Add a unique slug column to the product model in prisma/schema.prisma, backfill it from product names, then move the route to src/app/products/[slug]/page.tsx and look up by slug:
model Product {
id String @id @default(cuid())
slug String @unique
}
export default async function ProductPage({ params }) {
const product = await prisma.product.findUnique({ where: { slug: params.slug } })
}
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Catalog & Product Logic Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from ecommerce-catalog·automated