Odysseo Core
Most SEO plugins hand you a checklist. Odysseo Core does the work — and, when you want to fine-tune a page, hands you the checklist too.
Activate it and every URL on your site immediately has a correct title, meta description, canonical URL, indexing directive and social preview. There is no setup wizard and nothing you must fill in first. If you never open its settings, it is still doing its job — and when you do want a focus keyphrase and a score on a particular page, that is waiting for you.
Works on everything, including things that do not exist yet
Odysseo Core does not keep a list of supported post types. It reads what WordPress actually has, every time. Posts, pages, products, custom post types, categories, tags, custom taxonomies, author archives, date archives — all handled. Register a new post type tomorrow, from any plugin, and it is optimized the moment it appears. Nothing to enable, nothing to configure.
Sensible by default, not just “on” by default
Being autonomous means making the right call, not tagging everything. Odysseo Core keeps search pages, attachment pages and date archives out of the index, because those create endless near-duplicate URLs that hurt the pages you care about. It never overrides your WordPress “discourage search engines” setting, so a staging site stays out of Google. Drafts, private posts and password-protected content are never advertised.
Templates and variables
Every title and description is built from a template you can change once and see applied across the whole site instantly — nothing is copied onto your posts, so there is no stale data and no bulk re-run when you change your mind.
Twenty-nine variables are available, including %%title%%, %%sep%%,
%%site_name%%, %%excerpt%%, %%category%%, %%author%%, %%post_type%%,
%%date%% and %%page%%. Variables that do not apply to a page resolve to
nothing, and any separator left stranded is cleaned up automatically — so a
single default template reads correctly on every kind of page.
Finds problems you cannot see
Odysseo Core builds an index of what every URL on your site actually renders, then tells you when two pages are competing for the same title, or when a page has no description. On a large site this runs in the background in batches, so it never slows down your editors or your visitors.
Found by search engines and AI alike
Odysseo Core publishes everything a page needs to be discovered, and keeps it consistent. A paginated XML sitemap lists every indexable page — with your images attached for Google Images — and because it is built from the same index as everything else, it never advertises a page you have set to noindex. An llms.txt file describes your site in plain language for the AI assistants people now ask instead of searching: ChatGPT, Claude, Perplexity, Google’s AI answers. And when you publish or update a page, IndexNow tells the search engines that support it to recrawl straight away, instead of waiting for them to notice.
Structured data (JSON-LD) and a visible breadcrumb trail are built from that same source too, so what a crawler reads and what a visitor clicks are always the same path.
It repairs, it does not just report
Change a published page’s address and Odysseo Core adds a redirect from the old one to the new, so existing links and search results keep working instead of breaking. It sends WordPress’s empty attachment pages to the file they belong to. And it keeps a log of the broken addresses visitors actually reach — the mistyped links and moved URLs that end in a 404 — so you can turn any of them into a redirect with one click. It never overwrites a redirect you made by hand.
Builds your internal links
While you write, Odysseo Core shows the other pages on your site about the same topics, so adding an internal link is a glance and a paste. Across the whole site it finds your orphan pages — the ones nothing links to — and names the related pages where a link to each would fit. It only ever suggests; the link you add is a link you wrote.
Describes your images
It finds the images with no alt text — the one thing a search engine and a screen reader both read instead of the picture — so your photos can be found in image search and understood by every visitor.
On-page SEO, when you want it
For the times you want to tune a specific page, Odysseo Core has the familiar green/amber/red analysis too — set a focus keyphrase and it checks the title, the meta description, the URL, the opening paragraph, subheadings, keyphrase use, content length, image alt text and internal links, and gives the page a score. An SEO column on your post lists shows that score at a glance across a whole content type. It is entirely optional: turn it off and Odysseo simply carries on doing the work for you.
A content-type builder, with SEO built in
Odysseo Core is also an autonomous content-type builder. Answer “what are you building?” — Portfolio, Team, Services, Events, Jobs, Properties, Courses, Recipes, and more — and it creates the content type, its categories, its Schema.org type and its SEO in one click. No register_post_type(), no rewrite rules, no second plugin.
Because the SEO engine reads whatever post types exist, every content type you create is instantly complete: titles, descriptions, canonicals, robots, Open Graph, structured data, the sitemap, breadcrumbs, llms.txt, IndexNow, internal- link suggestions and the on-page analysis all apply the moment it appears.
A built-in custom-fields engine gives each content type the fields it needs —
seventeen types including text, number, image, gallery, date, select, true/false,
relationship (link one content type to another) and repeater (repeating rows).
Read them in a template with odysseo_field('field_name'). Drop an
[odysseo_content type=”…”] shortcode anywhere for a filterable, sortable,
paginated grid of a content type. And a content type — with all its fields — can
be exported to a file and imported on another site, or duplicated in place.
AI is optional, and it cannot surprise you
Everything above works with no AI, no API key and no bill. If you do connect a provider — Claude, OpenAI, Gemini, OpenRouter, or a local model via Ollama or LM Studio — you must also set a monthly budget, and that budget is a hard ceiling rather than a warning. Every task is costed before it runs, work that would exceed what is left is refused rather than started, and every call is recorded with its exact token count and cost. A budget of zero means nothing is ever sent anywhere and nothing can ever be charged.
Local models (Ollama, LM Studio) need no key, cost nothing, and send nothing off your server.
Plays well with others
If Yoast, Rank Math, All in One SEO, SEOPress, The SEO Framework, Slim SEO, Squirrly or SmartCrawl is active, Odysseo Core stands down and tells you rather than emitting a second set of tags. Two SEO plugins writing canonicals at once is worse for your rankings than either one alone.
For developers
Every engine is a service, every module declares its own hooks, and everything is
filterable. See docs/HOOKS.md in the plugin directory for the full reference.
