Odysseo Core

Description

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.

Screenshots

Installation

  1. Upload the plugin, or install it from Plugins Add New.
  2. Activate it.

That is the whole setup. Your site is already optimized. Everything under Odysseo Core in the admin menu is optional.

FAQ

Do I have to configure anything?

No. Every setting has a working default and the plugin optimizes your site with
none of them touched. Change something only when you want to differ from the
default.

Will this conflict with my current SEO plugin?

No. Odysseo Core detects the major SEO plugins and pauses its own output rather
than duplicating tags, and it tells you it has done so. Deactivate the other
plugin when you are ready to switch.

Does it cost money to run?

No. The SEO engine is entirely rule-based: free, instant, and it works offline.
AI features are optional, off by default, and cannot run at all until you set a
monthly budget.

What happens when my AI budget runs out?

AI work stops until the next month, or until you raise the budget. It is a hard
limit — the plugin refuses to start a task it cannot pay for. It does not
overrun.

Does it add travel content types too?

Yes. Odysseo Core also registers the travel content types the Odysseo theme is
built around — Destinations, Tour Packages, Fleet, Testimonials and Gallery —
along with a contact-enquiry form and a one-click demo importer. These are
optional: the SEO engine works on any site with any content, and the travel
types simply appear in your admin if you want them.

Can I create my own content types?

Yes — under Odysseo Core Content Types. Pick a blueprint (Portfolio, Events,
Properties and so on) or name your own, and the content type is registered with
its taxonomies, Schema.org type and full SEO automatically. You can add custom
fields to it, link it to other content types, show it on the front end with the
[odysseo_content] shortcode, and export it to reuse on another site. No separate
CPT or custom-fields plugin is needed.

Does it give pages an SEO score like Yoast or Rank Math?

If you want one. Set a focus keyphrase on a post and Odysseo shows a green/amber/
red analysis and a score, plus an SEO column on your post lists. It is optional
and off nothing else — with it switched off, Odysseo still optimises every page
automatically. The difference from other plugins is that the score is advice, not
a chore: the mechanical work is already done for you.

Does it work with WooCommerce, Elementor, Bricks, Divi or Oxygen?

Products and any other custom post type are picked up automatically. Page
builders that store their content outside post_content may not produce an
automatic description, in which case write one on the page itself.

Will it slow my site down?

No. Nothing is computed on the front end beyond what the current page needs, and
all bulk analysis happens in background batches. The plugin adds no JavaScript to
your front end, and no CSS unless you choose to display its breadcrumbs — in which
case it is a single, few-hundred-byte stylesheet you can also turn off.

What is the llms.txt file?

It is a plain-language guide to your pages, published at yoursite.com/llms.txt,
for the AI assistants people increasingly ask instead of searching — ChatGPT,
Claude, Perplexity and Google’s AI answers. Odysseo Core builds it automatically
from the same titles and descriptions your pages already use, and lists only pages
you allow search engines to index. Leave it on and it stays current on its own.

Does it create redirects by itself?

Yes, but only safe ones. When you change a published page’s address, it adds a
redirect from the old address to the new so nothing breaks. It never overwrites a
redirect you made by hand, and every automatic redirect is listed and reversible.
It also logs the broken addresses visitors reach, so you can fix real dead ends
with one click rather than guessing.

Does it tell search engines when I publish?

If IndexNow is on, publishing or updating a page pings the search engines that
support it — Bing, Yandex and others — to recrawl that one URL. Only your own
public pages are ever submitted, never a page set to noindex, and nothing is sent
on a site that discourages search engines.

Is my API key safe?

Safest is to put it in wp-config.php as a constant, for example
ODYSSEO_AI_KEY_ANTHROPIC — the key then never touches your database, so
database backups and dumps cannot leak it. Keys stored through the admin are
encrypted with a key derived from your site’s AUTH_KEY, which protects against
a database-only breach. Keys are never displayed back to you.

Do you track me or collect any data?

No. Odysseo Core has no analytics, no telemetry and no phone-home. It never sends
information about you or your site anywhere. The only outbound requests it can make
are ones you switch on and control: optional AI (only after you set an API key and
a spending budget) and IndexNow, which submits your own public page addresses to
search engines so they recrawl faster. With both off, the plugin makes no external
requests at all.

Who owns my content and SEO data?

You do — entirely. Nothing is stored in a proprietary format. Your posts, pages and
media are ordinary WordPress content. Your per-page SEO fields live in standard post
meta (_odysseo_seo_*). Your content types and their fields live in a normal
WordPress option, and any content type can be exported to a plain JSON file. Odysseo
never claims ownership of your content or your website.

What happens if I deactivate or uninstall?

Deactivating changes nothing about your content — your posts, pages, custom post
types and their data stay exactly where they are, and reappear if you reactivate.
Uninstalling removes only Odysseo’s own settings and its derived tables (the search
index, the redirect and 404 logs, and similar caches, all rebuildable). It
deliberately keeps your _odysseo_seo_* page meta and your content-type
definitions, so switching away — or reactivating later — never deletes work you did.
There is no lock-in: content types export to JSON, and everything else is standard
WordPress you can take anywhere.

I use Yoast, Rank Math, ACF or CPT UI — can I switch?

Yes. When a major SEO plugin is active Odysseo stands down and tells you, so the two
never fight; deactivate the other when you are ready and Odysseo takes over. Because
Odysseo generates correct titles, descriptions and structured data automatically,
most sites need no import at all. Custom titles or descriptions you hand-wrote in
another plugin are stored in that plugin’s own meta and do not transfer on their own
— so after switching, it is worth checking your most important pages and re-entering
any wording you want to keep. Custom post types and fields created elsewhere keep
working; Odysseo optimises them like any other content.

How many plugins does this replace?

For a typical site, Odysseo Core stands in for a stack of them: an SEO plugin, a
schema/structured-data plugin, an XML sitemap plugin, a breadcrumb plugin, a
redirect/404 plugin, a custom-post-type plugin and a custom-fields plugin — one
install, one settings area, one design, instead of seven that each need configuring
and can conflict with each other.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Odysseo Core” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Odysseo Core” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

2.0.2

  • Improved: the dashboard’s detail sections now live in tabs (Overview, Issues, Automations, Redirects & 404s, Activity) — no more long scroll or uneven columns.

2.0.1

  • Improved: a denser, calmer dashboard — every card shows its top five with the rest a click away, queue tasks use plain names, and the automations table breathes.
  • Improved: the admin menu icon is now the Odysseo brand mark.
  • Fixed: dashboard cards could visually overlap in two-column layout.

2.0.0

  • New: an autonomous content-type builder — create Portfolios, Events, Properties and more in a click, each registered with taxonomies, Schema.org type and full SEO automatically.
  • New: a built-in custom-fields engine — 17 field types including image, gallery, date, select, true/false, relationship (link content types) and repeater (repeating rows); read on the front end with odysseo_field().
  • New: a [odysseo_content] shortcode for a filterable, sortable, paginated grid of any content type, on any theme.
  • New: export, import and duplicate content types — move a type and its fields between sites, or copy it in place.
  • New: on-page SEO analysis — a focus-keyphrase check with a green/amber/red score in the editor, and an SEO column across your post lists. Optional.
  • New: llms.txt, a plain-language guide to your pages for AI search engines (ChatGPT, Claude, Perplexity, Google AI), served at /llms.txt and built from your own titles and descriptions.
  • New: IndexNow — publishing or updating a page asks the search engines that support it (Bing, Yandex and others) to recrawl it straight away.
  • New: automatic redirects when a published page’s address changes, and for attachment pages; plus broken-link (404) tracking with one-click redirect creation.
  • New: a visible breadcrumb trail — shortcode, template tag or automatic — built from the same source as the BreadcrumbList structured data, so the two always agree.
  • New: internal-link suggestions while you write, and a site-wide view that pairs each orphan page with the related pages to link it from.
  • New: an image alt-text audit across your indexable pages.
  • Improved: the XML sitemap is now a paginated sitemap index, includes your images for Google Images, lists only indexable pages, and supersedes WordPress core’s own sitemap so the two cannot disagree.
  • Improved: a manual redirect may point to another domain when you enter a full URL, resolved safely.
  • Fixed: the database schema is brought up to date automatically after a plugin update, not only on reactivation.

1.0.0

  • First public release.
  • Automatic titles, meta descriptions, canonical URLs, robots directives, Open Graph and Twitter Cards for every URL on the site.
  • Universal support: every post type and taxonomy, including ones registered after installation.
  • Indexing policy with correct defaults — search, attachment and date archives kept out of the index; the WordPress search-engine visibility setting always respected.
  • Template and variable system with 29 variables and automatic cleanup of unused separators.
  • Background automation on Action Scheduler, with an activity log of every change.
  • Site-wide duplicate title and missing description detection.
  • Optional AI (Claude, OpenAI, Gemini, OpenRouter, Ollama, LM Studio) behind a hard monthly spending cap.
  • Conflict detection for the eight major SEO plugins.
  • Travel content types (Destinations, Tour Packages, Fleet, Testimonials, Gallery), contact enquiries and a demo importer, for sites built on the Odysseo theme.