Skip to main content

XML Sitemaps

SCS does not generate, write, or upload sitemap XML. The site's SEO plugin owns the sitemap. On the reference stack that plugin is SEOPress, which generates and serves the sitemap automatically. There is no build or export step after publishing.

Who creates the XML file​

Site stackSitemap ownerIndex URL
WordPress + SEOPressSEOPress (XML sitemaps are in the free plugin; video and Google News sitemaps are PRO)/sitemaps.xml
WordPress, no SEO pluginWordPress core (5.5+)/wp-sitemap.xml
Static site (Cloudflare Pages, Docusaurus)the build pipelinewhatever the generator emits

When SEOPress is active it disables the WordPress core sitemap so the site does not advertise two competing sitemaps.

What SEOPress creates automatically​

  • An index at /sitemaps.xml with child sitemaps per post type and taxonomy, for example post-sitemap1.xml, page-sitemap1.xml, and category-sitemap1.xml.
  • Paginated children when a type exceeds the per-file limit.
  • Published posts and pages only. Drafts, pending, private, and password-protected posts are never listed.
  • Automatic exclusion of noindex posts, and of posts whose canonical differs from their permalink, to follow Google's sitemap guidelines.
  • Optional image and author sitemaps; video and Google News sitemaps are PRO features.
  • An XSL stylesheet (/sitemaps_xsl.xsl) so the XML is readable in a browser.

The XML is produced on request, not stored as a file on disk. A post appears as soon as its post_status is publish and it is indexable.

note

/sitemap.xml (singular) is not the SEOPress path. SEOPress serves /sitemaps.xml and redirects /sitemap.xml to it. Do not hardcode either name in automation — discover the URL from robots.txt or from the plugin settings.

Where it fits in the workflow​

SCS publishes drafts (scs publish), so nothing enters the sitemap at that step. That is correct behaviour, not a bug.

Draft (no sitemap entry)
→ WordPress review
→ publish through the approved workflow
→ sitemap lists the permalink
→ Google crawls when it chooses
→ Search Console reports the result

Publishing is what puts a URL into the sitemap. SCS does not ping Google or Bing, and Google retired its sitemap ping endpoint in 2023 — a sitemap update is a discovery hint, not a notification. See Performance Tracking.

Verify after publishing​

These checks are read-only. Run them from the server, or from any host that can reach the site.

# 1. Is the sitemap reachable, and is it XML?
curl -sSI https://example.com/sitemaps.xml | grep -iE 'HTTP/|content-type|x-robots'

# 2. Is it an index, and which children exist?
curl -sS https://example.com/sitemaps.xml

# 3. Is the published permalink listed?
curl -sS https://example.com/post-sitemap1.xml | grep -F 'https://example.com/your-post/'

# 4. Does robots.txt advertise the sitemap?
curl -sS https://example.com/robots.txt

# 5. Which sitemap settings did WordPress register?
wp option get seopress_xml_sitemap_option_name --format=json

Expected: HTTP 200, content-type: text/xml, an index that lists the child sitemaps, your permalink present, and a Sitemap: line in robots.txt.

tip

Enable the SEOPress option that adds the sitemap to robots.txt (SEO → XML / HTML Sitemap → General). Discovery then works even when nobody submitted the sitemap in Search Console.

What blocks a sitemap​

SymptomLikely causeFix
200, but a post is missingpost is noindex, or its canonical differs from the permalinkclear noindex / custom canonical in SEOPress
404permalinks not flushed, or missing NGINX rewrite ruleswp rewrite flush --hard; add the SEOPress NGINX rules
HTML instead of XMLpage cache or CDN serving a cached HTML pageexclude *.xml and *.xsl from cache and CDN
302 to a login pageCloudflare Access, HTTP auth, or password protection in front of the sitebypass verified bots, or remove the gate for public content
Empty sitemapfeature disabled, or no qualifying published contentenable the XML sitemap in SEOPress
Sitemap fine but nothing rankssite-wide noindex or crawling blockedcheck the WordPress privacy setting and any bot rules
warning

A reachable sitemap is not proof that Google can read the site. A bot gate such as Cloudflare Access in front of the domain redirects every crawler that is not explicitly bypassed, and Google treats that as unreachable. Test the public URL without a logged-in session before assuming the sitemap is being used.

Scope​

  • SCS does not create, write, or upload sitemap XML.
  • SCS does not ping Google or Bing.
  • SCS publishing creates drafts only; sitemap entries follow the publish transition.
  • Indexing status stays manual today: record findings in publishing.index_status, and record search performance in the workspace performance CSV.