Examples of Great URL Design (2023)

Slug + ID vs. Slug-only Designs

  • Many commenters like the “ID plus optional slug” pattern (e.g., /questions/:id/:slug or /dp/:id), because:
    • IDs give stable, permanent references.
    • Slugs can change with titles without breaking links.
    • Servers can ignore or 302-redirect if the slug is missing or wrong, avoiding misleading or obscene text.
  • Others find slugs unnecessary bloat: URLs get long, break when titles change, and are often unreadable in non-ASCII languages.
  • Some argue slug-only URLs are “more elegant” but require extra tables, many-to-one slug mappings, and redirects to avoid broken links or misleading slugs.

Amazon, Stack Overflow, Notion & Other Real-World Schemes

  • Amazon’s /slug/dp/id is seen as both good (human readable, SEO-friendly, ID works alone) and annoying (slug before ID makes trimming harder; URLs bloated with tracking parameters).
  • Stack Overflow’s /questions/id/slug is praised as easy to shorten and canonicalize; they 301 to the correct slug.
  • Notion, Confluence, Reddit, and news sites commonly use …/whatever-title-or-text-id, often ignoring the text and relying on the ID, with mixed feelings about prankable text and SEO motivations.
  • GitHub’s URLs are widely admired for consistency, REST-like structure, and extension-based variants (.patch, .diff, .keys).

URL Semantics, Structure, and Rules

  • Several participants endorse principles like:
    • One resource ↔ one URL; URLs should be permanent, manageable, scalable, short, and optionally contain a “speaking” slug or namespace.
    • File-like suffixes (.json, .html) can be useful for APIs; opinions diverge on exposing server-side tech extensions (.php, .aspx).
  • Debate over trailing slashes and whether they matter; consensus leans toward “not important” if behavior is consistent.

Localization, Accessibility, and UX

  • Some advocate localized slugs and language codes in paths (e.g., /en/, /cy/), arguing it respects non-English speakers and can help SEO.
  • Others say modern search and link previews reduce the importance of human-readable URLs, especially on phones.
  • Link previews themselves are divisive: some find them space-wasting and low-value; others see them as replacing the role of descriptive slugs.

Edge Cases and Technical Concerns

  • Discussions around encoding (/, +, %20) highlight complexity when allowing arbitrary characters or open-ended path segments.
  • Canonical tags and 301 redirects are frequently mentioned as necessary to avoid duplicate content and analytics confusion.