<?xml version="1.0" encoding="UTF-8"?>
<!--
  Hand-maintained. 9 static pages, no blog or CMS, so @astrojs/sitemap would add
  a dependency and a URL-format variable (build.format is "preserve", which emits
  .html files) for no benefit. If the site grows past ~20 pages, switch to the
  integration and diff its output against dist/ before trusting it.

  Public URLs match what Cloudflare Pages Pretty URLs actually serve as 200:
  /about.html → /about, /services/index.html → /services/. The homepage is "/".
  Internal links, canonicals, and this sitemap all use those 200 URLs.
  priority and changefreq are deliberately omitted — Google ignores both.
  Only bump a lastmod when that page's content actually changes. Never stamp
  them all with the build date.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.ksengineering.com.my/</loc>
    <lastmod>2026-08-18</lastmod>
  </url>
  <url>
    <loc>https://www.ksengineering.com.my/services/</loc>
    <lastmod>2026-08-18</lastmod>
  </url>
  <url>
    <loc>https://www.ksengineering.com.my/services/engineering</loc>
    <lastmod>2026-08-18</lastmod>
  </url>
  <url>
    <loc>https://www.ksengineering.com.my/services/maintenance</loc>
    <lastmod>2026-08-18</lastmod>
  </url>
  <url>
    <loc>https://www.ksengineering.com.my/services/consultation</loc>
    <lastmod>2026-08-18</lastmod>
  </url>
  <url>
    <loc>https://www.ksengineering.com.my/systems</loc>
    <lastmod>2026-08-18</lastmod>
  </url>
  <url>
    <loc>https://www.ksengineering.com.my/projects</loc>
    <lastmod>2026-08-18</lastmod>
  </url>
  <url>
    <loc>https://www.ksengineering.com.my/about</loc>
    <lastmod>2026-08-18</lastmod>
  </url>
  <url>
    <loc>https://www.ksengineering.com.my/contact</loc>
    <lastmod>2026-08-18</lastmod>
  </url>
</urlset>
