llms.txt
Make your documentation easier for AI models to discover and understand with an automatically generated llms.txt file.
Overview
llms.txt is a standardized text file served at /llms.txt on your live documentation site. It helps AI models and LLM-powered tools discover and understand your documentation.
When enabled, Documentation.AI generates the file during deployment. Each published page appears with its title, description, and a link to the Markdown version of the page. The file is organized by navigation sections, including tabs, groups, products, versions, and languages.
Toggle generation from the SEO section in Site Config or configure it in documentation.json. See Site-level SEO configuration for related settings.
llms.txt always reflects the last published version of your documentation. Publish your changes to update the file on your live site.
Enable or disable llms.txt
Turn llms.txt on or off for your documentation. When enabled, Documentation.AI generates and serves the file. When disabled, the file is not served.
Using the Editor
Use Site Config in the Editor to toggle llms.txt without editing files.
Open Site Config
In the Editor, click Site Config in the top toolbar, then select SEO.
Toggle llms.txt generation
- Enable
llms.txtto generate and serve the file at/llms.txt. - Disable
llms.txtif you do not want Documentation.AI to expose this file to AI crawlers.
Publish and verify
- Changes appear in the Changes panel alongside content edits.
- Publish your documentation so the
llms.txtchange is applied to your live site. - Open
/llms.txton your docs domain to confirm that the file is served when enabled or no longer available when disabled.
Using documentation.json
Set seo.llms-txt:enabled to true or false in your documentation.json file.
{
"seo": {
"llms-txt:enabled": true
}
}
Set the value to true to generate and serve llms.txt. Set it to false to disable generation and serving.
How llms.txt is generated
During deployment, Documentation.AI iterates over the published pages in your navigation. Each page becomes an entry with a link to its Markdown representation.
- [Page Title](https://docs.example.com/page-path.md): Page description
Documentation.AI groups entries by the navigation section that contains each page. Depending on your configuration, sections can represent a tab, group, product, version, or language.
External links in your navigation are excluded because Documentation.AI cannot generate Markdown page content for them.
Documentation.AI also generates an llms-search.txt file in parallel. This file contains the same page entries as llms.txt and adds the extracted H1 to H3 headings from each page, giving AI search tools more context about page content.
Generation is skipped for preview deployments. Publish your documentation to generate updated llms.txt and llms-search.txt files.
llms.txt and access control
Access control determines which pages Documentation.AI includes in llms.txt.
- Public sites: All published pages are included.
- Partial auth sites: Only public pages are included. Pages gated behind authentication are excluded so private content is not exposed to AI crawlers.
- Private sites:
llms.txtgeneration is skipped entirely.
The same access logic applies to your sitemap. For related crawler behavior, see robots.txt. Configure public, partial, and private access modes in Access Control.
Access and verify llms.txt
Verify the published file from your live documentation site after you publish a configuration change.
Open your live docs site
Open your published documentation site in a browser. Use the live domain rather than an Editor preview or preview deployment.
Open the llms.txt file
- Append
/llms.txtto your documentation site's domain. - When
llms.txtis enabled, confirm that the URL returns the file with an HTTP 200 response. - When
llms.txtis disabled, confirm that the file is no longer served after you republish the documentation.
Custom domains and subpath deployments use the same relative path. Open /llms.txt from the live documentation domain, regardless of whether your site uses a custom domain or a deployment subpath.