Files
odoo-expertos.com/growth/WEEKLY-LOG.md
T

39 lines
7.6 KiB
Markdown

# Weekly log
One entry per week. The hypothesis and the metric are written **before** the change ships;
the measurement is filled in by the following week's run. A week without a measurement is
an unfinished week.
| Week | Date | Change | Hypothesis | Metric watched | Expected | Measured | Verdict |
|---|---|---|---|---|---|---|---|
| 0 | 2026-10-24 | Instrumentation: Plausible tag on 1,206 pages, `Affiliate Click` / `Outbound Click` custom events, UTM on 479 outbound links, CTA blocks on 6 homepages + 6 hosting hubs, weekly loop installed | Without measurement every change is a guess | all | baseline established | n/a (setup) | keep |
| 1 | 2026-10-24 | `.agents/product-marketing.md` (d82af02): ICP, pains, objections, proof policy, positioning — the source of truth every later week reads | Copy decisions were being re-litigated weekly; without fixed positioning each change invents its own | none (enabler); guardrail = no ranking loss | no regression | pending (week 2 run) | keep |
| 2 | 2026-10-24 | `2e0882d`: removed the 3 invented testimonials, the ISO 27001 / SOC 2 trust badges and the placeholder phone from the 6 homepages | Invented proof is an E-E-A-T and legal liability, and it undermines the affiliate pitch it sits next to | GSC impressions on `/` and the locale homes (guardrail: must not fall); Plausible outbound CTR | no ranking gain assumed; risk removed | pending (Friday run) | keep |
| 3 | 2026-10-24 | `2e0882d`: titles + descriptions rewritten on 3 pages covering 6 of the 17 page-1 zero-click queries (`¿De dónde es Odoo?`, `Odoo en Honduras: facturación DEI`, `Odoo IA: qué automatiza`) | Those queries already rank page 1 and earn 0 clicks; the snippets were machine slug-dumps with a ` - <slug> \| ES` artifact eating half the description | CTR on those queries, currently 0.00% | 0.19% site-wide CTR → 1%+ as the rewritten pages cycle through the SERP | pending (needs 2-4 weeks for GSC to re-crawl and re-rank) | keep |
| 4 | 2026-10-24 | `582a93e`: broken internal links 1,370 → 0; empty PT page removed with its sitemap block and hreflang alternates; 23 relative canonicals made absolute and 62 duplicate canonicals removed; EN homepage title/description/H1 aligned to `odoo experts` | 1,370 dead ends wasted crawl paths and dropped readers on 404s; a relative canonical resolves to whichever host served the page, and apex and www both answer 200 | `broken_internal_count`, `no_canonical`, `canonical_not_www` in audit_site.py; position + CTR for `odoo experts` (75 impr @ 13.7, 0 clicks) | audit counts at 0; brand query into page 1 | audit re-run: 0 broken, 0 relative, 1 page without canonical (404.html, deliberate) | keep |
| 5 | 2026-10-24 | `a52f0f6`: reworked `/odoo/empresa-odoo-historia-fundacion-2025/` — intent-led head (`Es belga, y así se usa en LATAM`), an "Odoo en 30 segundos" fact block above the fold, a LATAM localisation section and a São Paulo CTA to the host | 6 queries (~400 impressions, positions 4.5-7.7) earn zero clicks: the snippet sold company history while the searcher is asking whether Odoo works where they live | CTR and clicks on `de donde es odoo`, `odoo de donde es`, `odoo origen`, `odoo de que pais es`, `quien creo odoo`, `odoo de donde es originario`; affiliate clicks on the page | CTR 0% → 2%+ on those queries; first affiliate clicks traceable via utm_campaign=empresa-odoo-historia | pending (GSC needs 2-4 weeks to re-crawl; affiliate clicks unmeasurable until the Plausible goals exist) | keep |
| 6 | 2026-10-24 | `dd4ead2`: `/odoo-ia/` rebuilt as a guide (intent H1, three routes nativo/integración/fuera, five curated entry points, FAQ + FAQPage schema, hub CTA); site-wide fix for 1,714 `document.write(null)` blocks on 840 pages that replaced the header/footer with the literal text "null" | The hub ranked 6.8 for `odo ia` with 0 clicks on 279 impressions and answered nothing above the fold — a link directory, not an answer. Separately, a page with no navigation is a dead end for readers and crawl depth | CTR and clicks on `odo ia` + variants; affiliate clicks from utm_campaign=odoo-ia-hub; crawl depth on the 840 repaired pages | CTR 0% → 2%+ on those queries; nav restored site-wide | pending (GSC 2-4 weeks) | keep |
| 7 | 2026-10-24 | `ebb21f2`: `/odoo-ia/` aimed at the ranking itself — definition block, six use cases with links, ItemList schema, and a body link from `/odoo-hosting/` to the hub | The page ranked 6.8 for `odo ia` but never defined the term; a directory of links gives Google no reason to lift it above the articles it points to. Internal linking was measured first and was already sound (162 inbound, 252 anchors "Odoo IA") | position for `odo ia`, `odo ia`-variant impressions, CTR once position improves | 6.8 → top 3; CTR > 2% | pending (GSC 4-6 weeks for a hub-page move) | keep |
| 8 | 2026-10-24 | `e3883d5`: six 2027 country pages (Bolivia, Honduras, Guatemala, Chile, México, Paraguay) built on verified localisation facts, plus the page-dimension rollups now in every stats pull | The site already ranks page 1 for `odoo bolivia` (8.4, 3 clicks) and `odoo honduras` (9.4, 0 clicks) with thin 2025 pages — the lever is depth, not position. Country demand was measured before choosing which six | CTR and clicks on `odoo bolivia`, `odoo honduras`, the Guatemala cluster; affiliate clicks from utm_campaign=country-2027 | 2025 pages (position 8-9, 0-3 clicks) → 2027 pages earning clicks; first affiliate clicks from country traffic | pending (GSC 4-6 weeks) | keep |
| 9 | 2026-10-24 | `9fff72d`: rewrote the page that actually owns `odo ia` — honest head dated 2027, three-layer definition replacing the 'asistente superinteligente' opening, and the affiliate CTA it never had | 434 impressions at 7.8 with 0 clicks, and it is the site's second-largest impression page; the snippet was a slug dump and the copy sold a fantasy instead of answering | CTR on the 6 queries the page owns (`odo ia` 251, `odoo ia` 67, `.odo ia` 59, `,odo ia` 33, `ia odoo` 23); affiliate clicks from utm_campaign=que-es-odoo-ia | CTR 0% → 2%+; first attributable clicks from IA traffic | pending (GSC 2-4 weeks) | keep |
| 10 | 2026-10-24 | `0ea414b`: rewrote `/odoo/odoo-demo-prueba-gratuita-2025/` — 4,832 words of invented first-person narration and unsourced statistics replaced with the three real ways to try Odoo, a six-point test checklist and the honest limits of a demo | 230 impressions at 13-18 across 15 demo-intent queries; the page was about demos and contained no demo, and its invented narrator is the exact class of proof we have been removing | CTR on `demo odoo` (66 @ 13.2), `odoo demo` (64 @ 17.7), `odoo demo online` (20 @ 17.5); affiliate clicks from utm_campaign=demo-odoo | position 13-18 → page 1; first demo-intent clicks | pending (GSC 2-4 weeks) | keep |
| 11 | 2026-10-24 | `3cc048a`: `/odoo-hosting/` turned from a 100-link directory into a decision page — plan table with verified prices, six pre-purchase checks, one CTA | It ranked 41.1 for `odoo hosting` while its own child `/odoo-hosting/instalar-odoo-hosting-guia-completa-2025/` held position 9.5: the hub answered 'here are 100 guides' to a query that means 'where do I run this and what does it cost' | position for `odoo hosting` and `hosting odoo`; affiliate clicks from utm_campaign=hosting-hub-2027 | 41 → page 2, then 1 | pending (GSC 4-6 weeks) | keep |
---
## Entry template
```markdown
### Week N — YYYY-MM-DD
**Shipped:** <what changed, with commit hash>
**Hypothesis:** <why this should move a number>
**Metric:** <the one number that decides>
**Expected:** <direction and rough size>
**Measured (week N+1):** <actual, from growth_week.py>
**Verdict:** keep / revert / adjust — and why
**Next:** <carried into the following week>
```