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.
This commit is contained in:
Hermes Agent committed 2026-10-24 21:02:54 +00:00
1 parent db788e8d31
commit 582a93e8a6
515 files changed
+1336 -1350

No files matched your search

@@ -18,12 +18,12 @@
<!-- Hreflang -->
<link rel="alternate" hreflang="de" href="https://www.odoo-expertos.com/de/odoo-hosting/kostenloses-odoo-hosting-2026/" />
<link rel="alternate" hreflang="es" href="https://www.odoo-expertos.com/odoo-hosting/hosting-odoo-gratis-gratuito-2026/" />
<link rel="alternate" hreflang="es" href="/de/odoo-hosting/hosting-odoo-gratis-gratuito-2025/" />
<link rel="alternate" hreflang="en" href="https://www.odoo-expertos.com/en/odoo-hosting/free-odoo-hosting-2026/" />
<link rel="alternate" hreflang="fr" href="https://www.odoo-expertos.com/fr/odoo-hosting/hebergement-odoo-gratuit-2026/" />
<link rel="alternate" hreflang="fr" href="/de/odoo-hosting/" />
<link rel="alternate" hreflang="pt" href="https://www.odoo-expertos.com/pt/odoo-hosting/hosting-odoo-gratis-gratuito-2025/" />
<link rel="alternate" hreflang="ar" href="https://www.odoo-expertos.com/ar/odoo-hosting/hosting-odoo-gratis-gratuito-2025/" />
<link rel="alternate" hreflang="x-default" href="https://www.odoo-expertos.com/odoo-hosting/hosting-odoo-gratis-gratuito-2026/" />
<link rel="alternate" hreflang="x-default" href="/de/odoo-hosting/hosting-odoo-gratis-gratuito-2025/" />
<!-- Open Graph -->
<meta property="og:title" content="Kostenloses Odoo Hosting 2026: Gratis-Optionen und Testversionen im Vergleich">
@@ -1400,7 +1400,7 @@
</div>
</a>
<a href="/de/odoo-hosting/vps-odoo-server-2026/" class="related-card">
<a href="/de/odoo-hosting/" class="related-card">
<div class="related-card-image">$</div>
<div class="related-card-content">
<h4>VPS fuer Odoo: Konfigurationsanleitung</h4>
@@ -1408,7 +1408,7 @@
</div>
</a>
<a href="/de/odoo-hosting/odoo-sh-plattform-2026/" class="related-card">
<a href="/de/odoo-hosting/" class="related-card">
<div class="related-card-image">#</div>
<div class="related-card-content">
<h4>Odoo.sh: Vollstaendige Analyse</h4>
@@ -1416,7 +1416,7 @@
</div>
</a>
<a href="/de/odoo-hosting/odoo-preise-kosten-2026/" class="related-card">
<a href="/de/odoo-hosting/" class="related-card">
<div class="related-card-image">%</div>
<div class="related-card-content">
<h4>Odoo Preise und Kosten 2026</h4>
@@ -1424,7 +1424,7 @@
</div>
</a>
<a href="/de/odoo-hosting/odoo-installation-ubuntu/" class="related-card">
<a href="/de/odoo-hosting/" class="related-card">
<div class="related-card-image">&</div>
<div class="related-card-content">
<h4>Odoo Installation auf Ubuntu</h4>
@@ -1432,7 +1432,7 @@
</div>
</a>
<a href="/de/odoo-hosting/odoo-docker-installation/" class="related-card">
<a href="/de/odoo-hosting/" class="related-card">
<div class="related-card-image">@</div>
<div class="related-card-content">
<h4>Odoo mit Docker installieren</h4>