.mdx.archived. They are excluded from the build by
.mintignore, and their old URLs redirect via docs.json.
How a page is actually withdrawn
Mintlify offers three things that sound alike and do very different things:
Only the last actually withdraws a page, and it is the one to reach for.
.mintignore
uses .gitignore syntax and lives at the root of the docs directory.
The last column is the one people miss. Intercom’s Fin crawls this site, and its
library is the sitemap plus everything reachable by following links — which includes the
whole sidebar. So a page dropped from navigation is still in the sitemap and still gets
quoted to customers, and a noindex page that remains in navigation is still crawled
because every page links to it. Verified on 2026-09-13: a resync pulled 57 items from 49
navigation entries, the extra eight being the six playbook pages, this file, and the
site root — all sitemap-only, none of them in the sidebar.
Renaming .mdx to something else does not work on its own. It was tried first, in
the commit that archived these nine, and after a successful deploy all nine URLs still
returned 200 with their full content and the sitemap still advertised every one — 59
entries against 51 .mdx files. The extension is not an exclusion; .mintignore is.
A redirect is worth adding alongside, so an old link lands somewhere useful instead of a
404, and so link checkers do not flag inbound references as broken.
Currently withdrawn
None were in
docs.json navigation before withdrawal, and no live page links to them —
the only inbound link, cli/policies to model policies, sits inside a {/* … */} block.
Redirects are permanent (308) by default, which is what we want: these URLs are not
coming back at their old paths.
Restoring one
*.mdx.archived in .mintignore.
Then drop its redirects entry from docs.json — a redirect on a live page’s own URL
would shadow it — add it to the navigation if it should appear there, and check its
links: an archived page may point at other archived pages.
The nightly docs walkers
api-reference-walker and python-sdk-walker existed only to test two of these pages
and are archived in unbound-integration-tests; api-surface-walker lost two of its
three sub-checks. Withdrawing a page without retiring the walker that reads it turns a
useful nightly finding into a permanent 404 at step one.
