From 0d2ecdbc24b4715dd124cf44b948bc488656e31c Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Sat, 24 Oct 2026 19:45:27 +0000 Subject: [PATCH] Drop the smoke-test duplicate report The Friday job was triggered manually to prove the pipeline; it produced a second snapshot of the same date. The pipeline works (completed, wrote a grounded report, committed, pushed); the file itself adds nothing. --- growth/SEO-REPORT-2026-10-24-run2.md | 182 --------------------------- 1 file changed, 182 deletions(-) delete mode 100644 growth/SEO-REPORT-2026-10-24-run2.md diff --git a/growth/SEO-REPORT-2026-10-24-run2.md b/growth/SEO-REPORT-2026-10-24-run2.md deleted file mode 100644 index c5f1863..0000000 --- a/growth/SEO-REPORT-2026-10-24-run2.md +++ /dev/null @@ -1,182 +0,0 @@ -# SEO report — odoo-expertos.com — 2026-10-24 (run 2) - -Data sources, all executed this run: `website_stats.py` (n8n webhook: Search Console 447 -queries + Plausible, range 2026-01-01 → 2026-10-24), `audit_site.py . /tmp/seo_audit.json`, -`git log`, `grep` counts over the working tree, and live `curl` of the URLs named below. -Previous report: `growth/SEO-REPORT-2026-10-24.md`. - -**Why "run 2":** that previous report was committed at 19:41 UTC today; this run started at -19:42 UTC. Same calendar date, so reusing the filename would have destroyed the only prior -report. It is preserved untouched; this file is the newer snapshot. - -## Executive summary - -Nothing moved this week: this run has zero elapsed time since the previous report — three -minutes — so it contains no new search data, and every number below is a re-read of the same -snapshot, not a trend. The site still stands at **4,745 impressions, 9 clicks, CTR 0.19%, -average position 24.7**, with the money cluster (`hosting*`, 33 queries) at **position 27.5, -538 impressions, 1 click** — that is the number that matters and it is unchanged because the -time window is unchanged. What this run did add is fresh evidence rather than fresh traffic: -the technical defect counts reproduce exactly (1,370 broken internal link occurrences, 0 -missing assets, 23 relative canonicals, 18 pages without canonical), the two confirmed live -404s still 404, and the fabricated proof is wider than last week's report stated — **113 -pages carry an ISO 27001 claim and 80 carry a SOC 2 claim**. Do not read any of this as a -week-over-week result; the first run that can show movement is the next one. - -## Scorecard - -"Last week" is the 2026-10-24 report. "This week" is this run. Both read the same webhook -snapshot, so every change is 0 by construction — not a measurement of stagnation. - -| metric | last week (2026-10-24) | this week (2026-10-24) | change | -|---|---|---|---| -| GSC impressions | 4,745 | 4,745 | 0 — same snapshot | -| GSC clicks | 9 | 9 | 0 | -| GSC CTR | 0.19% | 0.19% | 0 | -| GSC average position | 24.7 | 24.7 | 0 | -| Money-cluster position (`hosting*`) | 27.5 (33q, 538 impr, 1 click) | 27.5 (33q, 538 impr, 1 click) | 0 | -| Plausible visitors | 2 | 2 (2 visits, 3 pageviews) | 0 | -| Affiliate clicks | n/a | n/a | n/a — no `Affiliate Click` goal configured | - -Affiliate clicks remain n/a for the same reason as last week, re-verified this run: the -Plausible goal block (`event:goal`) returns a single row, `Visit /` with 1 visitor, and -nothing else. The custom events in `js/plausible-events.js` cannot appear until the goals are -created in the dashboard. The north-star metric is unmeasured, not zero. Commission on -odoo4projects.com is not visible from this environment and is not reported. - -The 2 Plausible visitors are both from the week of 2026-10-19 (United States, Paraguay) and -are consistent with owner/test traffic. - -## What shipped - -Every commit in the window is dated 2026-10-24 — the whole backlog landed today, in the hours -before this run. `git log --oneline --since="8 days ago"` returns 15 commits; the ones that -were supposed to move something: - -| commit | what it did | metric it was supposed to move | -|---|---|---| -| `a6cff06` | fixed 2,659 dead internal URLs, repaired canonicals, dropped dead host leftovers | broken internal link occurrences; crawl path health | -| `8b80c6c` | removed three unreferenced assets (unused CSS, image probe) | none claimed — hygiene | -| `1dde14a` | added the first SEO report | none — reporting | -| `cd5d7ef` | logged week 1, advanced plan to week 2 | none — bookkeeping | -| `d82af02` | added `.agents/product-marketing.md` (ICP, proof policy, positioning) | none directly; unblocks copy decisions | -| `6d25fc8`, `58b8234`, `86f152d`, `3c961ab` | attempted then reverted `/growth` routing config | none — see open risks, the effort failed | -| `21b274f` | tracked outbound clicks as Plausible custom events | affiliate clicks (blocked: no goal) | -| `3bd7001` | pointed Plausible at `/js/script.js` | data collection (was 404ing on `pa-`) | -| `1c50992` | Plausible tag on 1,206 pages | visitors | -| `129595d` | affiliate CTA on 6 language hosting hubs | outbound clicks | -| `4171a31` | UTM tags on outbound links | attribution | - -Affiliate link hygiene re-verified this run: 479 `href="https://odoo4projects.com..."` links, -0 without `utm_source=odoo-expertos.com`. - -## Verdicts on last week's action items - -| # | action item | verdict | -|---|---|---| -| 1 | Create `Affiliate Click` / `Outbound Click` goals in Plausible | **not done** — goal block still returns only `Visit /`. Too early to measure otherwise; nothing shipped. | -| 2 | Rewrite title + meta for page-1 zero-click queries | **not started** — no commit touching titles in the window. Too early. | -| 3 | Strip fabricated testimonials / ISO / SOC 2 / "200+ proyectos" / placeholder phone | **not done** — 113 pages still carry ISO 27001, 80 carry SOC 2, 12 carry "200+ proyectos", 6 pages still carry `tel:+123****7890`. Still scheduled week 2. | -| 4 | Consolidate ~40 near-duplicate `/odoo-hosting/*` pages per locale | **not started** — scheduled weeks 8–10. | -| 5 | Fix remaining 1,370 broken internal link occurrences (679 targets) | **no change** — `broken_internal_count` is still 1370. Keep open. | -| 6 | Fix the `odoo experts` brand query | **not started** — still 75 impressions @ 13.7, 0 clicks. | -| 7 | Fill or remove the 0-byte PT page | **not done** — still live: HTTP 200, 0 bytes. | -| 8 | Resolve 23 relative canonicals and 18 pages without a canonical | **no change** — `canonical_not_www: 23`, `no_canonical: 18`. | - -Nothing was reverted and nothing was claimed as a win. - -## Opportunities - -Identical to the previous snapshot because it *is* the previous snapshot; re-read from the -webhook this run. No query is new since last week. - -**Page-1 zero-click queries** (position ≤ 10, 0 clicks, ≥ 20 impressions): 17 queries, -**1,090 impressions** — 23.0% of all impressions. Top by volume: - -| 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 | -| hosting economicos | 30 | 3.9 | 0 | - -These are snippet failures, not content failures: the pages already rank and get ignored. -At 1.5% CTR the 1,090 impressions would yield ~16 clicks over an equivalent window. - -**Position 8–20 queries** (≥ 10 impressions): 34 queries, 1,094 impressions, 6 clicks. -Largest by volume: `odoo ia` 118 @ 15.0 (0 clicks), `odoo bolivia` 84 @ 8.4 (3), -`odoo honduras` 81 @ 9.4 (0), `odoo experts` 75 @ 13.7 (0), `demo odoo` 63 @ 12.4 (1), -`odoo demo` 63 @ 17.0 (0), `cloudpepper` 50 @ 11.2 (1). `cloudpepper` is a competitor-brand -query ranking in the middle of page 2 with a click already — the only comparable page on the -site is the one that wins it. - -Head-term anchors unchanged: `odoo hosting` 298 impressions @ 31.5 (1 click), `hosting odoo` -85 @ 28.5 (0), `odoo beratung` 155 @ 51.5 (0). - -## Action items for the coming week - -Ordered by expected value. Items 1–3 finish work already scheduled rather than starting new -work. - -**1. Create the `Affiliate Click` and `Outbound Click` goals in Plausible — S — unblocks -everything else.** The north star has been unmeasurable for two runs. This is a dashboard -setting, not a code change. Proves it: the `event:goal` block returns rows named `Affiliate -Click` and `Outbound Click` with non-null event counts. - -**2. Strip the fabricated proof — S — scheduled week 2, now overdue.** Scale is larger than -last week's report said: ISO 27001 on 113 pages, SOC 2 on 80, "200+ proyectos" on 12, -`tel:+123****7890` on 6, plus the "María González" and "Alejandro Ruiz" testimonial blocks. -Edit the shared templates, not 113 files. Proves it: page-count of ISO/SOC 2 strings and -placeholder `tel:` links reaches 0, and impressions on the affected URLs do not fall. - -**3. Rewrite title + meta description for the four biggest page-1 zero-click queries — M — -scheduled weeks 3–6.** `odo ia` (279 impr), `odoo de donde es` (154), `de donde es odoo` -(115), `odoo honduras` (81). Proves it: CTR on those four queries. - -**4. Fix the 1,370 broken internal link occurrences — M — open two runs.** Most are -navigation-template links (`/contacto/`, `/servicios`, the `/odoo-ai/` → `/odoo-ia/` path -error), so the fix is a handful of templates. Proves it: `broken_internal_count` from -`audit_site.py` drops toward 0. - -**5. Write the week-2 entry in `growth/WEEKLY-LOG.md` and advance `state.json` — S.** Two -consecutive runs have produced identical numbers and no measurement row; without the log the -loop has no memory of what it decided. Proves it: a week-2 row exists with a measured column. - -## Open risks - -All re-checked this run; none stale. - -- **Fabricated proof at scale.** 113 HTML files contain "ISO 27001", 80 contain "SOC 2", 12 - contain "200+ proyectos", 6 contain `tel:+123****7890`, 1 contains the "María González" - testimonial, 1 contains "Alejandro Ruiz". Neither certification is verifiable from anything - in this environment. -- **Two confirmed live 404s.** `https://www.odoo-expertos.com/servicios` → 404 (153 bytes); - `https://www.odoo-expertos.com/odoo-ai/odoo-chatbot-ai-atencion-client-2025/` → 404 - (153 bytes). Both still linked internally. -- **Empty page is indexable.** `https://www.odoo-expertos.com/pt/odoo-ia/odoo-sistema-reservas-booking-ia-2025/` - → HTTP 200 with `size_download 0`, listed in the PT sitemap. Soft-404 candidate. -- **1,370 broken internal link occurrences** across 679 unique targets; audit also reports - `h1_not_one: 19`, `pages_without_title: 1`, `pages_without_description: 1`. -- **Canonical host ambiguity.** `canonical_not_www: 23` relative canonicals on `en/` and - `fr/` pages; `no_canonical: 18`. Apex and www both serve 200 with no redirect, so the - canonical resolves to whichever host the crawler used. Leave the intentional cross-locale - canonicals alone — touching them re-indexes ~150 pages. -- **hreflang coverage 26%.** 317 of 1,202 HTML files carry an `hreflang` tag; 1,111 carry an - absolute `https://www.` canonical (the remaining 91 are relative, absent, or another host - form). Cross-locale canonicalised pages without hreflang give Google no signal that a - translation exists. -- **Sitemap gap.** `sitemap_url_count: 1191` against 1,202 HTML pages — 11 pages in no - sitemap. Partly legal/404 pages by design, not verified page by page. -- **Internal strategy is public.** `https://www.odoo-expertos.com/growth/PLAN.md` → HTTP 200, - 7,426 bytes. Routing config had zero effect (four commits, one revert); `robots.txt` - `Disallow: /*.md$` is advisory only. -- **No attribution.** Affiliate clicks unmeasured (no goal), commission not visible here. - -## Next review date - -2026-10-30 (Friday). That run should carry the first genuine week-over-week comparison, and -is the first that can hold items 1–3 above to account.