<?xml version="1.0" encoding="UTF-8"?>
<!--
  Homezon — bundled static sitemap (build-time URLs only).

  Search engines should prefer `/sitemap.xml` (Pages Function that
  enumerates active posts dynamically), but this file is the
  durable, build-shipped fallback. It guarantees the landing
  surfaces stay indexable even if the Function is being redeployed
  or hits a transient Firestore-REST error.

  Why both URLs? Cloudflare Pages serves static files first, so
  `/sitemap.xml` is intercepted by the Pages Function (when
  deployed) and falls back to nothing if absent. Shipping a
  separately-named static file gives crawlers a second entry that
  never depends on the Function being live.

  hreflang alternates are emitted per URL using xhtml:link entries
  so Google links the three locale variants together (en / ru / uz).
-->
<urlset
  xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">

  <!-- Root landing — Telegram users get the mini app, others get
       welcome.html via the inline detector. -->
  <url>
    <loc>https://homezon.palma-dacha.com/</loc>
    <lastmod>2026-05-20</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://homezon.palma-dacha.com/" />
    <xhtml:link rel="alternate" hreflang="ru" href="https://homezon.palma-dacha.com/?lang=ru" />
    <xhtml:link rel="alternate" hreflang="uz" href="https://homezon.palma-dacha.com/?lang=uz" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://homezon.palma-dacha.com/" />
  </url>

  <!-- Out-of-Telegram welcome / brand landing. -->
  <url>
    <loc>https://homezon.palma-dacha.com/welcome.html</loc>
    <lastmod>2026-05-20</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
    <xhtml:link rel="alternate" hreflang="en" href="https://homezon.palma-dacha.com/welcome.html" />
    <xhtml:link rel="alternate" hreflang="ru" href="https://homezon.palma-dacha.com/welcome.html?lang=ru" />
    <xhtml:link rel="alternate" hreflang="uz" href="https://homezon.palma-dacha.com/welcome.html?lang=uz" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://homezon.palma-dacha.com/welcome.html" />
  </url>

  <!-- Category landing routes. These are SPA deep links — the mini
       app's router resolves `?category=…` into the matching feed.
       Listed here so the category keywords (house, apartment, dacha,
       office, services) accumulate authority on the Homezon domain. -->
  <url>
    <loc>https://homezon.palma-dacha.com/?category=house</loc>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://homezon.palma-dacha.com/?category=apartment</loc>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://homezon.palma-dacha.com/?category=dacha</loc>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://homezon.palma-dacha.com/?category=office</loc>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://homezon.palma-dacha.com/?category=services</loc>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Premium + Top-20 pseudo-categories. -->
  <url>
    <loc>https://homezon.palma-dacha.com/?category=premium</loc>
    <changefreq>daily</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://homezon.palma-dacha.com/?category=top20</loc>
    <changefreq>daily</changefreq>
    <priority>0.7</priority>
  </url>

</urlset>
