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


Blocks
This plugin provides 1 block.
- Breadcrumbs
Installation
- Upload the ostheimer-seo folder to /wp-content/plugins/ and activate Ostheimer SEO.
- Open Ostheimer SEO and configure your site identity and templates.
- When migrating from Yoast SEO, run the import, then deactivate Yoast SEO.
- Edit a post or page to set an individual SEO title, description, canonical URL or social image.
- 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.
ContributorsTranslate “Ostheimer SEO” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by 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.
