<?xml version="1.0" encoding="UTF-8"?>
<!--
  KODA Carpet Cleaning sitemap.
  Updated 2026-08-05 (SEO build): 6 URLs -> 17.
  Updated 2026-09-10: added /randys, the Randy's Carpet Care handover page.
  Updated 2026-09-16 (new-site cutover): lastmod synced to real file dates.
  Keep lastmod current when a
  page's content genuinely changes; bumping every date on every deploy trains
  Google to ignore the field.
  Submit this at cutover via Search Console once the domain is verified.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- Home -->
  <url>
    <loc>https://www.kodacarpetcleaning.com/</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- Core services -->
  <url>
    <loc>https://www.kodacarpetcleaning.com/carpet</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/rug-cleaning</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/upholstery</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/pet-odor-removal</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/carpet-repair</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/emergency</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/commercial-cleaning</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Hard floors: one page per surface. The old /floor-types hub was
       scrapped 2026-09-15 and 301s to the home page service rail. -->
  <url>
    <loc>https://www.kodacarpetcleaning.com/laminate-floor-cleaning</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/concrete-floor-cleaning</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/rubber-gym-floor-cleaning</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/tile-and-grout-cleaning</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/hardwood-floor-cleaning</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/lvp-lvt-cleaning</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/vct-floor-cleaning</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- City landing pages -->
  <url>
    <loc>https://www.kodacarpetcleaning.com/holland</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/grand-rapids</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/saugatuck</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Trust pages -->
  <url>
    <loc>https://www.kodacarpetcleaning.com/zeeland</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/grand-haven</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/hudsonville</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/muskegon</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/south-haven</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/fennville</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/hamilton</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/about</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/contact</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Acquired brand: Randy's Carpet Care. High priority on purpose — people
       still search Randy's name and this page is the only straight answer. -->
  <url>
    <loc>https://www.kodacarpetcleaning.com/randys</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Legal -->
  <url>
    <loc>https://www.kodacarpetcleaning.com/privacy-policy</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://www.kodacarpetcleaning.com/terms-of-service</loc>
    <lastmod>2026-09-16</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <!-- The SMS program page. Indexable on purpose: A2P 10DLC vetting cannot see
       the consent checkbox (the booking wizard is JavaScript, their crawler is
       not), so this is the page the campaign registration points at as its
       public evidence. Take it out of the sitemap and the registration loses
       the URL it rests on. -->
  <url>
    <loc>https://www.kodacarpetcleaning.com/text-messages</loc>
    <lastmod>2026-09-17</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

</urlset>
