<?xml version="1.0" encoding="UTF-8"?>
<!--
  Exactly the URLs that are their own canonical. Submitting a URL here tells
  Google we want it indexed under that URL, so anything whose rel=canonical
  names a *different* URL must stay out: the two signals contradict each other,
  Google follows the canonical, and Search Console reports the sitemap entry as
  "Duplicate, Google chose different canonical than user".

  Deliberately absent, and not an oversight:
    /welcome, /events, /real-estate, /aesthetics, /contractors
      Hosting serves byte-identical landing bytes at all five (nothing in web/
      reads the vertical), and web/includes/i18n.js canonicalises them to `/`.
      They stay live as ad-campaign entry points — meta-pixel.js still maps
      them for attribution — they are just not separate index entries. If a
      vertical ever gets its own copy, give it a self-canonical and add it back.
    /landing.html, /index.html
      Same document as `/` and the app shell respectively; both reachable, both
      canonicalised elsewhere.
    /landing-demo.html
      Ships `noindex`.
    Legal/policy pages
      web/includes/policy-i18n.js redirects between the en/he mirrors on the
      client, so their canonical set is not stable enough to submit yet.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url><loc>https://esek.io/</loc></url>
  <url><loc>https://esek.io/about.html</loc></url>
  <url><loc>https://esek.io/pricing.html</loc></url>
  <url><loc>https://esek.io/services.html</loc></url>
  <url><loc>https://esek.io/shops.html</loc></url>
  <url><loc>https://esek.io/faq.html</loc></url>
</urlset>
