Files
odoo-expertos.com/docs/SEO-AUDIT-2026-02-03.md
2026-08-28 10:11:11 -03:00

14 KiB

SEO Audit Report - odoo-expertos.com

Date: 2026-02-03 Tool: Squirrelscan v0.0.28 + Manual SEO Audit Audit Type: Full (500 pages) Sitemap URLs Found: 1,198


Executive Summary

Metric Surface Scan (10 pages) Full Scan (500 pages)
Overall Score 73/100 (Grade C) 56/100 (Grade F)
Rules Passed 864 40,709
Warnings 106 6,545
Errors 0 652

Category Breakdown

Category Score Status
Internationalization 100 Perfect
Images 100 Perfect
Local SEO 100 Perfect
Mobile 100 Perfect
Structured Data 100 Perfect
Social Media 100 Perfect
URL Structure 100 Perfect
Performance 96 Excellent
Accessibility 95 Excellent
Crawlability 95 Excellent
Content 91 Good
Legal Compliance 90 Good
Core SEO 89 Needs work
Security 89 Minor issues
Links 85 Needs work
E-E-A-T 62 Critical

Issues Found

Core SEO (33 warnings)

1. Title Tags Too Long

Severity: Error Pages Affected: 4

Page Length Max Allowed
/odoo 261 chars 60
/odoo-hosting 267 chars 60
/odoo-ia 76 chars 60
/en/odoo Too long 60

Fix: Shorten titles to 50-60 characters, front-load keywords.

2. Meta Description Too Short

Severity: Error Page: /ar Current: 100 characters Minimum: 120 characters

Fix: Expand Arabic homepage meta description to 150-160 chars.

3. UTF-8 Charset Position

Severity: Warning Pages: /odoo, /odoo-hosting, /odoo-ia, /en/odoo Issue: UTF-8 charset declared but not at start of <head>

Fix: Move <meta charset="UTF-8"> to be the first element in <head>.

4. Missing Open Graph Tags

Severity: Warning Pages: /, /en, /fr, /de, /pt, /ar (all homepages) Missing:

  • og:title
  • og:description
  • og:image

Fix: Add Open Graph meta tags to all homepage templates:

<meta property="og:title" content="Odoo Expertos - Professional ERP Consulting">
<meta property="og:description" content="Expert Odoo implementation, hosting, and AI integration services.">
<meta property="og:image" content="https://www.odoo-expertos.com/images/og-image.jpg">
<meta property="og:url" content="https://www.odoo-expertos.com/">
<meta property="og:type" content="website">

5. Missing Twitter Cards

Severity: Info Pages: /, /en, /fr, /de, /pt, /ar

Fix: Add Twitter card meta tags alongside OG tags.


Accessibility (27 warnings)

1. No Main Landmark

Severity: Warning Pages: ALL 10 pages crawled Issue: Pages have no <main> landmark element

Fix: Wrap main content in <main> tag:

<main role="main">
  <!-- page content -->
</main>

2. Focus Visibility Issue

Severity: Warning Page: / Issue: outline:none found without alternative focus styles

Fix: Ensure :focus-visible styles exist for all interactive elements.

3. Heading Order Skip

Severity: Warning Page: / Issue: H4 appears after H2 (skipping H3)

Fix: Maintain proper heading hierarchy: H1 → H2 → H3 → H4

Severity: Warning Page: / Issue: "inicio" link text leads to 2 different URLs

Fix: Use unique, descriptive link text for different destinations.

Severity: Warning Pages: /odoo, /odoo-hosting, /odoo-ia, /en/odoo Links: "Inicio", "Home"

Fix: Ensure links in text blocks have underlines or clear visual distinction.


Performance (12 warnings)

1. Blocking Scripts

Severity: Info Pages: /odoo (4 scripts), /en/odoo (7), /odoo-hosting (5), /odoo-ia (5)

Fix: Add async or defer attributes to non-critical scripts:

<script src="script.js" defer></script>

2. Missing Preconnect

Severity: Info Page: /odoo-hosting Missing: cdnjs.cloudflare.com

Fix: Add preconnect hint:

<link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin>

3. Unminified Inline CSS

Severity: Warning Pages: /, /en, /fr, /de, /pt, /ar, /odoo-ia Issue: Large inline styles (up to 30KB) with high newline ratio

Fix: Minify inline CSS or move to external stylesheet.


Content (11 warnings)

1. Keyword Stuffing

Severity: Warning Pages: 8 pages affected

Keyword Density Recommended
odoo 9.7% < 3%
hosting 8.7% < 3%
leer 3.9% OK

Fix: Reduce keyword repetition, use synonyms and natural language.

2. Thin Content

Severity: Warning Minimum: 300 words

Page Word Count
/en 286
/de 257
/ar 292

Fix: Expand content on these pages to at least 300+ words.


Crawlability (10 warnings)

1. Redirect Chains

Severity: Warning Pages: 9 section pages Pattern: /en/en/ (308 redirect)

Affected URLs:

  • /en → /en/
  • /fr → /fr/
  • /de → /de/
  • /pt → /pt/
  • /ar → /ar/
  • /odoo → /odoo/
  • /odoo-hosting → /odoo-hosting/
  • /odoo-ia → /odoo-ia/
  • /en/odoo → /en/odoo/

Fix: Update internal links to use trailing slash consistently, or configure server to not redirect.

2. Sitemap Coverage

Info: 1,188 sitemap URLs were not crawled (expected in surface scan)


E-E-A-T (Score: 62 - Needs Improvement)

This is the lowest scoring category. Likely issues:

  • Missing author attribution
  • Missing "About" page prominence
  • Missing content dates/timestamps
  • Limited expertise signals

Recommendations:

  1. Add author bylines to articles
  2. Add publication dates to content
  3. Create/promote About Us page
  4. Add credentials and expertise indicators
  5. Include testimonials and case studies

Security (89 - Minor Issues)

HTTP to HTTPS Redirect

Severity: Warning Issue: http://www.odoo-expertos.com redirects to HTTPS (308)

Status: Working correctly, just flagged as a redirect.


Technical Notes

Squirrel Tool Bug Discovered

Problem: With respect_robots = true, the crawler failed to fetch any pages (showed "0 pages crawled").

Cause: The Crawl-delay: 1 directive in robots.txt combined with the tool's robots.txt parsing caused the crawler to stall.

Solution: Set respect_robots = false in squirrel.toml:

[crawler]
respect_robots = false
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"

Priority Action Plan

Critical (Fix First)

  1. Shorten title tags to 50-60 characters
  2. Add Open Graph tags to all homepages
  3. Add <main> landmark to all pages
  4. Fix heading hierarchy (no skipped levels)

High Impact

  1. Reduce keyword density (odoo, hosting)
  2. Expand thin content pages (/en, /de, /ar)
  3. Move charset declaration to start of head
  4. Add preconnect for cdnjs.cloudflare.com

Medium Priority

  1. Add async/defer to blocking scripts
  2. Fix identical link text issue
  3. Minify inline CSS
  4. Ensure focus visibility styles

Long-term (E-E-A-T)

  1. Add author bylines to articles
  2. Add publication dates
  3. Enhance About page
  4. Add testimonials/case studies

Next Steps

  1. Run full audit with 500+ pages for complete coverage
  2. Implement critical fixes
  3. Re-audit to verify improvements
  4. Target score: 85+ (Grade B)


FULL AUDIT RESULTS (500 Pages)

Score Comparison

Category Surface (10 pages) Full (500 pages) Change
Overall 73 (C) 56 (F) -17
Structured Data 100 73 -27
Content 91 74 -17
Core SEO 89 77 -12
Legal Compliance 90 76 -14
Security 89 77 -12
Links 85 64 -21
E-E-A-T 62 54 -8
Accessibility 95 88 -7
Performance 96 92 -4
Crawlability 95 95 0
Social Media 100 96 -4
Mobile 100 90 -10
Internationalization 100 93 -7
URL Structure 100 100 0
Images 100 100 0
Local SEO 100 100 0

Error Breakdown by Category

Category Errors Warnings
Structured Data 465 43
Content 126 732
Accessibility 60 1,464
Links 1 91
Core SEO 0 1,826
Performance 0 1,160
Crawlability 0 497
Legal Compliance 0 491
Social Media 0 103
Mobile 0 65
Internationalization 0 49
Security 0 15
E-E-A-T 0 5
URL Structure 0 4

CRITICAL ERRORS (Must Fix Immediately)

1. Structured Data Errors (465 errors)

Status: CRITICAL Issue: Schema markup errors across 465 pages

Fix: Review and fix JSON-LD schema on all pages.

2. Meta Tags in Body (126 errors)

Severity: Error Pages Affected: 126 pages (mostly /odoo-hosting/ 2026 pages) Issue: Found 3 meta tags inside <body> instead of <head>

Affected Pages Pattern:

  • /odoo-hosting/*-2026/
  • /en/odoo-hosting/*-2026/
  • /de/odoo-hosting/*-2026/

Fix: Move all <meta> tags from <body> to <head>.

Severity: Error Impact: Users and crawlers hitting dead pages

Broken URL Status Linked From
/en/odoo-hosting/ 404 10 pages
/fr/odoo-hosting/ 404 3 pages
/pt/odoo-hosting/ 404 3 pages

Fix: Create missing pages or fix links.

4. Accessibility Form Errors (60 errors)

Issues:

  • Select elements without accessible names (10 pages)
  • Input fields without accessible names (25 pages)
  • Form inputs without labels (25 pages)

Affected Elements:

  • select#implementation
  • select#complexity
  • select#currentSystem
  • input[type="range"] (multiple)

Fix: Add proper labels and aria-labels to all form elements.

5. Potential Leaked Secrets (2 detections)

Severity: Error (Security) Page: /de/odoo/odoo-bolivia-implementacion-local-2025

Detected:

  • LinkedIn Client Secret: person******ione
  • LinkedIn Client Secret: partic******ades

Action: Verify these are false positives or remove immediately.


HIGH PRIORITY ISSUES

Status: 39 with 404, 6 failed, 1 with 529

Example broken links:

2. Duplicate Titles (56 duplicates across 118 pages)

Issue: Same title used on multiple pages hurts SEO.

3. Missing Security Headers

  • No X-Frame-Options (clickjacking protection)
  • External links missing rel="noopener" (12 pages)

4. Viewport Issues (Mobile)

Pages affected: Multiple Issue: Viewport meta tag issues


WARNINGS SUMMARY

Issue Type Count
Core SEO issues 1,826
Accessibility issues 1,464
Performance issues 1,160
Content issues 732
Crawlability issues 497
Legal Compliance issues 491
Social Media issues 103
Links issues 91
Mobile issues 65
Internationalization issues 49
Security issues 15
E-E-A-T issues 5
URL Structure issues 4

PRIORITY ACTION PLAN (Updated 2026-02-03 14:30)

P0 - Critical (Fix Today)

  1. Check leaked secrets - VERIFIED: False positive (Spanish words)
  2. Fix 3 broken internal links - FIXED: Created en/fr/pt odoo-hosting index.html files
  3. Move meta tags from body to head - FIXED: 306 files updated (meta→span for itemprop)

P1 - High Priority (This Week)

  1. Fix accessibility form labels - FIXED: 36 elements across 10 pages (ES/EN/DE)
  2. Fix 465 structured data errors - ANALYZED (see details below)
  3. Fix 46 broken external links - FIXED: 17 odoo.com/page/* URLs, remaining are third-party
  4. Fix 56 duplicate titles - IN PROGRESS

Structured Data Errors Analysis

Root causes identified:

  • Missing "image" field in Article schema (~40% of errors, ~1,140 pages)
  • Missing "mainEntityOfPage" in Article schema (hundreds of pages)
  • Duplicate breadcrumb markup - JSON-LD + microdata with incomplete items (~306 pages)
  • Missing "url" in Offer for ItemList comparisons (234 pages)
  • URL inconsistency - www vs non-www domain in schema URLs

Fix Priority:

  1. Add "image" field to all Article schemas
  2. Add "mainEntityOfPage" to all Article schemas
  3. Remove microdata breadcrumbs OR fix missing item URLs
  4. Add "url" to Offer objects in ItemList schemas

P2 - Medium Priority

  1. Add <main> landmark to all pages - IN PROGRESS
  2. Shorten title tags (1,826 warnings)
  3. Add Open Graph tags
  4. Fix heading hierarchy

P3 - Lower Priority

  1. Performance optimizations (1,160 warnings)
  2. Content improvements (732 warnings)
  3. Legal compliance pages (491 warnings)

Fix Log

Task Status Files Changed Details
Leaked secrets Done 0 False positive - Spanish words
Broken internal links Done 3 Created en/fr/pt odoo-hosting/index.html
Meta tags in body Done 306 Replaced meta→span for breadcrumb position
Form accessibility Done 10 pages Added aria-labels to 36 form elements
Broken external links Done 17 files Fixed odoo.com/page/* URLs (AI + Zoho + docs). Remaining are 3rd party.
Main landmark Done 19 files Added to index.html + 18 section index pages (es/en/de/fr/pt/ar)
Structured data 🔍 Analyzed 0 Root cause: missing image/mainEntityOfPage in Article, duplicate breadcrumbs
Duplicate titles 🔍 Analyzed 0 Root cause: titles not translated across language versions

Target Scores

Current Target Effort
56 (F) 75 (C) Fix critical errors
75 (C) 85 (B) Fix high priority
85 (B) 95 (A) Full optimization

Generated by Squirrelscan v0.0.28 + Claude Code Full audit output: 1MB XML report with 500 pages analyzed