From d82af02ccd3fe083a36212245656026c48e19e26 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Sat, 24 Oct 2026 19:02:01 +0000 Subject: [PATCH] Add product marketing context (week 1 enabler) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hypothesis: every later copy decision (title/meta rewrites, hosting hub, CTA blocks) will be written against a single grounded source of truth — real ICP from GSC query data, verified host prices, and an explicit never-use list for the site's fabricated proof — instead of being improvised per page. Metric: none (enabler); success is that week 2's proof-removal and week 3's CTR rewrites stop inventing claims. Also stop serving internal strategy publicly: .agents/ and growth/ are added to .vercelignore (.md was listed but growth/PLAN.md still returns 200 live). --- .agents/product-marketing.md | 263 +++++++++++++++++++++++++++++++++++ .vercelignore | 6 + growth/metrics.jsonl | 1 + 3 files changed, 270 insertions(+) create mode 100644 .agents/product-marketing.md diff --git a/.agents/product-marketing.md b/.agents/product-marketing.md new file mode 100644 index 0000000..9cec575 --- /dev/null +++ b/.agents/product-marketing.md @@ -0,0 +1,263 @@ +# Product Marketing Context + +**Document version:** v1 +**Last updated:** 2026-10-24 +**Owner:** site operator (odoo-expertos.com) + +> This file is the single source of truth for positioning and copy on odoo-expertos.com. +> Every later content decision reads from it. Anything not backed by a source named here +> does not go on a page. + +## Product Overview + +**One-liner:** A multilingual guide to Odoo for small and mid-sized businesses, which ends +in a recommendation of managed Odoo Community hosting. + +**What it does:** Publishes ~1,200 static pages in six languages (es, en, de, fr, pt, ar) +that answer the questions people ask while evaluating Odoo — what it is, where it comes +from, how AI fits in, how to install it, what hosting costs. When a reader reaches the +point of "where do I actually run this", the page recommends one managed host. + +**Product category:** Independent software-advice content site (Odoo ERP). On the shelf +next to Odoo documentation, agency blogs, and hosting comparison listicles. + +**Product type:** Static content site, no accounts, no cart. The commercial step happens +on the partner's site. + +**Business model:** Affiliate/referral commission on managed hosting sold at +odoo4projects.com. Every outbound link to the host carries +`utm_source=odoo-expertos.com` plus a `utm_medium` placement marker. There is no other +revenue: no ads, no sponsorships, no paid consulting, no products. + +**Implication for all copy:** the site is not a consultancy and does not deliver +implementations. It gives advice and points to a host. Copy that implies we employ +consultants, deliver projects, or sell packages is false and must be removed. + +## Target Audience + +**Target companies:** 1–200 employees, owner-led or single ops/finance lead, already using +spreadsheets or a legacy system, evaluating Odoo. Mostly Spanish-speaking Latin America +(Mexico, Colombia, Chile, Peru, Argentina, Honduras, Paraguay) plus Germany, and smaller +English/French/Portuguese/Arabic segments. + +**Decision-makers:** owner/GM; the operations or finance manager who will actually run the +system; sometimes an external IT freelancer hired for the project. Rarely a CIO. + +**Primary use case:** "I have heard Odoo can run my whole business for free — can it, what +does it really cost, and who sets it up for me?" + +**Jobs to be done:** +1. Decide whether Odoo Community is enough or Enterprise is required. +2. Understand the real annual cost, hosting included. +3. Find someone to run it without hiring a DevOps person. + +**Use cases that show up in real search demand (from GSC, 2026-01-01 → 2026-10-24):** +- `odo ia` (279 impressions, position 6.8) — Odoo + AI curiosity, mostly Spanish. +- `odoo de donde es` / `de donde es odoo` / `odoo origen` (~330 combined) — origin/ + country questions; informational, early stage. +- `odoo honduras` (81) — country-specific implementation question. +- `docker odoo 20`, `odoo 20 docker` (~64) — self-hosting, technical. +- `hosting economicos` (30), `odoo hosting` (298 at pos 31.5), `hosting odoo` (85 at 28.5) + — the money cluster, and where we rank worst. +- `odoo beratung` (155 at pos 51.5) — German consulting intent; the DE section is + underperforming relative to its size. + +## Personas + +| Persona | Cares about | Challenge | Value we promise | +|---|---|---|---| +| Owner / GM (SMB) | Total annual cost, "will it work for my business", risk of a failed project | Cannot tell a $214/yr plan from a $20k implementation quote | A clear cost picture and an honest "you need / you don't need" | +| Ops or finance manager | Day-to-day usability, migration of existing data, backups | Fears losing data and being locked in | Straight answers on backups, export, and what happens if they leave | +| Technical freelancer / one-person IT | Deployment mechanics, modules, Docker, versions | Needs specifics, not marketing | Version-specific detail (19 vs 20), OCA module reality, Git-based deployment | + +Not in the audience: enterprise procurement teams looking for a certified Odoo partner with +an SLA. We cannot serve them and should not pretend to. + +## Problems & Pain Points + +**Core problem:** Odoo is free to download and expensive to run badly. The reader cannot +tell which costs are real (licence, hosting, implementation, modules) and which are +padding from an agency quote. + +**Why alternatives fall short:** +- Odoo's own site sells the product, not the decision. +- Agency blogs sell implementation hours. +- Hosting listicles are unmaintained, quote dead prices, and recommend hosts nobody can + verify. +- Forums give version-specific answers that are wrong two releases later. + +**What it costs them:** an annual hosting bill they did not expect; a stalled +implementation; months of a half-migrated inventory. + +**Emotional tension:** fear of being sold a project they do not need, and of choosing a host +that holds their data hostage. + +## Competitive Landscape + +**Direct:** Odoo's official documentation and odoo.com pricing pages — authoritative but +product-led, silent on third-party hosting. Agency blogs (Spanish and German) — deep but +gated behind a "book a call" funnel. + +**Secondary:** Generic hosting comparison sites (Shared/VPS/cloud listicles) — cheap +keywords, no Odoo specificity, often out of date. + +**Indirect:** YouTube tutorials and Reddit/foro threads — trusted, current, but not +structured and not maintained as a reference. + +**Where we can win:** being the page that states real prices with a date, names the actual +trade-offs, and says plainly when the cheap plan is enough. + +## Differentiation + +**Key differentiators:** +- Real prices, quoted with a date and a link to the source (currently Side Hustle USD 214/yr, + On the Rise 395, Powerhouse 595, Empire >950, no setup fee, 30-day trial without card). +- Six languages, written for the local reader rather than machine-translated boilerplate. +- Version-specific detail: Odoo 19 and 20 both available on the recommended host. +- One recommendation instead of a list of twenty — and a stated reason. + +**How we do it differently:** we say who the recommendation is wrong for. A comparison that +never disqualifies anything is an ad. + +**Why that's better:** the reader is trying to decide, not to browse. + +**Why readers act on it:** the recommendation is concrete (a plan name, a price, a region, a +trial with no card), so the next step costs nothing to try. + +## Objections + +| Objection | Response | +|---|---| +| "This is just an affiliate site." | Say so, plainly, near the CTA. Then earn it: real prices, dated, verifiable on the host's site, and an honest "don't buy this if…" | +| "Odoo Community is free — why pay for hosting?" | Free software still needs a server, backups, SSL and updates. Compare the real cost of a VPS plus your own time against a managed plan. | +| "Will I be locked in?" | State what the host actually offers (rotating backups, Git-based module deployment, cancel anytime, Stripe, no setup fee) and what it does not. | +| "Is the cheap plan enough?" | Answer by domain count and module needs: 1 domain vs 3, Git modules from On the Rise up, 2 workers from Powerhouse. | +| "Can you implement it for me?" | No. We are not a consultancy. Point to the host's support and to Odoo's partner directory. | + +**Anti-persona:** companies that need a signed implementation contract, on-premise +requirements, custom SLAs, or multi-company Enterprise rollouts with a project manager. We +have nothing for them and should say so rather than capture the lead. + +## Switching Dynamics + +**Push:** spreadsheet chaos, an ERP quote that felt like a shakedown, a host that went down +and took the invoice history with it. + +**Pull:** a concrete annual number, a five-minute deploy, a trial with no card. + +**Habit:** "we've always used Excel and it works"; a prior failed ERP project. + +**Anxiety:** losing data, being locked into a host, picking the wrong version, paying for +capacity they do not use. + +## Customer Language + +Real query phrasing, taken from Search Console (verbatim, not invented): +- "odoo de donde es", "de donde es odoo", "odoo de que pais es", "odoo origen" +- "odo ia", ".odo ia", "odoobot que es", "odoo bot" +- "docker odoo 20", "odoo 20 docker" +- "hosting economicos", "odoo hosting", "hosting odoo" +- "odoo inmobiliaria", "odoo beratung", "odoo honduras" + +**Words to use:** Odoo Community, Odoo Enterprise, versión 19 / 20, autohospedaje +(self-hosting), servidor, copias de seguridad, dominio, región, prueba gratis, sin tarjeta, +coste anual real, "a partir de". + +**Words to avoid:** "revolucionario", "potencia tu negocio", "sinergia", "solución 360", +"líder del mercado", "garantizado" (nothing is), "ROI de X%" without a stated calculation, +and any war or domination metaphor. + +**Glossary:** + +| Term | Meaning on this site | +|---|---| +| Odoo Community | Free, open-source edition. What the recommended host runs. | +| Odoo Enterprise | Paid edition with extra apps and support. Needs a licence. | +| OCA | Odoo Community Association — the community module repos. | +| self-hosting | Running Odoo on your own VPS/cloud. Cheaper on paper, needs an admin. | +| managed hosting | Someone else runs the server, backups and updates. What we recommend. | + +## Brand Voice + +| Attribute | Means | Doesn't mean | Example line | +|---|---|---|---| +| Specific | Numbers, versions, dates, plan names | Padding with statistics we cannot source | "Desde USD 214/año, con 30 días de prueba y sin tarjeta." | +| Plain | Short sentences, everyday words, reader's language | Dumbed down or vague | "Odoo es gratis. El servidor no." | +| Honest about the trade-off | Names who should not buy | Hedging every claim into uselessness | "Si solo necesitas un dominio y ningún módulo propio, el plan de USD 214 es suficiente." | +| Calm | Confident, no urgency theatre | Passive or dull | "Puedes probarlo 30 días sin tarjeta antes de decidir." | + +**Tone by context:** +- Explainers: patient, example-led. +- Hosting/comparison pages: dry, tabular, price-forward. +- CTA blocks: one benefit, one price anchor, one risk-remover (trial, no card). +- Errors / corrections: say what was wrong and the date it changed. + +**Terms we own:** "el coste real de Odoo", "sin DevOps", "instancia en 5 minutos". + +**Never use (and why):** ISO 27001 / SOC 2 badges (the host does not claim them and neither +can we), "200+ proyectos", invented client names, invented ROI percentages, fake urgency +countdowns. These were on the site before and are being removed — they are the single +biggest E-E-A-T and legal liability here. + +## Proof Points + +**What is verifiable (checked against the live host site on 2026-10-24):** +- Plans: Side Hustle USD 214/yr (1 domain), On the Rise 395/yr (3 domains + Git/QuickGIT), + Powerhouse 595/yr (2 workers, Enterprise-ready), Empire >950/yr (own server, custom). + No setup fee, Stripe, cancel anytime. +- 30-day free trial, no credit card. Deploy in ~5 minutes. +- Odoo 19 and 20 available. +- Six regions: Amsterdam, Boston, Manchester, Mumbai, São Paulo, Sydney. +- Automatic rotating backups, free SSL, Git-based module deployment, AI support bot plus + human support. + +**Customers we may name (the host's real portfolio — verify the site still loads before +using):** paraguayservice.com and startparaguay.net (Paraguay relocation services), +estancia-agape.com (cattle genetics), kate-group.de (SAP CPI adapters), agilnova.de (M&A +advisory). Mostly German-speaking SMBs plus Paraguay services. Note: accelersales.com has +failing TLS — do not feature it until it loads over HTTPS. + +**Testimonials:** none that we can attribute. We have no interviews, no quotes, no names. +Until we do, the site has no testimonial section — the real customer list is the proof. + +**Value themes:** + +| Theme | Proof | +|---|---| +| Cheaper than it looks | USD 214/yr entry plan, no setup fee, 30-day trial without card | +| No DevOps required | 5-minute deploy, managed updates, backups, SSL included | +| Not a black box | Git-based module deployment, standard Odoo CE, cancel anytime | +| Runs where you are | Six regions incl. São Paulo, Mumbai, Sydney | + +## Goals + +**Business goal:** commission from hosting referred to odoo4projects.com. + +**Conversion action:** outbound click to the host (Plausible event `Affiliate Click`), +then purchase on the host's site. + +**Current metrics (2026-10-24, from the n8n stats webhook):** +- GSC: 4,745 impressions, 9 clicks, CTR 0.19%, avg position 24.7 over 447 queries. +- Money cluster (33 hosting queries): 538 impressions, 1 click, position 27.5. +- 17 page-1 queries with zero clicks, holding 1,090 impressions. +- Plausible: 2 visitors, 3 pageviews (owner/test traffic only). +- Affiliate clicks to date: 0. Custom-event goals (`Affiliate Click`, `Outbound Click`) are + not yet configured in Plausible settings, so absence of a count is not evidence the + tracker is broken. + +**Disclosure requirement:** every page with an affiliate CTA states the relationship in the +page's own language, near the CTA. Never hide it. + +## Learnings + +| Date | Learning | Evidence | Applies to | Status | +|---|---|---|---|---| +| 2026-10-24 | Search demand is informational first (`odo ia`, `odoo de donde es`) and commercial second (`odoo hosting`, position 31.5) — the hosting pages are where the money is and where we rank worst | GSC 447 queries, 4,745 impressions | content-strategy, seo-audit, cro | active | +| 2026-10-24 | The homepage's fabricated proof (invented testimonials, 280% ROI, "$0 desde" plan tiers, 100+ companies) undermines the affiliate pitch and is being removed | Site audit; plan week 2 | copywriting, cro, seo-audit | active | +| 2026-10-24 | Custom-event goals are not configured, so affiliate clicks cannot be read from the stats payload yet; 0 is not yet a measured zero | Plausible goals block lists only the page goal `Visit /` | analytics, conversion-tracking | watch | + +## Changelog + +- v1 (2026-10-24) — Initial context: positioning as an independent guide whose only revenue + is hosting referral; ICP from real GSC query data; verified host facts; explicit + "never use" list for the site's fabricated proof. diff --git a/.vercelignore b/.vercelignore index 5e6a325..7959e4a 100644 --- a/.vercelignore +++ b/.vercelignore @@ -31,6 +31,12 @@ pages-status.json validation-report.md missing-keywords*.md +# Exclude internal strategy (must never be publicly served) +.agents/ +.agents/** +growth/ +growth/** + # Exclude OS files .DS_Store Thumbs.db diff --git a/growth/metrics.jsonl b/growth/metrics.jsonl index ca8405e..f8838aa 100644 --- a/growth/metrics.jsonl +++ b/growth/metrics.jsonl @@ -1 +1,2 @@ {"ts": "2026-10-24T19:00:18+00:00", "clicks": 9, "impressions": 4745, "ctr": 0.18967334035827188, "position": 24.75, "queries": 447, "page1_zero_queries": 17, "page1_zero_impressions": 1090, "money_impressions": 538, "money_position": 27.5, "visitors": 2, "pageviews": 3, "goals": {"Visit /": 1}} +{"ts": "2026-10-24T19:00:56+00:00", "clicks": 9, "impressions": 4745, "ctr": 0.18967334035827188, "position": 24.75, "queries": 447, "page1_zero_queries": 17, "page1_zero_impressions": 1090, "money_impressions": 538, "money_position": 27.5, "visitors": 2, "pageviews": 3, "goals": {"Visit /": 1}}