---
title: "XML sitemap"
manual: "TYPO3 EXT:thuecat"
version: "main"
permalink: "https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-xml-sitemap@main"
source: "Integration/FrontendOutput/XmlSitemap.rst"
rendered: "2026-10-15T09:07:32+00:00"
---

# XML sitemap {#frontend-output-xml-sitemap}

EXT:thuecat provides one XML sitemap per detail record kind for the sitemap of
[XML sitemap](https://docs.typo3.org/c/typo3/cms-seo/14.3/en-us/Features/XmlSitemap.html#xmlsitemap): one for tourist attractions, one for trails.

**On this page**

-   [Configuration](https://docs.typo3.org/permalink/werkraummedia/thuecat:configuration@main)
-   [What a sitemap lists](https://docs.typo3.org/permalink/werkraummedia/thuecat:what-a-sitemap-lists@main)
-   [Updates](https://docs.typo3.org/permalink/werkraummedia/thuecat:updates@main)

## Configuration {#frontend-output-xml-sitemap-configuration}

Depend on the `typo3/seo-sitemap` site set in your site set. It provides the sitemap page type and
serves the sitemap index at `/sitemap.xml` under each site's base; no static route is needed:

**EXT:myextension/Configuration/Sets/MySet/config.yaml**

```yaml
name: myvendor/my-set
label: 'My set'
dependencies:
  - 'typo3/seo-sitemap'
```

Add one sitemap per kind. The provider takes the kind alone:

**EXT:myextension/Configuration/Sets/MySet/setup.typoscript**

```typoscript
plugin.tx_seo.config.xmlSitemap.sitemaps {
    attraction {
        provider = WerkraumMedia\ThueCat\Frontend\Sitemap\DetailRecordSitemapDataProvider
        config.kind = attraction
    }
    trail {
        provider = WerkraumMedia\ThueCat\Frontend\Sitemap\DetailRecordSitemapDataProvider
        config.kind = trail
    }
}
```

## What a sitemap lists {#frontend-output-xml-sitemap-what-a-sitemap-lists}

The provider takes the table, the detail page and the plugin argument from the kind and the current
site:

-   the records stored in the site's page tree, and no others;
-   in a translated language, the translations, with URLs under that language's base, and no
    untranslated record;
-   no hidden or deleted record;
-   each record on the kind's detail page, the site setting `thuecat.pois.pid_show` or
    `thuecat.trails.pid_show`.

A kind whose detail page setting is 0 or unset gets an empty sitemap, and the sitemap index leaves
it out.

With the route enhancers imported and the page role set on the detail pages, the URLs are the
readable detail URLs, see [Routing](https://docs.typo3.org/permalink/werkraummedia/thuecat:frontend-output-routing@main).

## Updates {#frontend-output-xml-sitemap-updates}

A record created, changed or deleted in the backend or by an import shows up on the next sitemap
request; the sitemap does not wait for its cache period.
