OdooWiki OCA HUB

Website Exclude Sitemap

website_exclude_sitemap folder_open OCA/website open_in_new
Website License: AGPL-3

This module lets website administrators exclude public website URLs from /sitemap.xml.

The module only affects sitemap generation. It does not unpublish pages, change access rights, or block direct access to the excluded URLs.

It also clears the cached sitemap when website pages are created, deleted, or their URL changes, so sitemap URLs are refreshed in the next sitemap generation.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Lets website administrators exclude specific URLs or wildcard patterns from the public sitemap.xml, and automatically refreshes the cached sitemap when pages change.

This module adds a Sitemap Exclusions setting to the Website configuration screen, right after the robots.txt setting. There you can list paths or patterns, one per line, separated by commas or semicolons, to keep them out of the public sitemap.xml.

Patterns support wildcards: * matches inside one path segment, ** crosses segments, and a trailing / excludes a path and everything below it. Lines starting with # are ignored. A default list is pre-filled (for example /customers/, /livechat, /blog/*/feed, /jobs/apply/, /profile/).

  • Excluded URLs are removed only from the sitemap listing; pages are not unpublished and direct access is not blocked.
  • The editor's link autocomplete is left untouched, so excluded pages can still be linked.
  • A Reload Sitemap button clears the cached sitemap for the current website and shows a confirmation notification.
  • The cached sitemap is also cleared automatically when website pages are created, deleted, or when their URL, publication, indexing, publication date or website changes.

The module extends the website, website.page and res.config.settings models. It affects sitemap generation and the Website settings screen only.

Depends on

website
Models and fields (3)
  • website · extends an existing modelsitemap_excluded_paths (Sitemap Exclusions)
  • website.page · extends an existing model
  • res.config.settings · extends an existing modelsitemap_excluded_paths

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

terminal Installation and usage

OCA documentation · Odoo 18.0

Configure sitemap exclusions:

  • Go to Website > Configuration > Settings.
  • Locate the Sitemap Exclusions setting.
  • Enter one or more paths or glob patterns.
  • Save the settings.

Values can be separated by:

  • line breaks;
  • commas;
  • semicolons.

For example, these values are equivalent:

/customers/
/livechat
/blog/*/feed
/jobs/apply/
/profile/
/customers/, /livechat, /blog/*/feed, /jobs/apply/, /profile/
/customers/; /livechat; /blog/*/feed
/jobs/apply/, /profile/

Lines starting with # are comments.

See the usage section for the full pattern syntax: * matches inside one path segment, ** crosses /, and a pattern ending in / or in /** excludes that path and everything below it.

The default value only covers paths that any Odoo website has. Add the paths that are specific to your own deployment, for example:

/website/info
/create-container-error
/machine-creation

/website/info is already left out of the sitemap by the core when its view is inactive; add it here when that view stays active.

Use the Reload Sitemap button in the same settings block to clear the cached sitemap manually.

Sitemap exclusions:

  • Create or publish website pages as usual.
  • Configure the paths or patterns to exclude in Website > Configuration > Settings > Sitemap Exclusions.
  • Open /sitemap.xml.
  • Confirm that excluded URLs are absent and non-excluded public pages are still present.

Pattern syntax:

| Pattern | Matches | Does not match | | -------------- | ------------------------------------------------------- | ---------------------------------- | | /livechat | /livechat | /livechat/room | | /customers/ | /customers, /customers/acme, /customers/acme/2024 | /customers-list | | /blog/*/feed | /blog/news/feed | /blog/a/b/feed, /blog/news | | /solutions* | /solutions, /solutions-cloud | /solutions/cloud | | /jobs/** | /jobs, /jobs/apply/1, /jobs/a/b/c | /jobs-list |

In short:

  • * matches inside a single path segment; it never crosses a /.
  • ** crosses /, so it matches any number of segments.
  • A pattern ending in / or in /** is a prefix: it excludes that path and everything below it.
  • Any other pattern matches that exact path. The trailing slash of the URL is ignored, so /livechat and /livechat/ are the same path.

Example:

  • configure /customers/;
  • publish a page at /customers;
  • publish another page at /customers/other;
  • open /sitemap.xml.

Both URLs are excluded, because /customers/ is a prefix. Use /customers without the trailing slash to exclude only the first one.

Ways to update the sitemap.xml:

  • The sitemap cache is automatically cleared when website pages are created or deleted, and when their URL, publication state, indexation, publication date or website changes.
  • The manual Reload Sitemap button can be used when a forced sitemap cache clear is needed.

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.