Generating file ...

The Sitemap profile

Hydration alone makes individual URLs indexable; crawlers still need to discover those URLs and to treat variants with different query parameters as one page. Enable the Sitemap feature profile when generating the application. It contributes three artefacts:

sitemap.xml

A standards-compliant sitemap listing every public document URL and, for paginated views, every page or division (preferring stable ?id=… when an xml:id is available). Custom entry points such as the landing page can be added via configuration.

Canonical links

The template block templates/seo-blocks.html injects a link with rel="canonical" into every HTML page, so search engines can reliably identify unique content.

robots.txt

Generated at app build time from robots.tpl.txt. It disallows internal collections (raw data, modules, transform output, print views, the ODD editor, document API paths) and, when a public base URI is configured, advertises the sitemap location.

The profile also registers a Jinks action: after content changes, open the application in Jinks and click Sitemap in the Actions toolbar (or POST /api/actions/sitemap) to regenerate sitemap.xml.

Configuration

The sitemap is configured via config.json:

"features": { "sitemap": { "base-uri": "https://edition.example.org", "custom": [ "index.html", "browse.html" ] } }

base-uri should specify the base URI by which pages will be accessed by users. If base-uri is omitted, the origin is derived from each incoming request. That is sufficient for local development but usually wrong behind a reverse proxy or when the public domain differs from the eXist servlet path. The custom array lists additional relative paths (static pages, browse views, and other non-document entry points) that the crawl would not discover on its own.