# Hidden sections

> For the complete documentation index, see [llms.txt](https://preview.writedocs.io/llms.txt).

Tabs, products, versions, languages or dropdowns that nothing links to - docs for a different audience, reached by their address, with a search of their own.

Any tab, product, version, language or dropdown can be `hidden`: it's built like the rest of the site, but no tab, switcher or menu leads to it. Use it for docs that share a site but are meant for someone else - an admin guide next to the user guide, a partner program, an internal API:

```json
{
  "navigation": {
    "products": [
      { "product": "User guide", "pages": ["user/intro", "user/setup"] },
      {
        "product": "Admin",
        "hidden": true,
        "tabs": [
          { "tab": "Setup", "pages": ["admin/setup"] },
          { "tab": "Security", "pages": ["admin/security"] }
        ]
      },
      { "product": "Partners", "hidden": true, "searchPublic": true, "pages": ["partners/intro"] }
    ]
  }
}
```

**`hidden`** `boolean` default: `false`

Leaves the item out of every tab, switcher and menu. Its pages are still built, at their usual addresses.

**`searchPublic`** `boolean` default: `false`

For a hidden item: its search also finds the site's public pages. `writedocs validate` rejects it on an item that isn't hidden.

## What readers see

- **Nothing links to it.** No tab, switcher, menu or mobile menu lists a hidden item, and the site's address (`/`) never opens it. Share its pages' addresses - `/admin/setup/` - with the people it's for.
- **Inside, it reads like a site of its own.** The level it sits on isn't shown: a reader of the Admin docs above sees no product switcher, since it would list the other products. Everything under it works as usual - its tabs, versions, languages, sidebar, and previous and next links.
- **Its search is its own.** Searching from a hidden item's pages finds only those pages, and the rest of the site's search never finds them. With `"searchPublic": true`, its search finds the public pages too - useful when, say, the Admin docs build on the user guide.
- **Folder addresses lead to public pages first.** When a folder has pages from both public and hidden sections, opening the folder's address goes to a public one - see [Redirects](https://preview.writedocs.io/docs/configuration/redirects/#folder-addresses).

## Hidden isn't private

Anyone with a page's address can read it. A hidden section's pages are also listed in `sitemap.xml`, `llms.txt`, `llms-full.txt` and the [MCP server](https://preview.writedocs.io/docs/configuration/mcp/), like any other page - to leave a page out of those, set `seo.noindex` in its frontmatter:

```mdx
---
title: Security settings
seo:
  noindex: true
---
```

For docs that must stay private, put a login in front of their addresses - on Cloudflare, with Cloudflare Access - or publish them as a separate site.

## A site with no public section

If every top-level item is hidden, add an `index.mdx` at the project root for the site's home page. Without one, the site's address shows "page not found", and `writedocs validate` warns about it.

## Hiding a single page

To keep one page out of the sidebar, rather than a whole section, set `hidden: true` in the page's frontmatter - see [Frontmatter](https://preview.writedocs.io/docs/content/frontmatter/#hidden).