Vercel serves an existing static file before applying a rewrite, so the
previous rewrite block did nothing and the strategy docs returned 200.
Redirects run before the filesystem check, so these now leave the site.
.vercelignore does not take effect on this deployment (growth/PLAN.md
returned 200 live after being added to it), so block /.agents/* and
/growth/* with rewrites to a nonexistent path instead.
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).
Week-by-week plan grounded in current GSC data (4,745 impressions, 9 clicks,
CTR 0.19%, hosting cluster at position 27.5, 1,090 impressions on page-1
zero-click queries). One bounded change per week, measured the following week.
Snapshot script: ~/.hermes/scripts/growth_week.py.
js/plausible-events.js classifies every outbound click:
Affiliate Click — host in AFFILIATES map, or rel=sponsored
Outbound Click — any other external link
props: network, destination, destination_path, placement (utm_medium),
link_text, lang. Internal links, in-page anchors, mailto: and tel: are ignored;
data-plausible-skip opts an element out. Adding a new partner is one line in
AFFILIATES. Loaded on 1206 pages before </body>.
Create the two goals in Plausible (Settings -> Goals -> Custom event) named
exactly 'Affiliate Click' and 'Outbound Click' for them to show as conversions.
plausible.office.odoo4projects.com is a self-hosted CE instance: it serves
/js/script.js and /js/plausible.js, but /js/pa-VLJpcZHbeLiw9Ub8C_MgG.js returns
404, so the snippet you supplied loaded no tracker and would have recorded
nothing. Site id now travels in data-domain (apex + www report as one site).
- 467 outbound links across 254 files now carry our affiliate UTM
(replaces the stale utm_source=X5Y2I933 on the banner components)
- fix 36 links to /starter /professional /enterprise /business /mx,
which return 404 on the target; remapped to /#pricing
- add a managed-hosting CTA block to all 6 homepages (es/en/de/fr/pt/ar),
which previously carried zero links to the host