A headless WordPress page is eligible for discovery only when CMS-to-rendered-page parity holds: the published CMS fields, the rendered public HTML, the canonical URL, a 200 response and the sitemap entry describe the same page. These checks record release evidence. They do not guarantee citation, ranking, traffic, or placement in ChatGPT, Google or Bing.
Method
After each WordPress-to-Astro or headless publish, compare the CMS record with the live HTML for one URL at a time. Start from the canonical public URL. Do not treat a CMS preview, a local build, or a cached CDN copy as the release artifact unless that is the URL you intend crawlers to use.
Record the CMS field values, the rendered text, the HTTP status, the canonical tag, and the sitemap loc / lastmod in the same note. If any of those disagree, the page is not ready to treat as an indexable public source. Related delivery context lives on the
WordPress service page
and the
WordPress AEO source.
Release checks
| Check | Pass | Fail |
|---|---|---|
| CMS title | The public H1 matches the published CMS title. | The rendered heading still shows a draft, previous title, or a fallback route label. |
| CMS body parity | Visible body copy on the rendered page matches the published CMS fields used for that URL. | A CMS edit is saved but the public page still serves the previous body. |
| Media and alt text | Required images resolve and alt text matches the CMS values intended for that page. | Broken image URLs or empty/wrong alt text remain after publish. |
| Canonical URL | The HTML canonical equals the intended public URL, including trailing-slash convention. | The page self-canonicalises to a preview, query, or alternate host. |
| HTTP 200 | A GET to the canonical URL returns 200. | The URL 301/302 loops, 404s, or stays behind authentication. |
| Public HTML | The useful answer is present in the first HTML response, not only after a private login or empty client shell. | View-source shows a blank root and no indexable text. |
| Indexability | robots meta and headers allow indexing on the public URL. | noindex, draft, or staging headers remain on the live host. |
| Sitemap loc | The canonical URL appears once in the public sitemap. | The sitemap lists a preview URL, omits the page, or lists a duplicate variant. |
| Sitemap lastmod | lastmod is present only when a real source or content date exists, and it moves when that source changes. | lastmod is missing after a real publish, or is invented from filesystem mtime. |
| Visible structured data | Any JSON-LD names, URLs and descriptions match text a person can read on the same page. | Schema claims a service, date or URL that the HTML does not show. |
| Internal destinations | In-page links to WordPress and AEO service URLs resolve to their canonical public pages. | Release notes point at 404s or temporary preview hosts. |
| Leftover variants | Old query, pagination and preview URLs do not remain as competing public copies. | A search engine can still discover an older HTML copy with different text. |
What this cannot prove
Passing these checks cannot prove that Google, Bing or ChatGPT has crawled the URL, stored it, cited it, or sent traffic. It cannot prove crawl budget, ranking, generative-answer inclusion, or lead volume. It also cannot prove that a future CMS edit will stay in parity until the same checks are run again.
Sources
Record
Author and reviewer: The Dot Dev. First published 23 August 2026. Review when the cited publisher guidance changes.