Before submitting a sitemap to Google Search Console, I opened kgolubic.com/sitemap-0.xml to see what Google would actually index. Every URL pointed to kgolubic-com.pages.dev (the internal Cloudflare Pages domain), not my actual domain.
The source of the problem was SITE.website in src/config.ts. It still had the pages.dev URL from the initial project setup, and since Astro’s sitemap integration pulls the base URL from that value, every generated URL inherited the wrong domain. Two lines to fix:
website: "https://kgolubic.com/",
profile: "https://kgolubic.com/about/",
Committed, pushed, and then sat watching the Cloudflare dashboard not update.
Cloudflare Pages connects to GitHub through a GitHub App. Something in that chain failed silently. I didn’t see any retry attempts, there was no error in the dashboard, and no notification of any kind. The dashboard just kept showing the previous deployment as current. Cloudflare had thrown a 503 a few minutes earlier, so the timing made sense. Whatever fired during that brief instability on their end simply disappeared. There are no delivery logs to inspect, so there is no way to confirm what exactly failed or when.
The “Retry deployment” button in the dashboard looks like the right fix here, but it redeploys the previous commit, not the latest one. To actually trigger a fresh build from the current HEAD, an empty commit does the job:
git commit --allow-empty -m "Trigger deploy"
git push
Sitemap now shows kgolubic.com everywhere it should. Google Search Console setup can proceed.
The failure mode is worth remembering: commit on GitHub, no new deployment on Cloudflare, no error anywhere. The absence of errors is not confirmation that anything worked. When that happens, the empty commit is faster than anything else.