The page ranked 4.9-7.7 for 6 queries (~400 impressions) and earned zero clicks.
The snippet said 'the history of Odoo'; the searcher is asking whether they can
use this Belgian thing where they live.
- Head: 'Es belga, y asi se usa en LATAM'. Description leads with the answer
(Belgium, 2005, Fabien Pinckaers) and the LATAM payoff (Community ships
accounting localisation).
- 'Odoo en 30 segundos' fact block above the fold: Belgium/2005, founder,
282 M EUR revenue 2023 (+33%), 2,200+ staff, 5.26 B USD valuation (Nov 2024),
50 official apps + 50,000 community.
- LATAM section: Community ships l10n for MX/CL/AR/PE/CO/BR (verified in the
Odoo 19.0 addons tree). Electronic invoicing explicitly NOT claimed as
included - it varies by country, Enterprise or OCA.
- CTA to Odoo4projects Sao Paulo with utm_campaign=empresa-odoo-historia and a
disclosure line.
Every number is sourced: Wikipedia (2005, 282 M EUR, 2,200 staff, 5.26 B USD
valuation) and odoo.com (50 apps, 50,000 community apps).
Broken internal links: 1,370 -> 0 occurrences.
- 1,068 resolved context-aware: the same dead path needs a different destination on
each locale, so resolution is per (page, target), not per string. Old-site routes
(/contacto/, /servicios*, /consultoria*, /implementacion*, /recursos*) go to the
page's own locale home or /odoo/ hub; legacy /odoo-ai/ paths are rewritten to
/odoo-ia/; locale pages linking a root slug get their own locale's version.
- 301 remaining point at inline body links to pages that were planned but never
written (35 locale hosting articles, 5 old /odoo-ai/ slugs, dead sections). Those
fall back to the same-language section hub rather than 404.
Empty PT page: pt/odoo-ia/odoo-sistema-reservas-booking-ia-2025/ was 0 bytes and
returned an empty 200 from the PT sitemap. Removed it, its <url> block and every
hreflang alternate pointing at it; the 5 PT pages that linked to it now point at
/pt/odoo-ia/.
Canonicals: 23 relative -> absolute (a relative canonical carries no host, and apex
and www both answer 200). 62 pages had a second canonical added in the previous pass
because theirs was written href-first; duplicates removed, every page now has
exactly one. 404.html deliberately has none.
English homepage: title, description and H1 aligned to the 'odoo experts' query.
Three pages carry six of the 17 queries that rank on page 1 with zero clicks
(1,090 impressions, 23% of the site's total). The snippets were machine
slug-dumps ('Empresa Odoo Historia Fundacion 2025 | Odoo Expertos') followed by
a ' - <slug> | ES' artifact that wasted half the description.
- /odoo/empresa-odoo-historia-fundacion-2025/ -> '¿De dónde es Odoo? Origen y
quién lo creó' (targets: odoo de donde es 154@5.3, de donde es odoo 115@4.9,
odoo origen 60@7.7, odoo de que pais es 32@6.8, odoo de donde es originario
25@4.5, quien creo odoo 21@6.4)
- /odoo/odoo-honduras-implementacion-local-2025/ -> 'Odoo en Honduras:
facturación DEI y localización' (odoo honduras 81@9.4)
- /odoo-ia/ -> 'Odoo IA: qué automatiza y cómo empezar' (odo ia 279@6.8 plus
the .odo ia / ,odo ia variants)
Title, description, og:title and og:description updated together. Every claim in
the new copy is supported by the page body.
No visible change — links, canonicals and dead tags only.
- 155 path rewrites (case drift from the provider move): /Odoo-Hosting/ ->
/odoo-hosting/, /odoo-ai/ -> /odoo-ia/, /Odoo/... -> /odoo/...; applied in
href/src, og:url and JSON-LD alike. The origin is case-sensitive, so these
were live 404s.
- canonicals: 93 pointed at a case variant that 404s, 43 pointed at a path that
no longer exists; the first now point at the real URL, the second are
self-canonical. Cross-locale canonicals were left alone (strategy, not a bug).
- removed 1,197 dead <link rel=alternate icon href=/favicon.ico> (file never
existed), 96 dead /styles/*.css links (Next.js leftovers) and 3
/_vercel/insights scripts (previous host's analytics).
- deleted unused duplicates: index-optimized.html, index-performance.html,
add-performance.html, a 2.1 MB duplicate portrait, and the old build scripts
(server-upstash*.js, server-optimized.js, minify-assets.js, optimize-all.js,
fix-canonicals.ps1).
broken internal links: 4,029 -> 1,370 occurrences.
js/plausible-events.js classifies every outbound click:
Affiliate Click — host in AFFILIATES map, or rel=sponsored
Outbound Click — any other external link
props: network, destination, destination_path, placement (utm_medium),
link_text, lang. Internal links, in-page anchors, mailto: and tel: are ignored;
data-plausible-skip opts an element out. Adding a new partner is one line in
AFFILIATES. Loaded on 1206 pages before </body>.
Create the two goals in Plausible (Settings -> Goals -> Custom event) named
exactly 'Affiliate Click' and 'Outbound Click' for them to show as conversions.
plausible.office.odoo4projects.com is a self-hosted CE instance: it serves
/js/script.js and /js/plausible.js, but /js/pa-VLJpcZHbeLiw9Ub8C_MgG.js returns
404, so the snippet you supplied loaded no tracker and would have recorded
nothing. Site id now travels in data-domain (apex + www report as one site).