# Not-found page > DocsNotFound answers HTTP 404 for a URL with no page, and shelldocs build turns it into 404.html. Source: https://shelldocs.shellui.dev/docs/guides/not-found `DocsNotFound` is the view a reader gets for a docs URL that has no page. It keeps the site's layout, names the address that was asked for, and links back to the docs. ## Using it It goes in the `else` branch of `Components/Pages/DocsPage.razor`. `shelldocs init` writes it there for new sites. ```razor @if (_document is not null) { } else { } ``` A site created before `0.1.14-alpha` has a hand-written block in that branch. Replace it with the tag. ## What it does | Name | Type | Default | Description | |------|------|---------|-------------| | `Answers HTTP 404` | `status` | | A crawler or link checker sees a missing page as missing, not as a page that loaded. | | `Names the address` | `content` | | Shows the path that was requested. | | `Links back` | `content` | | To wherever /docs leads: the first docs page, in the latest version. | ## In a static export `shelldocs build` uses the same view in two ways. **It writes `404.html`.** The build requests a URL that doesn't exist and saves the response as `404.html` at the root of the export. GitHub Pages, Cloudflare Pages, Netlify and most other static hosts serve that file, with a 404 status, for any URL that has no file. One file serves every unknown URL, so the build leaves the address out of it and `shelldocs.js` fills in the path the reader asked for, relative to the site's base. Before `0.1.17-alpha` every unknown URL showed the build's own probe address. **It fails on a broken page.** If a page from the navigation graph answers 404 or renders `DocsNotFound`, the build stops with an error instead of publishing a not-found page under a real URL. The usual cause is content that didn't reach the publish output. > **--spa-fallback replaces 404.html** > > With `--spa-fallback`, `shelldocs build` overwrites `404.html` with a copy of the home page. A reader who follows a dead link then lands on the home page with no sign that the address was wrong. Leave the flag off unless you need it. ## Changing the text | Name | Type | Default | Description | |------|------|---------|-------------| | `Path` | `string?` | `the requested path` | The address shown in the message. | | `HomeHref` | `string?` | `where /docs leads` | Where the link back goes. | | `HomeLabel` | `string` | `Back to the docs` | Text of the link back. | ```razor ``` `DocsNotFound` is for `DocsPage.razor`. It is not available as a tag in markdown. ## See also - [shelldocs build](https://shelldocs.shellui.dev/docs/cli/build.md): Every step of the export, and the --spa-fallback flag. - [Redirects](https://shelldocs.shellui.dev/docs/guides/redirects.md): Send a moved page's old address to its new one.