Commit Graph
11 Commits
Author SHA1 Message Date
Hermes Agent abe6d5e1db Add /de/odoo-beratung/ — the German consulting page the site never had
227 impressions of consulting intent were all landing on /de/, a homepage
sitting at positions 45-88: 'odoo beratung' 163 impr @ 51.4, 'odoo berater'
28 @ 47.0, 'odoo erp beratung' 13 @ 45.8, 'odoo expert' 18 @ 68.3, 'odoo
experte' 5 @ 63.2. German pages overall: 439 impressions, 0 clicks.

Written in German as German, not translated from the Spanish pages:
- 'Wann Sie keine Beratung brauchen' comes first, because that is the honest
  answer for most readers and nobody writes it.
- 'Was den Preis wirklich bestimmt' — number of person-days, not day rate, and
  an explicit warning that a fixed price without looking at the data is a bet.
  The only figure quoted is the verifiable one: hosting from 14/year.
- Localisation restricted to what the addons tree supports: l10n_de is in the
  community branch; SKR03/SKR04 and DATEV are not separate packages there, so
  the page says check your version rather than asserting either way. No EDI in
  community, same as everywhere.
- Five vetting questions plus links to the official partner directory for
  Germany, Austria and Switzerland (all verified 200). No firms named.

Linked from /de/ and /de/odoo/, added to sitemap-de.xml. Article + FAQPage +
Breadcrumb schema, lang=de.
2026-10-25 11:58:48 +00:00
Hermes Agent dd4ead288b Optimise /odoo-ia/ and fix the site-wide 'null' header bug
/odoo-ia/ (279 impressions at position 6.8 for 'odo ia', zero clicks):
- H1 answers the query instead of describing the page: 'Odoo IA: que hace la
  inteligencia artificial en Odoo (y que no)'.
- Hero stats '60+ Recursos / 85% Automatizacion / 24/7 Operacion' replaced with
  the three honest routes: nativo / integracion / fuera. '85%' had no source.
- 'Empieza por aqui': five curated entry points, so the hub is a guide and not
  only a list of 55 links.
- Hosting CTA with utm_medium=hub-cta and a disclosure.
- FAQ (5 questions) + matching FAQPage schema. Answers are conditional on
  version and edition; no feature list is asserted, because odoo.com has no AI
  page to verify one against.

Separately, a real defect found while checking the render: 1,714 script blocks
across 840 pages called document.write(null) or set innerHTML = null, so the
header and footer rendered the literal text 'null'. Replaced with
createHeader()/createFooter(), which restores the real navigation on every
affected page.
2026-10-24 21:18:09 +00:00
Hermes Agent 582a93e8a6 Fix the last 1,370 broken internal links, empty PT page and canonicals
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.
2026-10-24 21:02:54 +00:00
Hermes Agent 689bcaff51 Remove fabricated proof from the homepage and the six language homes
- Deleted the three invented testimonials (María González / 'EMPERATRIZ DIGITAL',
  Alejandro Ruiz / 'COMANDANTE DE OPERACIONES', Carlos Salinas / 'GENERAL DE
  TECNOLOGÍA'). The companies do not exist and the quotes are not attributable.
- Removed the ISO 27001 and SOC 2 trust badges: they claimed *we* hold those
  certifications. Third-party statements about Hetzner/Azure/Odoo SH being
  certified are factual and stay.
- Removed the placeholder phone number (tel:+) used as a 'Call now' button on
  all six homepages.

E-E-A-T and legal exposure, not a ranking play.
2026-10-24 20:56:29 +00:00
Hermes Agent a6cff06a8f Cleanup: fix 2,659 dead internal URLs, repair canonicals, drop dead host leftovers
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.
2026-10-24 19:25:07 +00:00
Hermes Agent 21b274f91f Track outbound clicks as Plausible custom events
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.
2026-10-24 18:42:02 +00:00
Hermes Agent 3bd7001795 Point Plausible at /js/script.js — the pa-<hash> path 404s on this instance
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).
2026-10-24 18:28:41 +00:00
Hermes Agent 1c50992521 Add Plausible analytics to all 1206 pages
Self-hosted instance at plausible.office.odoo4projects.com.
Injected before </head> on every page; the empty pt booking stub is left untouched.
2026-10-24 18:26:42 +00:00
Hermes Agent 129595d57a Add affiliate hosting CTA to the 6 language hosting-hub pages
The /<lang>/odoo-hosting/ hubs are the highest-intent pages ('hosting Odoo')
and carried no outbound link to the host before this change.
2026-10-24 18:24:15 +00:00
Hermes Agent 4171a31b0a Affiliate funnel: tag all odoo4projects.com links with utm_source=odoo-expertos.com
- 467 outbound links across 254 files now carry our affiliate UTM
  (replaces the stale utm_source=X5Y2I933 on the banner components)
- fix 36 links to /starter /professional /enterprise /business /mx,
  which return 404 on the target; remapped to /#pricing
- add a managed-hosting CTA block to all 6 homepages (es/en/de/fr/pt/ar),
  which previously carried zero links to the host
2026-10-24 18:22:24 +00:00
oliver 585951c8ce new site 2026-08-28 10:11:11 -03:00