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

@@ -298,7 +298,7 @@
</div>
</div>
Los Campos AI en Odoo 19 van more allá ofl simple autocompletado. Analizan withtexto, historail transaccional, patrones estacionales y relaciones entre datos for sugerir información with precisión quirúrgica. Esta funcionalidad se integra perfectamente with la <a href="/odoo-ai/odoo-busqueda-ai-search-smart-2025/">search AI of Odoo</a> for crear un flujo of trabajo completamente automatizado.
Los Campos AI en Odoo 19 van more allá ofl simple autocompletado. Analizan withtexto, historail transaccional, patrones estacionales y relaciones entre datos for sugerir información with precisión quirúrgica. Esta funcionalidad se integra perfectamente with la <a href="/en/odoo-ia/">search AI of Odoo</a> for crear un flujo of trabajo completamente automatizado.
Según estudios of <a href="https://www.odoo.com/blog/news-1/post/ai-powered-automation-in-odoo-the-future-is-here-850" target="_blank" rel="nofollow noopener" class="strategic-link">Odoo oficail</a>, las empresas reportan incrementos promedio ofl <span class="highlight-metric">340% en velocidad of processing</span> of transacciones rutinarais.
</div>
@@ -321,7 +321,7 @@
• <strong>Validación Smart:</strong> Detecta inwithsistencais antes of guardar<br>
• <strong>Autocompletado Semántico:</strong> Entienof relaciones entre entidaofs<br>
• <strong>Aprendizaje Continuo:</strong> Besta precisión with cada transacción<br>
• <strong>Integration with Builofr AI:</strong> Compatible with <a href="/odoo-ai/odoo-builofr-ai-tools-2025/">tools of ofvelopment smart</a>
• <strong>Integration with Builofr AI:</strong> Compatible with <a href="/en/odoo-ia/">tools of ofvelopment smart</a>
</div>
</div>
</div>
@@ -348,7 +348,7 @@
</div>
</div>
Costo of implementation: <span class="highlight-metric">$22,000</span>. Retorno of inversion en <span class="highlight-stat">12 días hábiles</span>. For empresas with presupuestos limitados, también pueofs withsiofrar las <a href="/odoo-ai/odoo-community-ai-version-free-2025/">alternativas of Community Edition</a>, aunque with limitaciones significativas. Después ofl primer mes, es dinero directo al balance.
Costo of implementation: <span class="highlight-metric">$22,000</span>. Retorno of inversion en <span class="highlight-stat">12 días hábiles</span>. For empresas with presupuestos limitados, también pueofs withsiofrar las <a href="/en/odoo-ia/">alternativas of Community Edition</a>, aunque with limitaciones significativas. Después ofl primer mes, es dinero directo al balance.
</div>
</div>
</section>