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

@@ -20,7 +20,7 @@
<link rel="alternate" hreflang="es" href="https://www.odoo-expertos.com/odoo-hosting/mejor-hosting-odoo-2026/" />
<link rel="alternate" hreflang="en" href="https://www.odoo-expertos.com/en/odoo-hosting/best-odoo-hosting-2026/" />
<link rel="alternate" hreflang="de" href="https://www.odoo-expertos.com/de/odoo-hosting/bestes-odoo-hosting-2026/" />
<link rel="alternate" hreflang="fr" href="https://www.odoo-expertos.com/fr/odoo-hosting/meilleur-hebergement-odoo-2026/" />
<link rel="alternate" hreflang="fr" href="/en/odoo-hosting/" />
<link rel="alternate" hreflang="x-default" href="https://www.odoo-expertos.com/odoo-hosting/mejor-hosting-odoo-2026/" />
<!-- Open Graph -->
@@ -1352,7 +1352,7 @@
<h2>Related Articles</h2>
<div class="related-articles">
<a href="/en/odoo-hosting/free-odoo-hosting-2025/" class="related-card">
<a href="/en/odoo-hosting/free-odoo-hosting-2026/" class="related-card">
<div class="related-card-image">FREE</div>
<div class="related-card-content">
<h4>Free Odoo Hosting: Available Options</h4>
@@ -1360,7 +1360,7 @@
</div>
</a>
<a href="/en/odoo-hosting/vps-hosting-odoo-2025/" class="related-card">
<a href="/en/odoo-hosting/aws-hosting-odoo-2026/" class="related-card">
<div class="related-card-image">VPS</div>
<div class="related-card-content">
<h4>VPS for Odoo: Configuration Guide</h4>
@@ -1368,7 +1368,7 @@
</div>
</a>
<a href="/en/odoo-hosting/odoo-sh-official-hosting-2025/" class="related-card">
<a href="/en/odoo-hosting/" class="related-card">
<div class="related-card-image">CLOUD</div>
<div class="related-card-content">
<h4>Odoo.sh: Complete Analysis</h4>
@@ -1376,7 +1376,7 @@
</div>
</a>
<a href="/en/odoo-hosting/odoo-hosting-prices-costs-2025/" class="related-card">
<a href="/en/odoo-hosting/" class="related-card">
<div class="related-card-image">$$</div>
<div class="related-card-content">
<h4>Odoo Hosting Prices</h4>
@@ -1384,7 +1384,7 @@
</div>
</a>
<a href="/en/odoo-hosting/odoo-hosting-requirements-2025/" class="related-card">
<a href="/en/odoo-hosting/" class="related-card">
<div class="related-card-image">SPECS</div>
<div class="related-card-content">
<h4>Technical Requirements for Odoo</h4>
@@ -1392,7 +1392,7 @@
</div>
</a>
<a href="/en/odoo-hosting/odoo-hosting-europe-providers-2025/" class="related-card">
<a href="/en/odoo-hosting/" class="related-card">
<div class="related-card-image">EU</div>
<div class="related-card-content">
<h4>Odoo Hosting in Europe</h4>
@@ -1406,7 +1406,7 @@
<section class="cta-banner fade-in">
<h3>Still Have Questions?</h3>
<p>Our team of Odoo experts is ready to help you choose the perfect hosting solution for your business. Get personalized recommendations based on your specific requirements.</p>
<a href="/en/contact/" class="cta-btn">Contact Our Experts</a>
<a href="/en/#contact" class="cta-btn">Contact Our Experts</a>
</section>
</main>