---
title: "Configuration"
manual: "LLMS TXT Generator"
version: "0.3"
permalink: "https://docs.typo3.org/permalink/web-vision/ai-llms-txt:configuration@0.3"
source: "Configuration/Index.rst"
rendered: "2026-10-13T13:11:58+00:00"
---

# Configuration {#configuration}

All settings are made per site, in the site configuration. Edit them in the
backend module **Site Management > Sites**, tab
**LLMS.TXT Configuration**, or directly in
`config/sites/<site-identifier>/config.yaml`.

The extension needs no TypoScript configuration of its own: the two page types
it uses are registered automatically.

## Site settings {#configuration-site}

**config/sites/main/config.yaml**

```yaml
llmsTxtEnabled: true
llmsTxtTitle: 'ACME Corporation'
llmsTxtDescription: 'Industrial products and engineering services since 1952.'
llmsTxtKeywords: 'manufacturing, engineering, consulting'
llmsTxtContactEmail: 'contact@example.com'
llmsTxtAdditionalInfo: |
  ## Licensing

  Product data sheets may be quoted with attribution.
llmsTxtMaxDepth: 2
llmsTxtExcludeDoktypes: '3, 199'
llmsTxtCacheLifetime: 900
```

-   **llmsTxtEnabled**

    -   *Type:* boolean
    -   *Default:* true

    Enables the extension for this site. This switch covers **both** outputs:

    -   `llms.txt` returns only a short "generation is disabled" notice.
    -   Markdown (`.md`) requests are answered with the site's regular
        "page not found" response.

-   **llmsTxtTitle**

    -   *Type:* string
    -   *Default:* title of the site root page

    Title used as the `# H1` heading of `llms.txt`.

-   **llmsTxtDescription**

    -   *Type:* string
    -   *Default:* description of the site root page

    Short summary rendered as the `>` blockquote below the title. Line breaks
    are collapsed into a single line, as the specification expects one
    blockquote line.

-   **llmsTxtKeywords**

    -   *Type:* string (comma-separated)
    -   *Default:* empty

    Topics rendered as a `**Topics:**` line.

-   **llmsTxtContactEmail**

    -   *Type:* string
    -   *Default:* empty

    Contact address rendered as a `**Contact:**` line.

-   **llmsTxtAdditionalInfo**

    -   *Type:* string (Markdown)
    -   *Default:* empty

    Free Markdown appended to the end of `llms.txt`, after a horizontal rule.
    Use it for sections such as licensing terms or "optional" link lists.
    Unlike all other values, it is written as-is: whoever can edit the site
    configuration controls this part of the file.

-   **llmsTxtMaxDepth**

    -   *Type:* integer
    -   *Default:* 2

    How many levels of the page tree below the site root are listed. Values are
    clamped to the range 1 to 10.

-   **llmsTxtExcludeDoktypes**

    -   *Type:* string (comma-separated page types)
    -   *Default:* empty

    Additional page types (`doktype` values) to leave out of `llms.txt`,
    for example `3` for external links or a custom page type.

    Folders (254), menu separators (199) and shortcuts (4) are always excluded.
    This setting can only add to that list, not remove from it.

    The *subpages* of an excluded page are not dropped: they move up and are
    listed in place of the excluded page.

-   **llmsTxtCacheLifetime**

    -   *Type:* integer (seconds)
    -   *Default:* 0

    How long `llms.txt` is cached, at most. `0` disables caching: the file
    is generated on every request and also kept out of TYPO3's page cache.

    With a lifetime set, `llms.txt` is stored in TYPO3's page cache, and the
    generated content additionally in the `hash` cache. Entries are kept
    separate per combination of frontend user groups, because
    access-restricted pages appear only for visitors who may see them.

    Cache entries are tagged `pages`, so saving any page record in the
    backend clears them. Changes that do not go through the backend, such as
    a page's start or stop time passing or a direct database import, are
    picked up once the entry expires or when the caches are flushed.

    This setting applies to `llms.txt` only. The Markdown version of a page
    is cached by TYPO3's page cache like the page itself.

## What is listed in llms.txt {#configuration-pages}

A page appears in `llms.txt` only if all of the following apply:

-   it is visible: not hidden, not deleted, within its start and stop time;
-   it is accessible to the visitor, if it has access restrictions;
-   **Page > Behaviour > Miscellaneous > Hide in Menus** (`nav_hide`)
    is not set;
-   **SEO > Robot Instructions > Index this page** is enabled
    (`no_index` is not set);
-   its page type is not excluded (see [llmsTxtExcludeDoktypes](https://docs.typo3.org/permalink/web-vision/ai-llms-txt:confval-site-llmstxtexcludedoktypes@0.3));
-   it is within [llmsTxtMaxDepth](https://docs.typo3.org/permalink/web-vision/ai-llms-txt:confval-site-llmstxtmaxdepth@0.3).

The Markdown version of a page (`.md`) follows the same visibility and access
rules. Pages with `no_index` set are answered with "page not found" there as
well, so that a page kept out of search engines is not offered to language
models instead.

## Route configuration {#configuration-routes}

Without route configuration the outputs are available through page type
parameters only: `/?type=1699` for `llms.txt` and `/any-page?type=1701`
for Markdown. Import the bundled route enhancer to get the usual URLs:

**config/sites/main/config.yaml**

```yaml
imports:
  -
    resource: 'EXT:ai_llms_txt/Configuration/Routes/RouterEnhancer.yaml'
```

It maps the following suffixes:

**EXT:ai_llms_txt/Configuration/Routes/RouterEnhancer.yaml**

```yaml
routeEnhancers:
  PageTypeSuffix:
    type: PageType
    map:
      llms.txt: 1699
      .well-known/llms.txt: 1699
      .md: 1701
```

> [!NOTE]
> If your site already defines a `PageType` enhancer, for example for an
> XML sitemap, add the three `map` entries above to that enhancer instead
> of importing the file, so that a single enhancer handles all suffixes.

## Page types {#configuration-typoscript}

The extension registers these page types through TypoScript that is loaded
automatically. They are listed here for reference: do not copy them into your
own TypoScript.

| Page object | typeNum | Output |
| --- | --- | --- |
| `llmstxt` | 1699 | `llms.txt` |
| `markdown_page` | 1701 | Markdown version of the current page |

Both are served as `Content-Type: text/plain; charset=utf-8` together with
`X-Content-Type-Options: nosniff`, so that browsers never interpret the
editor-controlled content as HTML.
