Title: Ostheimer SEO
Author: Andreas Ostheimer
Published: <strong>September 14, 2026</strong>
Last modified: September 14, 2026

---

Search plugins

![](https://ps.w.org/ostheimer-seo/assets/banner-772x250.png?rev=3694611)

![](https://ps.w.org/ostheimer-seo/assets/icon-256x256.png?rev=3694611)

# Ostheimer SEO

 By [Andreas Ostheimer](https://profiles.wordpress.org/helpstring/)

[Download](https://downloads.wordpress.org/plugin/ostheimer-seo.1.2.1.zip)

 * [Details](https://wordpress.org/plugins/ostheimer-seo/#description)
 * [Reviews](https://wordpress.org/plugins/ostheimer-seo/#reviews)
 *  [Installation](https://wordpress.org/plugins/ostheimer-seo/#installation)
 * [Development](https://wordpress.org/plugins/ostheimer-seo/#developers)

 [Support](https://wordpress.org/support/plugin/ostheimer-seo/)

## Description

Ostheimer SEO handles the technical foundations of search visibility using WordPress
core features. Settings live on one page. There are no advertising banners, SEO 
scores, subscriptions or keyword-density targets.

**Included features**

 * Title and description templates for posts, pages, public content types, taxonomy
   archives and special pages.
 * Per-post SEO fields in the block editor and classic editor, with a server-rendered
   search preview.
 * Canonical URLs and robots directives, including archive and content-type indexing
   controls.
 * Open Graph and X cards, with per-post images and a fallback image.
 * WordPress core XML sitemaps with noindex exclusions and modification dates.
 * One connected JSON-LD graph: Organization, optional LocalBusiness or Person, 
   WebSite, WebPage, Article and BreadcrumbList.
 * An accessible breadcrumbs block, the [native_seo_breadcrumbs] shortcode and a
   theme template function.
 * Read-only import from Yoast SEO: post metadata, supported site templates, social
   profiles, identity and archive settings. Source data stays intact.
 * Optional IndexNow notifications, disabled by default.
 * Optional OpenRouter AI titles and descriptions with your own key, encrypted server-
   side storage, and an opt-in editor autofill mode.
 * Live template examples and editor previews, native image selection and explained
   advanced controls.
 * Translation-ready PHP and JavaScript with WordPress.org language-pack support.

**AI visibility**

Connected structured data describes your content and its publisher to systems that
support it. Ostheimer SEO does not promise rankings, inclusion in AI answers or 
citations. Optional AI writing uses your own OpenRouter key. This release does not
include crawler analytics, llms.txt or a Markdown endpoint.

**Privacy**

The plugin does not collect visitor analytics, store IP addresses, set tracking 
cookies, load CDN assets or require an external account. IndexNow and OpenRouter
are optional external services, each disabled until explicitly enabled. With AI 
enabled, article titles and text (including drafts) are sent to OpenRouter and the
selected model provider when generating SEO text. No visitor data is sent.

**Compatibility**

Ostheimer SEO pauses its frontend metadata output when Yoast SEO, Rank Math, All
in One SEO or SEOPress is detected. This helps prevent duplicate tags while migrating.
Import first, then deactivate the other SEO plugin and verify your pages. Other 
plugins or themes may also output metadata; check the rendered page when switching.

**For developers**

Plugin information: https://ostheimer.at/tools

All runtime PHP and JavaScript source is included in the plugin download.

Readable JavaScript uses WordPress-provided packages directly. There is no JavaScript
compilation step. Composer is needed for development tools only, not at runtime.

Filters include native_seo_title, native_seo_description, native_seo_canonical, 
native_seo_robots, native_seo_open_graph, native_seo_schema_graph, native_seo_breadcrumbs_markup
and native_seo_sitemap_exclude.

### External services

IndexNow is disabled by default. Enabling it in Ostheimer SEO sends published or
updated public URLs, the site hostname and a verification key to https://api.indexnow.
org/indexnow. No post content or visitor data is sent. Search engines decide whether
to crawl or index the URLs. A notification is not confirmation of indexing.

 * Documentation: https://www.indexnow.org/documentation
 * Terms: https://www.indexnow.org/terms
 * Microsoft privacy statement: https://privacy.microsoft.com/privacystatement

OpenRouter AI writing is disabled by default. Enabling it in Ostheimer SEO  AI assistance
allows article titles and up to 16,000 characters of plain article text, including
drafts, to be sent to https://openrouter.ai/api/v1/chat/completions and the selected
model provider. Password-protected posts are excluded. Requests happen when an editor
clicks Generate, or when the explicitly enabled autofill mode finds missing SEO 
text in an open editor. Generated text is a draft until the post is saved. Existing
custom SEO text is preserved unless the editor explicitly selects replacement. Provider
usage costs are billed by OpenRouter. No key is included with this plugin and no
credit is sold by Ostheimer SEO.

The API key is encrypted with the site’s WordPress authentication salt in a non-
autoloaded option, never returned to the browser. Changing that salt requires reconnecting
the key. Server administrators can instead define NATIVE_SEO_OPENROUTER_KEY in wp-
config.php. A separate short-lived database lock limits generation to one request
per editor per minute; it is reclaimed on demand and removed on uninstall. There
are no scheduled AI jobs.

 * OpenRouter documentation: https://openrouter.ai/docs/quickstart
 * Terms: https://openrouter.ai/terms
 * Privacy policy: https://openrouter.ai/privacy

## Screenshots

[⌊Settings navigation for site identity, templates, output and indexing.⌉⌊Settings
navigation for site identity, templates, output and indexing.⌉[

Settings navigation for site identity, templates, output and indexing.

[⌊SEO fields and search preview in the block editor.⌉⌊SEO fields and search preview
in the block editor.⌉[

SEO fields and search preview in the block editor.

## Blocks

This plugin provides 1 block.

 *   Breadcrumbs

## Installation

 1. Upload the ostheimer-seo folder to /wp-content/plugins/ and activate Ostheimer 
    SEO.
 2. Open Ostheimer SEO and configure your site identity and templates.
 3. When migrating from Yoast SEO, run the import, then deactivate Yoast SEO.
 4. Edit a post or page to set an individual SEO title, description, canonical URL 
    or social image.
 5. Check the rendered page and wp-sitemap.xml. Enable IndexNow only if you want URL
    notifications sent to that service.

## FAQ

### Does it guarantee search rankings or AI citations?

No. It supplies technical metadata and indexing controls. Search engines and AI 
services determine how they use that information.

### Does the plugin contact an external service?

Only after explicit opt-in. IndexNow receives public URLs, the site hostname and
a verification key. AI writing sends article titles and text to OpenRouter and its
selected model provider; it requires your own OpenRouter account, key and credit.
Ordinary SEO works without an account.

### Does importing change Yoast data?

No. The importer reads Yoast data and writes Ostheimer SEO data. Existing Ostheimer
SEO values are protected unless you choose Overwrite. Unsupported Yoast features
are not imported.

### Where does the structured-data logo come from?

From an imported Yoast identity logo, or the WordPress site logo, falling back to
the site icon. Social preview images are configured separately.

### How are translations installed?

WordPress.org distributes available translations as language packs through WordPress
updates. Translation files are not bundled with this plugin. German translation 
sources are maintained for contribution to translate.wordpress.org; availability
depends on language-pack publication.

### What is removed on uninstall?

Ostheimer SEO settings and all of its prefixed post metadata, including data imported
into Ostheimer SEO. Source data belonging to other plugins stays intact. Export 
or back up Ostheimer SEO data before uninstalling if you need it later.

### Can I use it alongside another SEO plugin?

Use one plugin to own frontend SEO output. Ostheimer SEO detects several common 
suites and pauses its output during migration; the settings page explains this state.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Ostheimer SEO” is open source software. The following people have contributed to
this plugin.

Contributors

 *   [ Andreas Ostheimer ](https://profiles.wordpress.org/helpstring/)

[Translate “Ostheimer SEO” into your language.](https://translate.wordpress.org/projects/wp-plugins/ostheimer-seo)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/ostheimer-seo/), check
out the [SVN repository](https://plugins.svn.wordpress.org/ostheimer-seo/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/ostheimer-seo/) 
by [RSS](https://plugins.trac.wordpress.org/log/ostheimer-seo/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.1

 * Fix static front pages so their individual social image takes precedence over
   the global fallback while their Open Graph type remains website.

#### 1.2.0

 * Add an optional LocalBusiness identity with telephone, email, postal address 
   and service area.
 * Import and edit Yoast taxonomy metadata, primary terms and post-type archive 
   templates without modifying Yoast data.
 * Improve settings navigation and indexing controls, including persistent post-
   format exclusions and a direct sitemap link.
 * Avoid duplicate blog and category labels in post breadcrumbs.

#### 1.1.2

 * Renamed to Ostheimer SEO, with the slug and text domain ostheimer-seo, at the
   plugin directory’s request. No functional change.

#### 1.1.1

 * Renamed to Plain SEO, with the slug and text domain plain-seo. Settings, per-
   post SEO data, the breadcrumbs block and the [native_seo_breadcrumbs] shortcode
   are unchanged and keep working.
 * Sanitize filtered breadcrumb HTML before rendering blocks, shortcodes and template
   output.
 * Use WordPress.org language packs without a custom translation loader or bundled
   locale files.
 * Correct the contributor username to helpstring.

#### 1.1.0

 * Find Native SEO directly in the main admin menu.
 * See resolved template examples and live previews in both editors.
 * Select social images from the media library and use explained advanced settings.
 * Optionally generate SEO text using your own OpenRouter key, with explicit consent
   and autofill.
 * Include English and complete bundled German translations.

#### 1.0.2

 * Preserve Yoast’s generated homepage and content descriptions when its stored 
   templates are empty.

#### 1.0.1

 * Prevent duplicate canonical, social and structured-data output with the AdSimple
   Magazine theme.

#### 1.0.0

 * First complete technical SEO release: metadata, connected schema, core sitemap
   integration, editor controls, breadcrumbs, Yoast migration, optional IndexNow
   and German translations.

## Meta

 *  Version **1.2.1**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [breadcrumbs](https://wordpress.org/plugins/tags/breadcrumbs/)[open graph](https://wordpress.org/plugins/tags/open-graph/)
   [schema](https://wordpress.org/plugins/tags/schema/)[seo](https://wordpress.org/plugins/tags/seo/)
   [sitemap](https://wordpress.org/plugins/tags/sitemap/)
 *  [Advanced View](https://wordpress.org/plugins/ostheimer-seo/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/ostheimer-seo/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/ostheimer-seo/reviews/)

## Contributors

 *   [ Andreas Ostheimer ](https://profiles.wordpress.org/helpstring/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/ostheimer-seo/)