Designing a website without 404s
Concept: Fuzzy URL Matching Instead of 404s
- Site maps mistyped or non-existent product URLs to the “closest” supplement page instead of returning 404.
- Originally motivated by auto-migrating changing URL schemas and product renames.
Perceived Benefits
- Can be helpful on search-centric sites: users already expect to browse results, not hit precise slugs.
- Useful for typo recovery and link migrations.
- Multiple URLs pointing to the same content is seen as acceptable by some, especially when an ID in the path is the true key.
- Some users frequently “edit the URL bar” (e.g., for ticket IDs, product codes) and appreciate when that works.
Main Usability and Safety Concerns
- 404 exists to clearly signal “this doesn’t exist”; silent redirection can mislead users into thinking they got the right page.
- For medications/supplements this is considered potentially dangerous: a near match could be the wrong product yet look “correct enough.”
- Bookmarks and shared links might later resolve to different content if matching changes over time.
- Troll URLs with offensive or conspiratorial text can resolve to innocent products, creating reputational issues.
SEO and Web-Architecture Concerns
- Risk of duplicate-content and indexing confusion when many URLs resolve to the same page.
- Debate over whether Google penalizes this; some cite guidelines and migrations that worked fine with proper 301s and canonicals, others see it as fragile and opaque.
- URLs are treated as a public API surface; fuzzy matching effectively commits the site to an unbounded set of “supported” URLs.
- Archiving and link-rot handling become harder when URLs are non-deterministic.
Implementation and Scaling Issues
- Similarity lookups on every bad URL can be expensive; suggestions to cache, throttle, and deprioritize in the database.
- Large sites with millions of URLs may find fuzzy DB queries impractical.
Suggested Alternatives and Compromises
- Keep proper 404 (or 410) status codes and show a rich “Did you mean…?” page with search, suggestions, and top similar URLs.
- Use canonical URLs with IDs, and redirect only when ID matches but slug doesn’t.
- For migrations, store old URLs and do explicit 301/302/307/308 redirects; use fuzzy matching only as on-page suggestions, with similarity thresholds.
Author’s Updated Plan
- Track which URLs map to which products.
- On 404:
- If URL was previously associated with a product, redirect to that product.
- If it’s a new, unknown URL, return a 404 page that lists similar products instead of silently redirecting.