GEOPress
Day 14 of 30 — the Discoverability arc continues
GEOPress is a WordPress plugin for Generative Engine Optimization — the LLM-readability layer for the 590-million-site WordPress universe. The free plugin is live today at version 1.0.0, distributed from geopress.io; the Pro tier — cloud analytics, per-page AI Visibility Scoring, agency multi-site rollup — is live alongside it.
Day 13 opened the Discoverability arc with PodToSite — YouTube-first, LLM-native podcast websites. Day 14 is the second leg of the same two-launch arc, and it is deliberately the bigger surface. PodToSite ships the “built to be read by a model” thesis for podcasters. GEOPress ships it for everybody on WordPress. Two products, one load-bearing argument: search is being unbundled into LLM answers, and the websites that survive the transition are the ones explicitly built to be legible to a model.
The reason GEOPress is a plugin and not a site builder is the reason it matters: you cannot ask 590 million site owners to re-platform. WordPress is already there. The LLM-readability layer has to arrive as an install, not a migration.
What it does
GEOPress adds a Generative Engine Optimization layer to an existing WordPress site without touching the theme, the host, or the content. The free tier is self-contained and runs entirely inside the WordPress install — no external API calls, no account, no PII, no IP addresses logged.
llms.txt and llms-full.txt generation. GEOPress generates /llms.txt and /llms-full.txt at the site root — virtual URLs served through WordPress rewrite rules, following the llmstxt.org standard. The files carry the site name, tagline, description, and a structured index of posts, pages, and custom post types with excerpts. They regenerate automatically on every post save and on a daily 3 a.m. cron, and there is a wp geopress regenerate WP-CLI command and a geopress_llms_txt_content filter for developers who want to customize the output.
JSON-LD schema injection. GEOPress injects structured data — WebPage, BlogPosting, FAQPage where FAQ blocks exist, Product on WooCommerce sites — into every page’s <head>. It detects Yoast SEO and RankMath and defers cleanly if either is active and already emitting schema, so it complements the existing SEO stack instead of fighting it.
AI-crawler robots.txt directives. GEOPress appends explicit Allow directives for the AI crawlers — GPTBot, ChatGPT-User, Claude-Web, anthropic-ai, PerplexityBot, Google-Extended, Bytespider, CCBot, Applebot, and others — to the WordPress-managed robots.txt, with a per-crawler toggle in settings so the site owner decides exactly who gets in.
Markdown content export. Every public post, page, and custom post type is exported as a clean .md file under wp-content/uploads/llms-docs/, served at a public URL and linked from llms-full.txt. Markdown is the format LLM pipelines ingest most cleanly — no theme markup, no nav chrome, just the content.
Native bot-analytics dashboard. A React + Chart.js dashboard inside WP Admin shows which AI crawlers are visiting, how often, and which pages they care about — summary cards, a by-bot bar chart, a 30-day trend line, and a recent-visits table. All of it computed from local $wpdb tables. Most site owners have never seen this data because nothing in the standard WordPress stack surfaces it.
Referral traffic detection. GEOPress parses HTTP_REFERER and UTM parameters to catch human visitors arriving from AI answers — utm_source=chatgpt, referrals from perplexity.ai, and so on — so the site owner can see real traffic landing from generative engines, not just crawler activity.
The GEO-native layer, inside WordPress
Three design choices put GEOPress on the right side of how discoverability actually works in 2026:
-
It arrives as an install, not a re-platform. PodToSite (Day 13) and the silverbackcto.com site itself get LLM-readability for free because they are Astro static builds — the content exists as real HTML the moment a non-JavaScript-executing crawler arrives. WordPress sites mostly don’t have that property, and their owners are not going to rebuild. GEOPress meets the 590M-site installed base where it is: a plugin that adds the
llms.txt, the JSON-LD, the Markdown surface, and the crawler directives to whatever theme and host the site already runs. -
The free tier is genuinely local. No external calls, no PII, no IP addresses, no account — the entire free feature set runs inside the WordPress install against
$wpdb. That is a deliberate trust-and-compliance decision: a GEO plugin that phoned home would be a non-starter for the publishers, agencies, and B2B content teams who are the first adopters. GDPR-friendliness isn’t a marketing line here; it’s an architectural constraint the free tier was built inside. -
It complements the SEO stack instead of replacing it. GEOPress is not a Yoast competitor. Traditional SEO and Generative Engine Optimization are different concerns — one optimizes for a ranked list of blue links, the other for being quotable inside an assembled answer. GEOPress detects the incumbent SEO plugins and defers where they overlap, so a site can run Yoast for Google and GEOPress for the answer engines without conflict.
The thesis behind the launch — GEO is the new SEO, and WordPress is the battleground
GEOPress sits inside Theme #3 of the 30-day run — Websites for LLMs, not people. The framing isn’t that humans stop being readers. The framing is that the first reader of a web page in 2026 is increasingly a model, and the model is the gatekeeper for whether a human ever reaches the page at all.
WordPress is where that fight gets decided at scale. It runs something like 43% of the web. It has a deep, mature plugin ecosystem for the old discoverability problem — Yoast alone is on millions of sites — and effectively nothing installed for the new one. That asymmetry is the whole opportunity. The same structural shift PodToSite productized for YouTube podcasters, GEOPress productizes for the largest publishing surface on the internet. Same thesis, vastly bigger addressable market, and a distribution channel — the WordPress.org plugin directory — built for exactly this kind of horizontal install.
This is also the same architectural posture silverbackcto.com has run since Day 1: llms.txt, llms-full.txt, JSON-LD per page, clean content surfaces, no JavaScript dependency for the canonical content. GEOPress is that posture, packaged so a WordPress site owner gets it in one install instead of a re-platform.
Pricing & business model
- Free — $0 forever. The full GEO layer:
llms.txt+llms-full.txtgeneration, AI-crawler robots.txt directives, JSON-LD schema injection, Markdown content export, the native bot-analytics dashboard, 90-day local data retention, WP-CLI support. Distributed through WordPress.org and as a direct download from geopress.io. The free tier is not a crippled demo — it is a complete, useful product, and it is the top of the funnel. - Pro Single — $9/month, or $79/year. Cloud analytics backend on AWS, AI referral-traffic tracking, per-page AI Visibility Score (scored by Claude Haiku via AWS Bedrock), weekly email reports, unlimited data retention.
- Pro Agency — $199/year. Everything in Pro Single across up to 10 WordPress sites, a multi-site rollup dashboard, and white-label PDF reports — the tier for the agencies managing client-site portfolios.
The free tier carries zero marginal cost — it runs entirely on the customer’s own WordPress host. The Pro economics are deliberately Haiku-only: page scoring runs about $0.001 per page through Bedrock, with a per-site monthly scoring cap, which keeps the $9/month price clearing a wide gross margin. On Day 14 both tiers are live — the free plugin ships from geopress.io, and the Pro SaaS backend (the AWS analytics layer, the Stripe billing, the Bedrock scoring, the SES weekly reports) is deployed and serving. The launch still leads with the free plugin, because the free plugin is the top of the funnel and a complete product on its own — Pro is the upgrade path, not the gate.
The Velocity Process notes
What Claude Code handled: the entire Phase 1 free plugin — the geopress.php bootstrap with activation/deactivation/uninstall hooks and DB table creation; the nine core classes (class-geopress-core hook registration, class-llms-generator with the rewrite rules and the template_redirect server, class-robots-manager, class-schema-injector, class-markdown-export, class-bot-detector with the AI-crawler user-agent pattern table, class-referral-tracker, class-license-manager, class-sync-client); the WordPress Settings API admin pages; the React 18 + TypeScript + shadcn/ui admin UI built with Vite — the dashboard, settings panel, and per-page visibility-score card; the readme.txt, the geopress.pot i18n template, and the WordPress.org compliance pass (prepared queries, nonces, capability checks, sanitize-in / escape-out, uninstall.php cleanup); the Next.js 16 + React 19 + Tailwind v4 marketing site for geopress.io. And the full Phase 2 Pro backend — the AWS CDK v2 stack on VelocityStack (four DynamoDB tables, six Node.js 20 Lambda functions, an API Gateway HTTP API v2 with X-GEOPress-License header auth, an EventBridge rule for the weekly report, Secrets Manager for the Stripe and SES config, a $100/month budget alarm); the six Lambdas themselves (license validation, analytics ingest, dashboard read, page scoring against Bedrock Haiku, weekly SES reports, Stripe webhook → license provisioning); and the plugin-side wiring that lights up the license manager and the sync client against the live API.
What required human judgement: the plugin-not-platform decision — the simpler-to-market thing would have been a hosted SaaS that generates a parallel site, the way PodToSite does for podcasts. That would have been the wrong call for this market. WordPress site owners are not going to re-platform 590 million sites; the LLM-readability layer has to arrive as an install on the site they already have. The local-only free tier — choosing to make the entire free feature set run inside $wpdb with zero external calls, rather than routing through the SaaS backend from day one, is the editorial call that makes GEOPress installable by the compliance-sensitive publishers and agencies who are the first adopters. The defer-to-Yoast-and-RankMath posture — a plugin that fought the incumbent SEO stack would never survive contact with a real site; building the conflict detection in from the start, and positioning GEO as a complement to SEO rather than a replacement, is what makes the install safe.
What broke: GEOPress is the clearest case in the run so far of the gap between built and launch-ready — and of why the readiness pass is not optional. The Phase 1 free plugin came together fast, but the build then went quiet for a stretch, and bringing it back to launch-ready surfaced real bugs that a packaged-and-forgotten .zip would have shipped with. The plugin didn’t load cleanly as a WordPress plugin until a root geopress.php loader was added for proper plugin detection; the React dashboard and settings pages had ES-module loading failures; the REST API had method-name mismatches (get_visits_summary, get_referrals_summary) and the route registration was trapped inside an is_admin() check, so the API was unreachable from the front end; and the rewrite rules weren’t registered on activation before the flush, so /llms.txt didn’t resolve on a fresh install. Separately, llms.txt regeneration exhausted PHP memory on sites with a large content archive — the markdown exporter was loading every post at once. The fix was to process the markdown export in batches of 50 and simplify the regenerate endpoint to just clear the cache. None of those would have been caught by looking at the code; all of them were caught by actually running the plugin on a real WordPress install. The marketing site also went up with placeholder testimonials and a premature “WordPress.org approved” badge — both pulled before go-live, because the entire Velocity run is built on real proof and named real people.
What I’d do differently: treat “packaged” as the start of the readiness clock, not the end of it. The lesson Day 12’s PlanCheckers retrospective named — validate against real conditions early — has a launch-readiness twin: a build that is finished but not continuously exercised decays toward not-shipped. Every bug above was latent in a .zip that looked done. GEOPress should have had a standing smoke test against a live WordPress install from the day the plugin was first packaged, not a scramble in the launch window. The work itself is solid — the free plugin and the Pro backend both shipped — but the distance between “a .zip on disk” and “a plugin that loads, serves, and bills” is exactly the distance the readiness pass exists to close, and it should be a continuous pass, not a T-1 one.
What’s next this week
- Day 14 (today): the free plugin ships as a direct download from geopress.io with the Pro tier live alongside it; the WordPress.org submission goes into the review queue (directory approval runs days-to-weeks — the direct download is the launch-day distribution path).
- Day 14 (today): the “I’ll Build Your Idea” challenge announcement posts — submissions run through Monday’s TIE Connect TC1 napkin-submission raffle (enter at silverbackcto.com/launch), and the audience-picked build ships after the event.
- Day 15 (Fri May 15): a game-day bench swap — Swole Labor Services, a Velocity Process cohort site build for a Fort Myers junk-removal operator. TFTSL Week 2 wrap rebroadcasts across the channels.
- This week: harden the Pro backend in production — confirm the Stripe webhook → license-provisioning path end to end, watch the Bedrock scoring spend against the $100/month budget alarm, and start the Phase 3 work (WordPress Multisite support, white-label PDF reports, hosting-partner integrations) that the Agency tier is sold on.
Want to talk
If you run a WordPress site — a publisher, a B2B content site, a WooCommerce store, a blog with a real archive — and you have watched organic traffic start leaking into AI Overviews and ChatGPT answers without understanding why, install the free GEOPress plugin from geopress.io. It adds the llms.txt, the JSON-LD, the Markdown surface, and the crawler directives, and the dashboard will show you which AI crawlers are already hitting your site. No account, no external calls, no cost.
If you run an agency managing a portfolio of client WordPress sites, the Pro Agency tier — multi-site rollup, white-label PDF reports — is built for exactly that shape, and it is live today at geopress.io. For volume or a custom arrangement, email todd@silverbackcto.com.
If you want to co-build GEOPress — the product side and the GEO-services / WordPress-agency distribution side are both open co-founder seats — the conversation is open. Book through Calendar.
GEOPress is built with the Velocity Process. Free plugin live today at geopress.io. The Discoverability arc continues — PodToSite shipped the thesis for podcasters; GEOPress ships it for WordPress.