
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.

SEO fields and search preview in the block editor.