BambooForge Labs

SEO All in One with XML and Image Sitemaps

Priority and change frequency per URL pattern, image and video sitemaps, noindex pages excluded, instant rebuild, and IndexNow submission.

Buy on the Odoo Apps StoreOpen the live demoWebsite€198Community & Enterprise

Available for Odoo 16.0, Odoo 17.0, Odoo 18.0, Odoo 19.0, Odoo 20.0. Technical name bambooforge_sitemap_pro.

Odoo 16.0Odoo 17.0Odoo 18.0Odoo 19.0Odoo 20.0
Screens and walkthrough for
Transcript of the walkthrough (Odoo 20)

SEO All in One with XML and Image Sitemaps. Priority and change frequency per URL pattern, image and video sitemaps, noindex pages excluded, instant rebuild, and IndexNow submission. Said before you buy, because it is the half that decides whether the app fits: In the next few minutes: seo all in one with xml and image sitemaps, then rules, then about priority, then pages you asked google not to index, then images and videos. Then what this app deliberately does not do, so you can tell before you buy whether it fits.

Everything lives under Sitemap Rules. 1. Install BambooForge Sitemap Pro (it needs SEO Pro). Three rules are created: / at priority 1.0, daily; /my excluded (the customer portal is private by definition); /website/search excluded (search results are a crawl-budget drain).

2. Change, archive or delete those rules as you like - they are ordinary records. SEO All in One with XML and Image Sitemaps. An add-on for BambooForge SEO Pro.

Odoo's sitemap lists every published page with no priority, no change frequency and no way to keep anything out. This gives you all three, adds image and video entries, and submits changed URLs to the engines that still accept a submission. Rules. SEO Pro → Configuration → Sitemap Rules.

A rule is a URL pattern plus what to do with it. URL starts with /shop matches /shop and everything under it. About priority. Priority is relative to your own URLs.

It tells a crawler which of your pages you would rather have crawled first. It says nothing to anybody about how you rank, and setting everything to 1.0 is the same as setting everything to 0.5. Pages you asked Google not to index. Nothing to do: SEO Pro already does this.

A page marked noindex there is dropped from the sitemap, and for a website page the flag is also mirrored onto Odoo's own website_indexed. This add-on does not repeat the check - it would only be a second place to look when the answer is wrong. Images and videos. SEO Pro → SEO Pages → (a page) → Sitemap media.

Image search and video search are separate result pages, and neither reads a plain sitemap. Anything listed here is published inside that page's sitemap entry, with the image and video namespaces declared on the root element - a child in an undeclared namespace invalidates the whole file, not just the entry. The twelve-hour cache. Odoo caches the generated sitemap for twelve hours.

Changing a rule and reloading /sitemap.xml therefore shows the old file, which is how an afternoon disappears into deciding the rules do not work. Website → Sitemap → Rebuild the sitemap file drops the cached copies; the next request rebuilds them. IndexNow, and the truth about pinging. Google retired its sitemap ping in 2023.

There is nothing to press for Google: it reads the file on its own schedule. Any module offering you a "ping Google" button today is calling a URL that answers 404. 1. Website → Sitemap → Generate a key.

The key is 32 hexadecimal characters; Odoo serves it at /<key>.txt, which is the proof of ownership IndexNow asks for. The route is pinned to exactly 32 characters so it cannot swallow /robots.txt or a page of your own whose URL ends in .txt. 2. The key file must be at the root of the site.

A key file in a subdirectory only authorises URLs under that subdirectory. 3. Submit now sends the current URL list. The daily cron sends it only when it has changed since the last submission - submitting the same list every night is how a site gets ignored.

Multi-website and multi-company. Rules, defaults, media and the IndexNow key all belong to a website. The rules list is filtered by the websites a user can see, and by company through the website's company. How we make sure it works.

Before every release, 33 automated checks run against this app on Odoo 16, 17, 18, 19 and 20. Among them: The same image is not listed twice. Every url is submitted not only the first thousand. Without a key nothing is sent.

A generated key is accepted and a short one is not. A query string is not part of the path. The complete list is in the source you receive. Questions people ask.

Which Odoo versions does it run on? Odoo 16.0, 17.0, 18.0, 19.0, 20.0, on the series you buy it for; each series is its own listing. Community or Enterprise? Both.

It needs no Enterprise app. The complete manual is at docs dot bambooforge dot dev, the demo database is linked from the store page, and support answers within twenty-four hours. Links are in the description.

Media - bambooforge_sitemap_pro
Media
Rules - bambooforge_sitemap_pro
Rules
Settings - bambooforge_sitemap_pro
Settings

Key facts

What it is
Priority and change frequency per URL pattern, image and video sitemaps, noindex pages excluded, instant rebuild, and IndexNow submission.
For
Website
Odoo versions
16.0, 17.0, 18.0, 19.0, 20.0 - Community and Enterprise
Runs on
Odoo.sh or Odoo you host yourself - not Odoo Online, which accepts no third-party apps
Price
198 EUR, one-time, on the Odoo Apps Store
Technical name
bambooforge_sitemap_pro
Not for
Said before you buy, because it is the half that decides whether the app fits:; Second-guess Odoo's own check of which pages are published - it does not repeat it.; Treat a trailing slash as another URL, or a query string as part of the path.
Manual
https://docs.bambooforge.dev/bambooforge_sitemap_pro/
Live demo
https://demo20.bambooforge.dev/odoo/action-bambooforge_sitemap_pro.action_bf_sitemap_rule
Store page
https://apps.odoo.com/apps/modules/20.0/bambooforge_sitemap_pro
Manual last updated
2026-10-15

SEO All in One with XML and Image Sitemaps

An add-on for BambooForge SEO Pro. Odoo's sitemap lists every published page with no priority, no change frequency and no way to keep anything out. This gives you all three, adds image and video entries, and submits changed URLs to the engines that still accept a submission.

Install

  1. Install BambooForge Sitemap Pro (it needs SEO Pro). Three rules are created: / at priority 1.0, daily; /my excluded (the customer portal is private by definition); /website/search excluded (search results are a crawl-budget drain).

  2. Change, archive or delete those rules as you like - they are ordinary records.

Rules

SEO Pro → Configuration → Sitemap Rules. A rule is a URL pattern plus what to do with it.

URL starts with

/shop matches /shop and everything under it.

URL is exactly

/ matches only the home page. A trailing slash is the same URL, and a query string is not part of the path.

URL matches a regular expression

^/blog/\d{4}/ for "any year folder in the blog".

The action is either Include with these settings - a priority from 0.0 to 1.0 and a change frequency - or Keep out of the sitemap.

First match wins, so the specific rule goes above the general one; drag the handle to reorder. A rule with no website applies to every site and always loses to a rule written for one, which is how an agency keeps one house default and overrides it per client.

About priority

Priority is relative to your own URLs. It tells a crawler which of your pages you would rather have crawled first. It says nothing to anybody about how you rank, and setting everything to 1.0 is the same as setting everything to 0.5.

Pages you asked Google not to index

Nothing to do: SEO Pro already does this. A page marked noindex there is dropped from the sitemap, and for a website page the flag is also mirrored onto Odoo's own website_indexed. This add-on does not repeat the check - it would only be a second place to look when the answer is wrong.

Images and videos

SEO Pro → SEO Pages → (a page) → Sitemap media.

Image search and video search are separate result pages, and neither reads a plain sitemap. Anything listed here is published inside that page's sitemap entry, with the image and video namespaces declared on the root element - a child in an undeclared namespace invalidates the whole file, not just the entry.

A video needs a title, a description, a thumbnail and either a content URL (the file) or a player URL (a page that plays it). Without one of those two the entry is dropped and the sitemap is reported as invalid, so the module refuses to save it. Duration, when given, must be between one second and eight hours.

Relative URLs are made absolute automatically - a relative URL in a sitemap is silently ignored by every validator.

The twelve-hour cache

Odoo caches the generated sitemap for twelve hours. Changing a rule and reloading /sitemap.xml therefore shows the old file, which is how an afternoon disappears into deciding the rules do not work. Website → Sitemap → Rebuild the sitemap file drops the cached copies; the next request rebuilds them.

IndexNow, and the truth about pinging

Google retired its sitemap ping in 2023. There is nothing to press for Google: it reads the file on its own schedule. Any module offering you a "ping Google" button today is calling a URL that answers 404.

Bing, Yandex and Seznam read IndexNow:

  1. Website → Sitemap → Generate a key. The key is 32 hexadecimal characters; Odoo serves it at /<key>.txt, which is the proof of ownership IndexNow asks for. The route is pinned to exactly 32 characters so it cannot swallow /robots.txt or a page of your own whose URL ends in .txt.

  2. The key file must be at the root of the site. A key file in a subdirectory only authorises URLs under that subdirectory.

  3. Submit now sends the current URL list. The daily cron sends it only when it has changed since the last submission - submitting the same list every night is how a site gets ignored.

The result of the last submission, with the HTTP status the endpoint returned, is on the same page.

Multi-website and multi-company

Rules, defaults, media and the IndexNow key all belong to a website. The rules list is filtered by the websites a user can see, and by company through the website's company.

How we make sure it works

Before every release, 33 automated checks run against this app on Odoo 16, 17, 18, 19 and 20. Among them:

  • The same image is not listed twice.

  • Every url is submitted not only the first thousand.

  • Without a key nothing is sent.

  • A generated key is accepted and a short one is not.

  • A query string is not part of the path.

The complete list is in the source you receive.

What it does not do

Said before you buy, because it is the half that decides whether the app fits:

  • Second-guess Odoo's own check of which pages are published - it does not repeat it.

  • Treat a trailing slash as another URL, or a query string as part of the path.

Questions people ask

Which Odoo versions does it run on?

Odoo 16.0, 17.0, 18.0, 19.0, 20.0, on the series you buy it for; each series is its own listing.

Community or Enterprise?

Both. It needs no Enterprise app.

What does it need?

The standard Web; seo pro (BambooForge) must be installed first app. No extra Python package.

Where does it show up?

Under the Sitemap Rules menu.

Does anything leave my server?

It makes calls outside your server only where its manual says so - read the section on that service before you connect it.

What happens if I uninstall it?

Odoo drops the app's own tables and fields; the standard records it worked on (contacts, orders, products) stay as they are.

Support

support@bambooforge.dev - the people who wrote it.