- Home
- Apps
- Multichannel & PIM Tools
- SEO Control – Exclude Pages from Sitemap
Illustrative previewA build-to-order Odoo module that gives you precise control over which website pages,
products, and blog posts enter your XML sitemap — with per-record exclusion, robots directives, and canonical hints.
ECOSIRE scopes, builds, installs, and supports it for your instance.
What is SEO Control – Exclude Pages from Sitemap?
A build-to-order Odoo module that gives you precise control over which website pages, products, and blog posts enter your XML sitemap — with per-record exclusion, robots directives, and canonical hints. ECOSIRE scopes, builds, installs, and supports it for your instance. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Odoo's website builder auto-publishes almost everything into the /sitemap.xml feed the moment a record goes live — thank-you pages, filtered eCommerce variants, staging drafts, tag archives, internal knowledge pages, duplicate parameterized URLs. For a growing catalog this quietly floods search engines with low-value and near-duplicate URLs, dilutes crawl budget, and buries the pages you actually want ranking. Odoo core only exposes a coarse website_indexed boolean on a page and offers no per-record UI to keep a URL live for humans while excluding it from the sitemap and search index. Teams end up hand-editing ir.ui.view records or bolting on external robots rules that drift out of sync with the catalog — brittle work that breaks on the next upgrade.
ECOSIRE builds a purpose-made module that adds a first-class "SEO visibility" control across every indexable model — website.page, product.template, blog.post, slide.channel, and any custom published model you nominate. We extend the relevant models with computed and stored fields (x_exclude_from_sitemap, x_robots_directive, x_canonical_override) via a clean inheriting mixin, so the flag travels with the record and survives duplication. The controller layer overrides Odoo's sitemap generation (Website._enumerate_pages / the /sitemap.xml route) so excluded records are filtered out of the emitted XML, while the page still renders normally for direct visitors. A companion QWeb hook injects the correct <meta name="robots"> (noindex,follow by default, configurable per record) and an optional rel="canonical" into the page <head>, keeping the sitemap signal and the on-page signal consistent — the single most common cause of "excluded page still indexed" support tickets.
Control is exposed where your team already works: a checkbox and directive selector on the form view of each model, a batch "Exclude from sitemap" server action for list selections, and an optional rule-based ir.actions.server automated action so URLs matching a pattern (draft stages, specific website_ids, product variants, archived tags) are excluded automatically as records are created. Everything is permissioned through ir.model.access.csv plus record rules so only your SEO or marketing role can change visibility, and a lightweight audit log records who changed what and when. Multi-website instances are respected — exclusion is evaluated per website_id, so a page can be indexed on one storefront and hidden on another. The module ships with a technical settings panel for global defaults and a "regenerate sitemap" action, and is delivered against Odoo 17.0, 18.0, or 19.0 on Community or Enterprise (Enterprise's website features are additive — nothing here depends on them).
Because this is built to order, nothing is downloaded from an app marketplace: after a short scoping call we confirm exactly which models, websites, and exclusion rules you need, then build, test on a staging copy of your database, and deliver the installable source with documentation and a training session. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); additional websites in a multi-company/multi-website setup, custom published models beyond the standard four, deeper localization, or migration of existing hand-maintained exclusion rules increases the quoted scope.
What you get
- Installable module source code (your build) with a clean `__manifest__.py`, models, views, security, and controllers
- Installation and configuration on your target instance (or staging), including security-group assignment
- Technical documentation: model/field reference, controller override notes, and upgrade guidance
- End-user guide plus a live training session for your SEO/marketing and admin team
- UAT on a staging copy of your database with a documented rollback plan before production go-live
- Post-go-live support window for defect fixes and configuration questions
- Git repository handover with full commit history and tagged release
- Seed configuration of your initial exclusion rules and per-model defaults
Who this is for
In-house SEO Manager
Owns organic performance for an Odoo storefront and needs to stop thin, duplicate, and utility URLs from entering the sitemap and search index — without filing a developer ticket for every page.
eCommerce Operations Lead
Runs a large `product.template` catalog with many variants and filtered category URLs; wants rule-based auto-exclusion so crawl budget stays focused on canonical product pages as new SKUs are added.
Multi-Website Marketing Director
Manages several storefronts on one Odoo instance and needs per-`website_id` control so the same page can be indexed on one brand and hidden on another, all governed by role-based permissions.
Odoo Administrator / Partner
Maintains the instance across 17/18/19 upgrades and wants a supported, documented module with a git handover instead of ad-hoc `ir.ui.view` edits that break on migration.
How SEO Control – Exclude Pages from Sitemap Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Per-record sitemap exclusion | Checkbox and directive selector on every published model | Possible but built from scratch each time | Usually a single global toggle or page-only flag | Only a coarse `website_indexed` boolean on pages |
| Robots + sitemap consistency | QWeb `<head>` hook keeps `noindex` and sitemap in sync | Depends on developer discipline | Often excludes from sitemap but leaves page indexable | No per-record robots control |
| Rule-based auto-exclusion | Automated actions for variants, drafts, archived tags | Requires bespoke `base.automation` work | Rarely offered | Not available |
| Multi-website scope | Evaluated per `website_id` | Must be designed in deliberately | Frequently single-website only | Sitemap generated per site but no exclusion control |
| Permissions and audit | Security group, record rules, and change audit log | Only if specified upfront | Typically none | Any website editor can change indexing |
| Upgrade path | Built for 17/18/19 with documented compatibility support | You own all future maintenance | Depends on the vendor's release cadence | Behavior changes between versions |
| Fit to your models | Extends the exact models you nominate, including custom ones | Fully bespoke but slow and costly | Fixed to the models the vendor chose | Website pages and standard models only |
| Support and handover | Docs, training, git repo, and a support window | Varies by contractor | Ticket-based, no source customization | Community forums only |
Frequently Asked Questions about SEO Control
Is this an existing app I can download and install today?
No. This is a build-to-order module. ECOSIRE builds it to your exact requirements — the specific models, websites, and exclusion rules you need — then installs and supports it. There is no instant download.
How long does delivery take?
Typical delivery is one working week from confirmed scope. After a short scoping call we agree the models and rules, build against your Odoo version, test on a staging copy of your database, and hand over installable source plus documentation and training.
How does pricing and scoping work?
Pricing starts from $999 as an indicative single-company base-scope figure. It is not a fixed price — after the scoping call we send a firm fixed quote. Additional websites, custom published models, deeper localization, or migrating existing exclusion rules increase the quoted scope.
What about support and future Odoo updates?
Every build includes a post-go-live support window for defect fixes and configuration help. We deliver against Odoo 17.0, 18.0, or 19.0; when you plan a major version upgrade we can quote a compatibility pass so the module carries forward cleanly.
Will an excluded page still be reachable by visitors?
Yes. Exclusion only removes the URL from `/sitemap.xml` and, by default, adds a `noindex,follow` robots directive. The page continues to render normally for direct visitors and internal links — it simply stops being advertised to search engines.
Does it work with multiple websites and eCommerce variants?
Yes. Exclusion is evaluated per `website_id`, so a URL can be indexed on one storefront and hidden on another. Rule-based automated actions can auto-exclude product variants, draft stages, or archived tags as records are created.
Community or Enterprise — which do I need?
Either. The module targets Odoo's website/eCommerce stack that exists in both editions; nothing here depends on Enterprise-only features. We confirm your edition during scoping and pin `__manifest__.py` dependencies accordingly.
Related Modules

S3 Attachment Storage for Odoo
A build-to-order Odoo module that offloads document, image, and report attachments from your database and filesystem into Amazon S3 or any S3-compatible bucket. ECOSIRE scopes, builds, installs, and supports it for Odoo 17.0, 18.0, or 19.0.

Shipping & Freight Prices - All Carriers
A build-to-order Odoo connector that pulls live shipping and freight rates from 1500+ parcel and LTL/FTL carriers via API or EDI, so your team quotes accurate landed costs and books the cheapest compliant service directly from the sale order and delivery. ECOSIRE builds, installs, and supports it for your Odoo 17/18/19.

Shipping Label & Manifest Designer for Odoo
Build-to-order Odoo module for custom shipping labels, AWBs and end-of-day manifests across any carrier and printer.
SEO Control
A build-to-order Odoo module that gives you precise control over which website pages, products, and blog posts enter your XML sitemap — with per-record exclusion, robots directives, and canonical hints. ECOSIRE scopes, builds, installs, and supports it for your instance.
- Inheriting SEO-visibility mixin adds `x_exclude_from_sitemap`, `x_robots_directive`, and `x_canonical_override` fields to any published model without duplicating logic
- Override of `Website._enumerate_pages` and the `/sitemap.xml` controller so excluded records are filtered from the emitted XML while the page still renders for direct visitors
- Per-record `<meta name="robots">` injection via QWeb `<head>` hook (default `noindex,follow`, selectable per record) to keep sitemap and on-page signals consistent
- Optional `rel="canonical"` override field to consolidate duplicate or parameterized URLs onto a preferred canonical
