<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:news="http://www.google.com/schemas/sitemap-news/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml"
        xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
        xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">

  <!-- Every URL below is a route this repo actually builds, verified against dist/ after a
       production build. Paths use their RESOLVED trailing-slash form: /blog, /privacy and
       /terms each 301 to the slash form, so the bare form adds a redirect hop per crawl.

       REMOVED: the service, location and industry routes (/general-liability,
       /riggers-liability, /equipment-coverage, /industries/*, /locations/*, /resources) do not
       exist - they returned the homepage through the Netlify catch-all, so declaring them was a
       soft-404 and crawl-budget cost. Re-add each as it is built.

       CORRECTED: the previous blog entries used slugs that do not exist (e.g.
       /blog/crane-insurance-requirements-by-state); the real slug is
       /blog/crane-insurance-requirements-by-state-complete-2025-guide. Wrong slugs hit the
       catch-all and were indistinguishable from missing pages. All six posts are real.

       /test/ is deliberately excluded: it is a 336-byte Astro scaffold stub, not content. -->

  <!-- Homepage -->
  <url>
    <loc>https://crane-insurance.com/</loc>
    <lastmod>2025-08-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- Blog index -->
  <url>
    <loc>https://crane-insurance.com/blog/</loc>
    <lastmod>2025-08-08T00:00:00+00:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://crane-insurance.com/blog/crane-insurance-basics-2025/</loc>
    <lastmod>2025-08-08T00:00:00+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <url>
    <loc>https://crane-insurance.com/blog/crane-insurance-claims-step-by-step-guide/</loc>
    <lastmod>2025-08-08T00:00:00+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <url>
    <loc>https://crane-insurance.com/blog/crane-insurance-requirements-by-state-complete-2025-guide/</loc>
    <lastmod>2025-08-08T00:00:00+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <url>
    <loc>https://crane-insurance.com/blog/crane-overload-insurance-terminology-danger/</loc>
    <lastmod>2025-08-08T00:00:00+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <url>
    <loc>https://crane-insurance.com/blog/osha-crane-regulations-2025-compliance-insurance-requirements/</loc>
    <lastmod>2025-08-08T00:00:00+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <url>
    <loc>https://crane-insurance.com/blog/riggers-liability-insurance-complete-coverage-guide/</loc>
    <lastmod>2025-08-08T00:00:00+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <!-- Privacy policy -->
  <url>
    <loc>https://crane-insurance.com/privacy/</loc>
    <lastmod>2025-08-08T00:00:00+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <!-- Terms of service -->
  <url>
    <loc>https://crane-insurance.com/terms/</loc>
    <lastmod>2025-08-08T00:00:00+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

</urlset>
