<?xml version="1.0" encoding="UTF-8"?>
<!--
  EVERY <loc> IS airplaneslive.app, AND EVERY ONE RETURNS 200 WITH NO REDIRECT.
  Both halves of that matter. A sitemap is a list of URLs you want indexed as
  given, so a <loc> that 301s is not a hint, it is a contradiction — Search
  Console reports it as "Page with redirect" and indexes nothing.

  That rules out listing anything on airplanes.hughesit.us: as of 2026-08-29
  its HTTPS landing vhost is a blanket `return 301 https://airplaneslive.app`,
  so every path on it redirects. (Its api. and tiles. subdomains are separate
  vhosts and still serve normally — shipped app binaries are unaffected.)

  This file is served at both /sitemap.xml hostnames, and the robots.txt
  Sitemap line on each points here, so there is one sitemap rather than two
  competing copies.

  URLs are extensionless to match each page's rel=canonical. nginx's
  `try_files $uri $uri.html` also answers /privacy.html and /terms.html with
  identical bytes; those forms are deliberately absent here and the canonical
  tags fold them in.

  No <priority>: Google and Bing both ignore it, and the values previously
  here were actively misleading (the marketing home page sat at 0.5 while
  /jamming was 1.0). <changefreq> is kept only where it is true.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- Marketing and legal pages. -->
  <url>
    <loc>https://airplaneslive.app/</loc>
    <lastmod>2026-08-29</lastmod>
    <changefreq>monthly</changefreq>
  </url>
  <url>
    <loc>https://airplaneslive.app/privacy</loc>
    <lastmod>2026-08-29</lastmod>
    <changefreq>yearly</changefreq>
  </url>
  <url>
    <loc>https://airplaneslive.app/terms</loc>
    <lastmod>2026-08-29</lastmod>
    <changefreq>yearly</changefreq>
  </url>

  <!-- The two web apps, listed on the brand domain because that is where they
       now answer 200. Their own rel=canonical and og:url were updated to match
       these entries on 2026-08-29, so page and sitemap now agree. -->
  <url>
    <loc>https://airplaneslive.app/jamming/</loc>
    <changefreq>hourly</changefreq>
  </url>
  <url>
    <loc>https://airplaneslive.app/globe/</loc>
    <changefreq>hourly</changefreq>
  </url>

  <!-- Content pages and blog, added 2026-08-29. No <priority>: Google and Bing
       both ignore it, and a wrong relative value is worse than none. -->
  <url><loc>https://airplaneslive.app/features</loc><lastmod>2026-08-29</lastmod><changefreq>monthly</changefreq></url>
  <url><loc>https://airplaneslive.app/unfiltered</loc><lastmod>2026-08-29</lastmod><changefreq>monthly</changefreq></url>
  <url><loc>https://airplaneslive.app/faq</loc><lastmod>2026-08-29</lastmod><changefreq>monthly</changefreq></url>
  <url><loc>https://airplaneslive.app/blog/</loc><lastmod>2026-08-29</lastmod><changefreq>weekly</changefreq></url>
  <url><loc>https://airplaneslive.app/blog/how-ads-b-works</loc><lastmod>2026-08-19</lastmod></url>
  <url><loc>https://airplaneslive.app/blog/what-squawk-7700-means</loc><lastmod>2026-08-22</lastmod></url>
  <url><loc>https://airplaneslive.app/blog/how-to-read-a-vfr-sectional</loc><lastmod>2026-08-26</lastmod></url>
  <url><loc>https://airplaneslive.app/blog/what-gps-jamming-looks-like-from-the-air</loc><lastmod>2026-08-29</lastmod></url>
  <url><loc>https://airplaneslive.app/blog/build-your-own-adsb-feeder</loc><lastmod>2026-08-29</lastmod></url>
  <!-- Airport pages and the geolocation page, added 2026-08-29. The airport
       pages carry a live movements board refreshed in-browser, so they change
       far more often than the prose pages above. -->
  <url><loc>https://airplaneslive.app/near-me</loc><lastmod>2026-08-29</lastmod><changefreq>monthly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/</loc><lastmod>2026-08-29</lastmod><changefreq>weekly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/cyow</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/cyul</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/cyvr</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/cyyc</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/cyyz</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/eddf</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/eddm</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/egcc</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/egkk</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/egll</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/eham</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/eidw</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/ekch</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/katl</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kaus</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kbna</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kbos</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kbwi</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kclt</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kdca</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kden</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kdfw</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kdtw</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kewr</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kfll</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kiad</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kiah</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kjfk</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/klas</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/klax</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/klga</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kmco</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kmdw</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kmem</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kmia</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kmsp</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kord</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kpdx</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kphl</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kphx</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/ksan</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/ksdf</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/ksea</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/ksfo</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/kslc</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/ktpa</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/lebl</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/lemd</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/lfpg</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/lirf</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/lszh</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/ltfm</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/mmmx</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/nzaa</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/omdb</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/othh</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/panc</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/phnl</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/rctp</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/rjaa</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/rjtt</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/rksi</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/sbgr</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/tjsj</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/vhhh</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/vidp</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/vtbs</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/wsss</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/ybbn</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/ymml</loc><changefreq>hourly</changefreq></url>
  <url><loc>https://airplaneslive.app/airports/yssy</loc><changefreq>hourly</changefreq></url>
</urlset>
