<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- Homepage -->
  <url>
    <loc>https://4thewords.com/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- Features -->
  <url>
    <loc>https://4thewords.com/writing-software</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://4thewords.com/writing-battles</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://4thewords.com/writing-streaks</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://4thewords.com/all-features</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://4thewords.com/goals</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://4thewords.com/writing-stats</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://4thewords.com/multiplayer</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://4thewords.com/game-world</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://4thewords.com/hero-building</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Use Cases -->
  <url>
    <loc>https://4thewords.com/what-is-4thewords</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://4thewords.com/novel-writing</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://4thewords.com/habit-building</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://4thewords.com/train</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://4thewords.com/writing-community</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://4thewords.com/forum-and-friends</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Company / Info -->
  <url>
    <loc>https://4thewords.com/about-us</loc>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://4thewords.com/pricing</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://4thewords.com/our-writers</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://4thewords.com/gifts</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://4thewords.com/community-pool</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <!-- /writefest was listed here but 404s: there is no writefest route in the router and no
       screen for it, so the URL rendered the not-found page while the sitemap advertised it as
       indexable. Commented rather than deleted, since it reads like a seasonal page that may come
       back. Uncomment when the route exists again, and drop the stale link in llms.txt too. -->
  <!--
  <url>
    <loc>https://4thewords.com/writefest</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  -->
  <url>
    <loc>https://4thewords.com/special-events</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Account / Auth -->
  <url>
    <loc>https://4thewords.com/signup</loc>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Chrome extension. LISTED as of the public launch. Three things had to be true before this
       entry could go in, and all three now are: the route resolves in every environment (it stopped
       being flag-gated in d746ea8, 2026-08-10), the route's robots "noindex, nofollow" is gone from
       router.js, and the page's og:image and JSON-LD are in place. The robots removal and this entry
       belong together: if either is ever reverted, revert both in the same change, or the sitemap
       advertises a page that tells crawlers to go away.

       ONE STEP REMAINS, and it is not in this repo's files. VITE_EXTENSION_PAGE is a GitHub Actions
       ENVIRONMENT variable (production, currently false) and it gates the off-page surfaces that
       link here: the four nav entries, the homepage showcase, the announcement bar, and the pricing
       row, table row and FAQ entry. Vite bakes VITE_* in at BUILD time, so flipping the variable
       changes nothing until a build runs again. Flip it, then let a deploy run. A merge carrying
       [skip ci] produces no run at all, which looks like a green merge and deploys nothing, so judge
       the result by pod state rather than by the run's conclusion.

       The in-app surfaces are a SEPARATE, LATER launch: front-end-vue3-vite gates its own extension
       promos behind VITE_EXTENSION_LAUNCH (also false in production). Neither flag covers the other
       repo, and this entry does not depend on that one. -->
  <url>
    <loc>https://4thewords.com/extension</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- Legal & Policy -->
  <url>
    <loc>https://4thewords.com/privacy-policy</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://4thewords.com/terms-of-use</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://4thewords.com/ai-policy</loc>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>

</urlset>
