<?xml version="1.0" encoding="UTF-8"?>
<!--
    Public pages only. /hero-options is absent on purpose: it is an internal comparison page
    carrying its own noindex, and listing it here would invite exactly the crawl the noindex
    is there to prevent.

    URLs use the apex because that is the canonical host (see CanonicalHost in appsettings.json).
    www 301s here, so listing www would hand crawlers a redirect on every entry.

    No <lastmod>, <changefreq> or <priority>, and that is deliberate rather than lazy. Google
    ignores changefreq and priority outright. It uses lastmod only where a site has proven the
    dates reliable, and a hand-maintained date on a file nobody remembers to touch becomes wrong
    within a release or two — at which point the whole file is discounted. Bare <loc> entries are
    honest and cannot rot.

    Static rather than generated: four routes exist and they change rarely, so an endpoint would
    be machinery for its own sake. The trade is that this file does not update itself — add new
    public pages here when you add them.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc>https://codercraft.com/</loc>
    </url>
    <url>
        <loc>https://codercraft.com/portfolio</loc>
    </url>
    <url>
        <loc>https://codercraft.com/contact</loc>
    </url>
</urlset>
