SEO-WP.NET
Developer API

Hooks & Filters: extend SEO-WP without forking it.

The public developer contract for final metadata, social tags, Schema, hreflang and sitemap behavior.

FilterPurposeArguments
seo_wp/titleFinal resolved SEO title$title, get_queried_object()
seo_wp/meta_descriptionFinal meta description$description, get_queried_object()
seo_wp/canonicalFinal canonical URL$url, $context
seo_wp/opengraph/tagsOpen Graph tag array$tags, get_queried_object()
seo_wp/schema/graphJSON-LD graph nodes$nodes, get_queried_object()
seo_wp/hreflang/alternatesAlternate-language URL pairs$alternates, $context
seo_wp/hreflang/managed_externallyExternal hreflang management flagfalse, $context
seo_wp/sitemap/excluded_post_idsExclude post IDs from sitemapsarray()

Example: change the final title.

Use WordPress filters when a rule belongs in code rather than in an editor field.

add_filter( 'seo_wp/title', function ( $title, $object ) {
    if ( is_singular( 'product' ) ) {
        return $title . ' | Free shipping';
    }
    return $title;
}, 10, 2 );
Slim Hreflang contract

One renderer, external alternate data.

Slim Hreflang can supply seo_wp/hreflang/alternates and mark hreflang as externally managed. SEO-WP remains the sole renderer when both plugins are active, preventing duplicate output.

Scroll to Top