If you run a statically generated website, I recommend append-only generation, where you keep your `dist/` (or whatever web root) stateful between builds. This guarantees you don't break URIs even if the static generator changes or the source content is removed.

You can even make an orphan branch and check out that branch into `dist/` as a worktree to keep it under version control.

Even for people who don't practice this, if you're publishing a static site, you can make sure you're generating output with rel=canonical links and at any given point, you should be able to run a tool (entirely separate from your chosen static site generator) over the output to extract those URLs and verify at time t2 that the set of links that existed at t1 (where t1 < t2) is a subset of those at t2.