GetSEOAgent — Bulk SEO Rewrites for WordPress
Project Info
- Client Self-funded SaaS
- Year 2026 → present
- Category WordPress plugin / SEO
- Status Live — v1.7.9 in the WordPress.org directory, free to install
- Stack WordPress plugin (PHP 8.1+), admin UI in React 18 + Vite + TypeScript, backend on Bun + Hono (TypeScript) with Postgres, self-hosted via Docker Compose or systemd
- Integrations Anthropic Claude, Google PageSpeed Insights, Google Search Console, Rank Math / Yoast / All in One SEO / SEOPress, WooCommerce, Screaming Frog (CSV import), WordPress.org (SVN)
- AI Anthropic Claude — an agent loop with 40+ tools; approve a sample of 5 rewrites, then extrapolate across N posts
Project Description
A WordPress plugin that does bulk SEO work through chat, built end-to-end: meta rewrites, schema, redirects, alt text, speed fixes — every one of them a job with history and one-click rollback. It sits on top of whichever SEO plugin the site already runs and writes into its native fields, so sitemaps, schema and on-page analysis keep working. Free on the WordPress.org directory, admin UI in 6 languages, self-hosted backend on your own API keys.
Modules
| Module | What it does |
|---|---|
| Bulk SEO rewrites through chat |
|
| SEO-plugin compatibility |
|
| Content creation and editing |
|
| Speed audit (PageSpeed Insights) |
|
| Schema.org |
|
| Site plumbing |
|
| Media library alt text |
|
| WooCommerce |
|
| Screaming Frog import |
|
| Google Search Console |
|
| Jobs, history and rollback |
|
| Keys, privacy and self-hosting |
|
| Cost metering and guardrails |
|
| Distribution and tiers |
|
| Admin UI |
|
Architecture
Four components in one repo, three toolchains: the backend (Bun + Hono, TypeScript) holds the agent loop, the 40+ tools, licensing, credits and metering; the plugin (PHP 8.1+) owns everything that writes to a user's site — REST controller, SEO-plugin adapters, job store, history, rollback, redirects; the admin app (React 18 + Vite) is embedded into the plugin; the landing pages are kept in the same tree. Product logic lives in the backend, site mutations only ever go through the plugin. Every LLM call is metered into a usage table (tokens in/out/cache plus cost in micro-USD), which is what makes cost per job and anomaly alerts possible. The plugin ships to wp.org over SVN; the backend runs from a systemd unit with no build step. Tests: PHPUnit on the PHP side, bun test on the backend, vitest in the admin app — plus a loader-parity test that fails the build when a new class is not required in the bootstrap file.
