<?xml version="1.0" encoding="UTF-8"?>
<!-- 2026-09-01 (refactor/shared-account-status-script, PR #543): every page below had its
     <script> tag for the account-status chip swapped from an inline copy to a single shared
     <script src="/assets/nav-auth.js">, a pure refactor with zero rendered-content or
     behavioral change (proved via a real-browser DOM diff, see the PR body and
     changelog.d/refactor-shared-account-status-script.md). <lastmod> below is intentionally
     NOT bumped for that reason — bumping it would tell crawlers content changed when it
     didn't, defeating the field's own purpose. This comment's presence still moves this
     file's own last-commit date to on-or-after every page it lists, which is what
     tests/unit/web/test_sitemap_lastmod.py's squash-merge-safe staleness guard actually
     checks (commit dates, never the <lastmod> literal) — see that test's module docstring. -->
<!-- 2026-09-02 (fix/sitemap-lastmod-discord-footer): PR #563 added a Discord link to the
     shared footer's Contact/Terms/Privacy row across all 17 pages this sitemap lists —
     a visible content change (unlike #543 above), so every <lastmod> below is bumped to
     the date that footer change landed on main. This is a mechanical fix for the staleness
     guard tests/unit/web/test_sitemap_lastmod.py::test_sitemap_committed_no_earlier_than_
     every_page_it_describes enforces (fails on a full clone; skipped in CI's shallow
     checkout, see that test's own module docstring) — it does not change the underlying
     "page edited -> sitemap bumped" rule, even though this particular edit (one added
     footer link, same on every page) arguably didn't need a fresh crawl per page. -->
<!-- 2026-09-14 (feat/home-tool-links-and-phase-c-copy): two content changes land together.
     (1) The one-language-per-URL conversion rewrote the served body of all 16 bilingual pages
     and put /performance's figures in its HTML — that shipped without a sitemap bump, so every
     <lastmod> below was stale by a full body rewrite. (2) This change adds a "Free tools and
     guides" row to the home page and rewrites its Phase C card. Both are real content changes
     on every page listed here, so every <lastmod> is set to the date they landed. -->
<!-- 2026-09-15 (feat/landing-pricing-link): added a Pricing nav entry to the shared chrome —
     first the home page (both languages), then the seven other page pairs whose static
     <nav class="site-nav"> mirrors the same link list (learn, methodology, tools, the three
     calculator pages and the CSP-vs-CC comparison, each EN + generated 中文). /performance is
     excluded: it was not touched by this change, and keeps its 2026-09-14 <lastmod>. Every
     other <lastmod> below is bumped to the date this landed. -->
<!-- 2026-09-17 (covered-call analyze trim): two real content changes, plus one
     correction of an earlier omission.
     (1) /learn and /methodology (each EN + generated 中文) gain a "Days to expiration
     (DTE)" glossary entry — the one idea from the deleted covered-call teaching block
     that was not already explained anywhere on the site. Those four <lastmod>s move to
     the date this landed.
     (2) / and /zh/ are corrected to 2026-09-16, the date the five-tier CSP Analyze
     change actually rewrote the home page's illustrative table (two new tier rows).
     That change shipped without a sitemap bump, so both entries were stale by a
     visible content change and this file's own staleness guard was failing on them
     before this commit touched anything.
     Every other <lastmod> is deliberately left alone: nothing else on this list
     changed. -->
<!-- 2026-09-19 (account chip renders one language): the shared account-status chip stopped
     shipping twin .en/.zh spans and now renders only the active language. The chip is
     injected by JavaScript, and only for a signed-in visitor, so no crawler has ever seen
     it and nothing in the served body of any page below changed; / and /zh/ and
     /performance are touched only by the removal of two dictionary entries and one
     attribute that nothing reads any more. <lastmod> is therefore deliberately NOT bumped,
     for the same reason as the 2026-09-01 entry above — bumping it would tell crawlers
     content changed when it did not. This comment moves this file's own last-commit date
     to on-or-after every page it lists, which is what the staleness guard checks. -->
<!-- 2026-09-19 (content-versioned asset URLs): every page's reference to a same-origin
     asset it FETCHES (/assets/nav-auth.js, the four woff2 faces, the logo mark) now carries
     `?v=<hash of that file's bytes>`, stamped by web/build/stamp_asset_versions.py. It is a
     URL change only: not one byte of any page's served TEXT changed, and the referenced files
     are identical. It exists because an unversioned asset URL let a deployed fix sit behind a
     four-hour browser cache — a caching property, invisible to a crawler. <lastmod> is
     therefore deliberately NOT bumped, for the same reason as the 2026-09-01 and 2026-09-19
     entries above. This comment moves this file's own last-commit date to on-or-after every
     page it lists, which is what the staleness guard checks. -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://putfinder.com/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/" />
  </url>
  <url>
    <loc>https://putfinder.com/zh/</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/" />
  </url>
  <url>
    <loc>https://putfinder.com/performance</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <!-- /performance serves EN + 中文 from ONE URL via a client-side switch; there is no
         separate /zh/performance (it 404s). Self-referential en + x-default only — no
         fabricated zh-CN alternate. -->
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/performance" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/performance" />
  </url>
  <url>
    <loc>https://putfinder.com/learn</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/learn" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/learn" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/learn" />
  </url>
  <url>
    <loc>https://putfinder.com/zh/learn</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/learn" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/learn" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/learn" />
  </url>
  <url>
    <loc>https://putfinder.com/methodology</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/methodology" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/methodology" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/methodology" />
  </url>
  <url>
    <loc>https://putfinder.com/zh/methodology</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/methodology" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/methodology" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/methodology" />
  </url>
  <url>
    <loc>https://putfinder.com/cash-secured-put-screener</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/cash-secured-put-screener" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/cash-secured-put-screener" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/cash-secured-put-screener" />
  </url>
  <url>
    <loc>https://putfinder.com/zh/cash-secured-put-screener</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/cash-secured-put-screener" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/cash-secured-put-screener" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/cash-secured-put-screener" />
  </url>
  <url>
    <loc>https://putfinder.com/cash-secured-put-calculator</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/cash-secured-put-calculator" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/cash-secured-put-calculator" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/cash-secured-put-calculator" />
  </url>
  <url>
    <loc>https://putfinder.com/zh/cash-secured-put-calculator</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/cash-secured-put-calculator" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/cash-secured-put-calculator" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/cash-secured-put-calculator" />
  </url>
  <url>
    <loc>https://putfinder.com/covered-call-calculator</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/covered-call-calculator" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/covered-call-calculator" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/covered-call-calculator" />
  </url>
  <url>
    <loc>https://putfinder.com/zh/covered-call-calculator</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/covered-call-calculator" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/covered-call-calculator" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/covered-call-calculator" />
  </url>
  <url>
    <loc>https://putfinder.com/cash-secured-put-vs-covered-call</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/cash-secured-put-vs-covered-call" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/cash-secured-put-vs-covered-call" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/cash-secured-put-vs-covered-call" />
  </url>
  <url>
    <loc>https://putfinder.com/zh/cash-secured-put-vs-covered-call</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/cash-secured-put-vs-covered-call" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/cash-secured-put-vs-covered-call" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/cash-secured-put-vs-covered-call" />
  </url>
  <url>
    <loc>https://putfinder.com/tools</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/tools" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/tools" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/tools" />
  </url>
  <url>
    <loc>https://putfinder.com/zh/tools</loc>
    <lastmod>2026-09-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://putfinder.com/tools" />
    <xhtml:link rel="alternate" hreflang="zh-CN" href="https://putfinder.com/zh/tools" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://putfinder.com/tools" />
  </url>
</urlset>
