aura.md

Aura SEO & GEO
Why I built it
There are plenty of SEO plugins for WordPress, but most of them date from a time when one search engine ruled. They fill in a meta title and a description, and that's where it ends. The question has grown wider since: not just "does Google find me?", but "does an AI search system understand what this page is about and who is behind it?".
That second part, GEO or generative engine optimization, was nowhere to be found in a decent form. Aura is my answer: an SEO plugin for modern WordPress 7+ projects that takes both the classic search engine and generative AI seriously.
The solution
Aura picks up three things you would normally spread over three plugins and a manual process:
- AI generation: meta titles, descriptions and other SEO fields at the push of a button, via Claude or OpenAI. Two modes: fill empty fields only, or overwrite existing ones. The human stays in control; the AI does the typing.
- Structured data: a coherent JSON-LD entity graph (LocalBusiness, WebSite, Person, BreadcrumbList and more) instead of loose snippets. That way both Google and AI systems understand the context, the author and the organization behind the site.
- Scoring: every page gets a score on two axes, SEO and GEO, updated live in the Gutenberg editor as you type. Below it sits a checklist per topic (from canonical URL and readability to citable facts and rich page entities) that shows what is present, partial or missing. Historical snapshots let you see progress: no vague traffic light, but a substantiated verdict per page and for the site as a whole.
Under the hood
Aura is the biggest of my plugins and layered accordingly (PHP 8.4, PSR-4, ~75 test classes):
- A provider abstraction with swappable clients for Claude and OpenAI: request builders, response mappers and a JSON fence stripper absorb the quirks of each API behind one interface.
- A generation pipeline (prompt builder, post reader, field writer) that reads content, builds a prompt and writes the result back to the right fields in a controlled way.
- An output layer that builds the entity graph and schema.org types from a vocabulary of its own, with a page type resolver and breadcrumb trail. In practice: from a page, Aura can derive a
Servicewith matchingOfferentities (name, price, currency) and write it as JSON-LD to the<head>. - A scoring engine with axis scorers, a topic catalog, a relevance resolver and an aggregator that adds up page scores into a site analysis; plus cron jobs that store score snapshots for the history.
Everything that depends on AI is isolated and tested on purpose, so the plugin stays predictable even when a model isn't.
Status
In production with WordPress clients of basdekort.nl, where the JSON-LD graph and the meta output run live. Under active development (v2.6.0): an SEO plugin that doesn't stay stuck in 2015, but moves along with how people search in 2026.




legal.json
"company_name": "Bas de Kort",
"legal_form": "sole proprietorship",
"trade_names": ["Bas de Kort", "LengthOfRope"],
"address": "Kerkeakker 3, 6674 EM Herveld, NL",
"chamber_of_commerce": "42038027",
"vat_id": "NL004476145B32",
"contact": { "form": "basdekort.nl/en/contact", "telephone": "+31628456862" },
"documents": [ "privacy", "terms and conditions", "data processing agreement" ]
}