20fdb7bdff04423e133ffd926deefd84a3272c67
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Documentation / Changelog / master / Feature-84525-XMLSitemap.rst
1 .. include:: ../../Includes.txt
2
3 =============================
4 Feature: #84525 - XML Sitemap
5 =============================
6
7 See :issue:`84525`
8
9 Description
10 ===========
11
12 It is now possible to generate XML sitemaps for SEO purposes without using 3rd-party plugins.
13 When enabled, this new feature will create a sitemapindex with one or more sitemaps in it.
14 Out-of-the-box it will have one sitemap containing all the pages of the current site and
15 language. Per site and per language you have the possibility to render a different sitemap.
16
17 Installation
18 ------------
19 The XML sitemap is disabled by default. You can easily enable it by installing the system
20 extension "seo" and including the static TypoScript template XML Sitemap (seo). It is also
21 mandatory to have a site configuration for your rootpage(s).
22
23 How to access your XML sitemap
24 ------------------------------
25 Until it is possible to have a default route with the new URL handling mechanism, you can access
26 the sitemaps by going to https://yourdomain.com/?type=1533906435. You will first see the sitemap
27 index. By default you will see one sitemap in the index. This is the sitemap for pages.
28
29 If you have multiple siteroots or multiple languages with different domains or language prefixes,
30 you can just go to the domain that handles the siteroot / language. The sitemap will be based on
31 the settings for that domain.
32
33 XmlSitemapDataProviders
34 -----------------------
35 The rendering of sitemaps is based on XmlSitemapDataProviders. The EXT:seo extension ships with two
36 XmlSitemapDataProviders. The first one is the PagesXmlSitemapDataProvider. This will generate a sitemap
37 of pages based on the siteroot that is detected. You can configure if you have additional conditions
38 for the selection of pages. You also have the possibility to exclude certain doktypes.
39
40 .. code-block:: typoscript
41
42    plugin.tx_seo {
43      config {
44        xmlSitemap {
45          sitemaps {
46            pages {
47              config {
48                excludedDoktypes = 137, 138
49                additionalWhere = AND (no_index = 0 OR no_follow = 0)
50              }
51            }
52          }
53        }
54      }
55    }
56
57 If you also have an extension installed and want a sitemap of those records, you can use the
58 RecordsXmlSitemapDataProvider. You can add for example a sitemap for news records:
59
60 .. code-block:: typoscript
61
62    plugin.tx_seo {
63      config {
64        xmlSitemap {
65          sitemaps {
66             <unique key> {
67                provider = TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider
68                config {
69                   table = news_table
70                   sortField = sorting
71                   lastModifiedField = tstamp
72                   additionalWhere = AND (no_index = 0 OR no_follow = 0)
73                   pid = <page id('s) containing news records>
74                   url {
75                      pageId = <your detail page id>
76                      fieldToParameterMap {
77                         uid = tx_extension_pi1[news]
78                      }
79                      additionalGetParameters {
80                         tx_extension_pi1.controller = News
81                         tx_extension_pi1.action = detail
82                      }
83                      useCacheHash = 1
84                   }
85                }
86             }
87          }
88        }
89      }
90    }
91
92 You can add several sitemaps and those will be added to the sitemap index automatically.
93
94 .. index:: Frontend, ext:seo