

Settings navigation for site identity, templates, output and indexing.
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
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://www.ostheimer.at/leistungen/wordpress-plugins
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.
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.
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.
Administrators can explicitly click “Load current models from OpenRouter” to fetch the public catalogue from https://openrouter.ai/api/v1/models. This sends no API key or article content and does not enable AI writing. The searchable list shows text models advertising JSON response-format support and input/output prices in USD per million tokens. The catalogue is not loaded in the background or stored. Account/provider restrictions can still affect availability. Existing selections are preserved, and model IDs can also be entered manually.
Administrators can explicitly click “Test API key” to check an entered or configured key at https://openrouter.ai/api/v1/key. The key is sent to OpenRouter for authentication, with no article content or text generation. Testing does not save a newly entered key, enable AI suggestions or verify model availability and generation credit.
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.