call Contact
map TYPO3 Know-How for TYPO3 14

Automatically Generating a Sitemap

TYPO3 automatically generates its XML sitemap by default – for a normal page structure, the built-in function is entirely sufficient. However, if content such as news articles is generated via an extension, it doesn't initially show up in this sitemap. Using TYPO3 version 14 as an example, we show how to include news detail pages and give them a readable URL at the same time.

history Letzte Änderung: 22.08.2026

TYPO3's Built-In XML Sitemap

As soon as the core extension seo is active, every TYPO3 website automatically serves an XML sitemap at /sitemap.xml – with no additional configuration required. This sitemap is structured as an index: it points to a sub-sitemap containing all regular pages in the page tree, plus – if configured – further sub-sitemaps for additional content.

link_off

Content that doesn't exist as its own page in the page tree – for example individual news articles output via a plugin on a shared detail page – isn't included in the automatic sitemap by default. That requires a dedicated sitemap provider.

Adding News Records to the Sitemap

TYPO3 ships with the RecordsXmlSitemapDataProvider for exactly this case: it reads records from any table – such as tx_news_domain_model_news – and generates sitemap entries from them. Configuration happens via TypoScript, for example in your sitepackage's setup.typoscript:

plugin.tx_seo {
  config {
    xmlSitemap {
      sitemaps {
        news {
          provider = TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider
          config {
            table = tx_news_domain_model_news
            sortField = datetime
            lastModifiedField = tstamp
            url {
              pageId = <PAGE ID OF THE NEWS DETAIL PAGE>
              fieldToParameterMap {
                uid = tx_news_pi1[news]
              }
              useCacheHash = 1
            }
          }
        }
      }
    }
  }
}

fact_check

pageId is the ID of the page where your news detail plugin sits. lastModifiedField ensures search engines see a correct modification date when the article is updated. After saving, the new sitemap section automatically appears in the index at /sitemap.xml.

Readable URLs for News Articles

Without further configuration, TYPO3 calls up a news article via a technical parameter, e.g. /news?tx_news_pi1[news]=42. For a readable URL like /news/my-article-title, you can add a route enhancer for the news extension in the site configuration (config/sites/<YOUR-SITE>/config.yaml):

routeEnhancers:
  NewsDetail:
    type: Extbase
    limitToPages: [<PAGE ID OF THE NEWS DETAIL PAGE>]
    extension: News
    plugin: Pi1
    routes:
      - routePath: '/{news-title}'
        _controller: 'News::detail'
        _arguments:
          news-title: news
    defaultController: 'News::list'
    aspects:
      news-title:
        type: PersistedAliasMapper
        tableName: tx_news_domain_model_news
        routeFieldName: path_segment

edit_note

The PersistedAliasMapper uses the path_segment field that the news extension provides for every article. If left empty when creating an article, it's automatically derived from the title – but editors can override it at any time in the backend, for example for a shorter or custom URL.

Want your TYPO3 website fully and readably indexed?

We set up the sitemap integration for your news or other extension content and ensure clean, readable URLs.

chat Free Consultation