Learn how to help boost your SEO by creating sitemaps for AEM Sites.
This video demonstrates use of relative URls in the sitemap. Sitemaps should use absolute URLs. See Configurations for how to enable absolute URLs, as this is not covered in the video below.
AEM’s sitemap supports absolute URL’s by using Sling mapping. This is done by creating mapping nodes on the AEM services generating sitemaps (typically the AEM Publish service).
An example Sling mapping node definition for https://wknd.com
can be defined under /etc/map/https
as follows:
Path | Property name | Property type | Property value |
---|---|---|---|
/etc/map/https/wknd-site |
jcr:primaryType |
String | nt:unstructured |
/etc/map/https/wknd-site |
sling:internalRedirect |
String | /content/wknd/(.*) |
/etc/map/https/wknd-site |
sling:match |
String | wknd.com/$1 |
The screenshot below illustrates a similar configuration but for http://wknd.local
(a local hostname mapping running on http
).
Defines the OSGi factory configuration for the frequency (using cron expressions) sitemaps are re/generated and cached in AEM.
ui.config/src/main/jcr_content/apps/wknd/osgiconfig/config.publish
{
"scheduler.name": "WKND Sitemaps",
"scheduler.expression": "0 0 2 1/1 * ? *",
"searchPath": "/content/wknd"
}
Allow HTTP requests for the sitemap index and sitemap files.
dispatcher/src/conf.dispatcher.d/filters/filters.any
...
# Allow AEM sitemaps
/0200 { /type "allow" /path "/content/*" /selectors '(sitemap-index|sitemap)' /extension "xml" }
Ensure .xml
sitemap HTTP requests are routed to the correct underlying AEM page. If URL shortening is not used, or Sling Mappings are used to achieve URL shortening, then this configuration is not needed.
dispatcher/src/conf.d/rewrites/rewrite.rules
...
RewriteCond %{REQUEST_URI} (.html|.jpe?g|.png|.svg|.xml)$
RewriteRule ^/(.*)$ /content/${CONTENT_FOLDER_NAME}/$1 [PT,L]