Website Spec
Agent Readiness Required Updated 2026-05-29

Stable URLs

URLs are public contracts. Once published, they should keep working. Breaking them invalidates citations, bookmarks, links, and agent caches — and is almost always avoidable.

What it is

A stable URL is one that keeps resolving to the same content over time, or — when content moves — redirects permanently to its new location. The principle was set out by Tim Berners-Lee in 1998 in Cool URIs don’t change and has only become more important as agents, archives, and citations multiply.

A URL is a public contract. Once you publish one, every link, bookmark, citation, RSS reader, search index, and agent cache assumes it will keep working.

Why it matters

  • Agents cache answers. When a model quotes your page, it cites the URL. If that URL 404s next month, the citation is broken and your authority drops.
  • Search engines lose ranking signals. Backlinks accumulated over years are tied to the URL.
  • Humans hate broken links. Bookmarks, shared chat messages, printed materials.
  • Internal links rot. Every change inside your own site creates work elsewhere on it.

A site that reorganises its URLs every release teaches the web not to trust it.

How to implement

Design for permanence from the start:

  • Avoid implementation details. No /wp-content/, /index.php, .aspx, or ?id=42. These leak the stack and break when you switch it.
  • Avoid dates unless they are essential to the resource. A news article can keep /2025/03/headline. An evergreen documentation page should not.
  • Avoid the author or department. Authors leave and departments rename.
  • Use kebab-case slugs. Lowercase, hyphens between words, no trailing slashes mixed with non-trailing slashes — pick one and enforce it.
  • Pick a canonical host. www. or no-www., HTTPS only, one path style. Redirect the rest.

When a URL must change, redirect:

  • Issue a 301 Moved Permanently (or 308 to preserve the method) from the old URL to the new one.
  • Keep the redirect forever. Removing it years later breaks links you have forgotten about.
  • Avoid chains: redirect A directly to C, not A to B to C.
  • Never redirect everything to the homepage. That is worse than a 404 — it tells crawlers the page intentionally still exists.

For deletions, a clean 410 Gone is more honest than a soft 404 or a homepage redirect.

Common mistakes

  • Re-platforming and changing every URL slug “while we’re at it”.
  • Adding session IDs, tracking parameters, or A/B variants to canonical URLs.
  • Letting trailing slashes serve different content from non-trailing slashes.
  • 302 (temporary) redirects for moves that are permanent.
  • Removing redirect maps after a year because the file got big.

Verification

  • Crawl old URLs after a migration and confirm each returns 301 to a working target.
  • Use search-console reports to find 404s coming from external links.
  • Spot-check archived URLs in the Wayback Machine. If they still load, your redirects are doing their job.

Related topics

Sources & further reading

Search
esc close navigate open