The number that matters: the money cluster (33 hosting queries, 538 impressions)
sits at position 27.5 with 1 click, while the site earns 4,745 impressions and
9 clicks overall at 0.19% CTR. Almost nobody who sees the site reaches a hosting page.
The technical cleanup landed — broken internal links fell from 4,029 to 1,370 — but this is the
first report, so no metric has had time to move.
Impressions
4,745
baseline — no prior period
Clicks
9
10 months
CTR
0.19%
page 1 would be 1.5%+
Avg position
24.7
money cluster 27.5
Plausible visitors
2
owner/test traffic
Affiliate clicks
n/a
no goal configured
Scorecard
Baseline and “now” are the same snapshot, so the trend is flat by construction. This becomes a real trend table from the 2026-10-31 run.
Metric
Baseline
Now
Trend
GSC impressions
4,745
4,745
flat — same snapshot
GSC clicks
9
9
flat — same snapshot
GSC CTR
0.19%
0.19%
flat — same snapshot
Average position
24.7
24.7
flat — same snapshot
Money cluster (hosting*)
27.5
27.5
33q · 538 impr · 1 click
Plausible visitors
2
2
2 visits · 3 pageviews
Affiliate clicks
n/a
n/a
no Affiliate Click goal
Affiliate clicks are unmeasured, not zero: the Plausible goal block returns only the page goal Visit / with 1 visitor. Commission attribution on odoo4projects.com is not visible from this environment and is not reported here.
Technical progress
Commit a6cff06 is the change this section measures; HEAD is 0d2ecdb.
Item
Before
After
Evidence
Broken internal link occurrences
4,029
1,370
audit broken_internal_count
Unique broken targets
—
679
full scan
Canonicals pointing at a 404
136
0
93 case-drift + 43 dead
Dead favicon / styles / analytics tags
1,296
0
1,197 + 96 + 3
Missing assets
3
0
audit missing_assets_count
Bad in-page anchors
—
0
audit bad_anchor_count
Duplicate titles / descriptions
—
0 / 0
audit
HTML pages
1,208
1,202
3 duplicate pages deleted
Still broken and unfixable automatically: /contacto/, /servicios,
/implementacion-odoo, /about (old-site routes, 70 occurrences) and 35 locale
hosting pages that were never created (175 occurrences). /odoo-ai/… is not case drift —
the real section is /odoo-ia/, a different path.
Ranking opportunities
Page 1, zero clicks — 17 queries, 1,090 impressions (23% of all)
Query
Impressions
Position
Clicks
odo ia
279
6.8
0
odoo de donde es
154
5.3
0
de donde es odoo
115
4.9
0
odoo honduras
81
9.4
0
.odo ia
66
7.6
0
odoo origen
60
7.7
0
odoobot que es
56
8.8
0
docker odoo 20 · odoo 20 docker
64
6.6
0
odoo de que pais es
32
6.8
0
hosting economicos
30
3.9
0
odoo inmobiliaria
27
9.4
0
odoo bot
25
8.3
0
odoo de donde es originario
25
4.5
0
At a 1.5% CTR these impressions would produce roughly 16 clicks over the same window.
Positions 8–20 — 34 queries, 1,094 impressions
Cluster
Queries
Impressions
Clicks
Avg pos
Example
LatAm
5
214
3
9.7
odoo bolivia 84 @ 8.4
AI / Odoo IA
3
183
0
14.0
odoo ia 118 @ 15.0
Brand / company
4
176
1
13.0
odoo experts 75 @ 13.7
Demo
3
145
1
15.1
demo odoo 63 @ 12.4
Chatbot / OdooBot
4
138
1
9.0
odoobot 34 @ 10.4
Hosting / deployment
6
104
0
15.4
odoo vps 24 @ 14.6
Head terms for later comparison: odoo hosting 298 impr · pos 31.5 · 1 click;
hosting odoo 85 · 28.5 · 0; odoo beratung 155 · 51.5 · 0.
Action items
1Create the Affiliate Click and Outbound Click goals
The north-star metric cannot be read today — the goal block returns only Visit /. No traffic change, but it turns every later verdict from opinion into data. Proves it: the event:goal block returns both names with non-null events.
Effort Snot scheduleddashboard setting, not code
2Rewrite title + meta for the page-1 zero-click queries
1,090 impressions already reach page 1 and earn 0 clicks — the snippet is failing, not the ranking. At 1.5% CTR that is ~16 clicks. Start with odo ia, odoo de donde es, de donde es odoo, odoo honduras.
Effort MPLAN weeks 3–6metric: CTR on those 17
3Strip the fabricated testimonials, ISO/SOC badges and placeholder phone
Invented proof is an E-E-A-T and legal liability. 3 testimonials, 113 pages claiming ISO 27001, 80 claiming SOC 2, 8 pages with a placeholder phone. Value is risk removal, not ranking.
Effort SPLAN week 2guardrail: impressions must not fall
4Consolidate the ~40 near-duplicate hosting pages per locale
They cannibalize the hub for the money terms. odoo hosting 31.5, hosting odoo 28.5. Check GSC per URL before deleting anything with impressions.
Effort LPLAN weeks 8–10metric: position of both head terms
5Fix the remaining 1,370 broken internal links (679 targets)
Dead ends waste crawl paths and send readers to 404s. /servicios and the /odoo-ai/… articles are live 404s now. Many are site-wide navigation links, so the fix is a handful of templates.
75 impressions at position 13.7 with 0 clicks on a query that matches the domain name. Likely a title/H1 mismatch on the English homepage.
Effort Snot scheduledmetric: position + CTR
7Fill or remove the 0-byte PT page
pt/odoo-ia/odoo-sistema-reservas-booking-ia-2025/ is 0 bytes, returns 200 with an empty body and sits in the PT sitemap. A soft-404 candidate.
Effort SPLAN week 7metric: index coverage
8Resolve 23 relative canonicals and 18 pages without one
Canonicals like /odoo-ia/ carry no host, so they resolve to whichever host served the page — and apex and www both answer 200. Do not touch the cross-locale canonicals; that is intentional strategy.