Sitemaps API

Framework for generating XML sitemaps in WordPress.

Since: 5.5.0
Source: wp-includes/sitemaps.php, wp-includes/sitemaps/

Components

Component Description
functions.md Core retrieval and registration functions
class-wp-sitemaps.md Main sitemap controller
class-wp-sitemaps-provider.md Abstract base provider class
class-wp-sitemaps-registry.md Provider registry
hooks.md Actions and filters

Built-in Providers

Provider Class Object Type Description
posts WP_Sitemaps_Posts post Public post types
taxonomies WP_Sitemaps_Taxonomies term Public taxonomies
users WP_Sitemaps_Users user Authors with published posts

Architecture

WP_Sitemaps (main controller)
    ├── WP_Sitemaps_Registry (provider management)
    │       └── WP_Sitemaps_Provider[] (posts, taxonomies, users)
    ├── WP_Sitemaps_Index (index generation)
    ├── WP_Sitemaps_Renderer (XML output)
    └── WP_Sitemaps_Stylesheet (XSL styling)

URL Structure

URL Description
/wp-sitemap.xml Index listing all sitemaps
/wp-sitemap-posts-post-1.xml Posts sitemap page 1
/wp-sitemap-posts-page-1.xml Pages sitemap page 1
/wp-sitemap-taxonomies-category-1.xml Categories sitemap page 1
/wp-sitemap-users-1.xml Users sitemap page 1
/wp-sitemap.xsl Stylesheet for sitemaps
/wp-sitemap-index.xsl Stylesheet for index

Registration Flow

wp_sitemaps_init action
    └── wp_register_sitemap_provider()
            └── WP_Sitemaps_Registry::add_provider()
                    └── Store WP_Sitemaps_Provider instance

Request Flow

/wp-sitemap.xml
    └── template_redirect
            └── WP_Sitemaps::render_sitemaps()
                    ├── (index) WP_Sitemaps_Index::get_sitemap_list()
                    │       └── WP_Sitemaps_Renderer::render_index()
                    └── (provider) WP_Sitemaps_Provider::get_url_list()
                            └── WP_Sitemaps_Renderer::render_sitemap()

Robots.txt Integration

The sitemap index URL is automatically added to robots.txt for public sites:

Sitemap: https://example.com/wp-sitemap.xml