- ホーム
- Apps
- Multichannel & PIM Tools
- 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.
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.
主な機能
受注生産、すべておまかせ
自分での設定は不要 — ECOSIRE が構築・インストール・サポートする実働アプリです。
- 1
ご注文
一回限りの構築料金から始めます。キックオフで一緒に範囲を決めます。
- 2
構築とインストール
ECOSIRE がお客様の Odoo 上で構築・設定・インストールします。
- 3
本番稼働 + サポート
約1週間(営業日ベース)で稼働し、本番稼働後2週間のサポートが付きます。納品したコードの不具合は無償で修正します。
技術仕様
- Odoo互換性
- Odoo 17, Odoo 18, Odoo 19
- エディション
- Enterprise&Community
- ライセンス
- ライセンスの確認が必要です
- Python要件
- Python 3.10+
- データベース
- PostgreSQL 12+
この製品について
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.
得られるもの
- 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
これは誰のためのものですか
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.
SEO Control – Exclude Pages from Sitemap の比較方法
| 基準 | エコシエール | カスタムビルド | 競合他社 | Odoo 標準機能 |
|---|---|---|---|---|
| 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 |
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.
関連モジュール

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.
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


