# 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.