Skip to content

Main-domain festival_wire sitemap 404s (wp-sitemap-posts-festival_wire-N.xml) — stale cross-site index leak #29

Description

@chubes4

Summary

https://extrachill.com/wp-sitemap-posts-festival_wire-2.xml returns HTTP 404 (42 hits / 14d in the main-site 404 log). This is a forward/news-reactive Festival Wire SEO surface leaking crawl budget and dropping a sitemap Google still has indexed.

Related to but distinct from #2 (which is about festival-wire canonical URL indexing). This issue is specifically the sitemap sub-file 404 on the main domain.

Verified root cause

The festival_wire post type does not exist on the main site (blog 1) — it is registered by extrachill-news-wire, which is per-site activated only on the WIRE subsite (blog 11, wire.extrachill.com).

Confirmed:

  • wp plugin list --status=active on blog 1 → no extrachill-news-wire.
  • wp plugin list --status=active --url=wire.extrachill.comextrachill-news-wire active.
  • extrachill-news-wire/includes/festival-wire-post-type.php registers the CPT on init — only where the plugin loads (blog 11).
  • SELECT COUNT(*) FROM c8c_posts WHERE post_type='festival_wire' (blog 1) = 0; c8c_11_posts has 3,935 published festival_wire posts.

Live checks:

URL Status
https://extrachill.com/wp-sitemap.xml 200
https://extrachill.com/wp-sitemap-posts-festival_wire-1.xml 404
https://extrachill.com/wp-sitemap-posts-festival_wire-2.xml 404
https://wire.extrachill.com/wp-sitemap.xml 200
https://wire.extrachill.com/wp-sitemap-posts-festival_wire-1.xml 200
https://wire.extrachill.com/wp-sitemap-posts-festival_wire-2.xml 200

So both main-domain festival_wire sitemap pages 404 (not just page 2) — because the CPT simply doesn't exist on blog 1. Google retains these main-domain sitemap URLs from a previous era when festival_wire content lived on / was sitemapped from the main domain (the same legacy that issue #2 and extrachill-multisite/inc/core/legacy-path-redirects.php already address for /festival-wire/* content paths).

Existing partial mitigation (content paths only)

extrachill-multisite/inc/core/legacy-path-redirects.php already 301s legacy /festival-wire/* content paths to wire (with slug validation against blog 11). It does NOT cover the wp-sitemap-posts-festival_wire-*.xml URLs — those fall through to a 404 because the template_redirect regex only matches ^/festival-wire(/|$).

Recommended fix (pick one — preference order)

  1. Preferred: 301 the stale main-domain festival_wire sitemap URLs to their wire equivalents. Add a redirect for ^/wp-sitemap-posts-festival_wire-(\d+)\.xml$https://wire.extrachill.com/wp-sitemap-posts-festival_wire-$1.xml. This preserves whatever residual sitemap authority Google still associates with the main domain and points the crawler at the live sitemap. Cleanest home is the existing legacy-path-redirects handler in extrachill-multisite (extend the regex), OR an extrachill seo redirects add rule if regex redirects are supported there. Verify page-N mapping is 1:1 (wire currently has festival_wire pages 1 and 2, matching what the main domain is asked for).
  2. Alternative: let it 404 and rely on de-indexing. Since the CPT genuinely doesn't exist on main, a 404 is technically "correct" and Google will eventually drop the URLs. Lower effort, but wastes the 42 hits/14d of residual crawl interest and provides no forwarding signal.
  3. Not recommended: register a cross-site festival_wire sitemap on the main domain. extrachill-seo already ships a custom sitemap provider (EC_Sitemaps_Custom_Provider, extrachill_seo_sitemap_urls filter) — but synthesizing 3,935 cross-site wire URLs into the main sitemap duplicates canonical content across domains and would worsen the canonical-indexing problem tracked in Investigate festival-wire posts canonical URL indexing issue #2. Avoid.

Suggested next step

Implement option 1 as a redirect (regex) in extrachill-multisite's legacy-path-redirects handler, mirroring the existing /festival-wire/* slug-forwarding logic. Confirm the wire sitemap page count stays in sync (if wire grows to page 3+, the redirect should pass $1 through generically, which it does).

cc #2 (festival-wire canonical indexing — same legacy root, different symptom).


Filed by Extra Chill Bot from a 14-day main-site 404 audit. No code changed; production not touched.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions