<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://novandri.com</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://novandri.com/articles</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://novandri.com/projects</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/about</loc>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://novandri.com/articles/ai-crawlers-are-not-googlebot-governing-crawlers-you-do-not-control</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/cache-control-is-a-contract-not-a-suggestion</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/certificate-transparency-what-the-public-logs-prove</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/chinchilla-and-the-scaling-laws-why-bigger-stopped-being-the-rule</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/data-centre-electricity-reading-the-iea-forecasts-honestly</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/how-crawlers-actually-fetch-pages-protocol-limits-and-caching</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/llms-txt-robots-txt-and-ietf-drafts-sorting-ai-file-formats-by-evidence</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/measuring-geo-what-you-can-actually-count</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/open-source-is-a-license-term-not-a-vibe</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/robots-txt-is-a-parsing-specification-the-rules-your-crawler-follows</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/simpsons-paradox-why-a-single-correlation-can-reverse-its-sign</loc>
<lastmod>2026-11-14T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/ai-search-and-technical-seo-what-website-owners-should-do</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/canonical-tags-and-duplicate-urls-signals-not-commands</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/cdn-caching-and-googlebot-avoid-origin-overload</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/core-web-vitals-diagnose-lcp-inp-cls</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/crawl-budget-when-it-matters-and-how-to-diagnose-it</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/discovered-crawled-rendered-indexed-why-stages-differ</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/dns-for-seo-how-domain-resolution-works</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/ecommerce-technical-seo-product-urls-faceted-navigation</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/google-search-console-for-technical-seo-a-diagnostic-workflow</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/how-googlebot-discovers-and-crawls-pages</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/hreflang-for-international-seo-build-valid-language-clusters</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/http-status-codes-for-seo-diagnose-200-redirects-404-5xx</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/https-tls-and-seo-diagnose-certificates-and-redirects</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/javascript-seo-ssr-csr-ssg-isr</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/langchain-to-langgraph</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/mobile-first-indexing-check-content-and-rendering-parity</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/raw-html-vs-rendered-dom-what-can-a-crawler-read</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/robots-txt-vs-noindex-vs-sitemap</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/seo-observability-turn-logs-and-checks-into-useful-alerts</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/seo-regression-tests-in-cicd-catch-errors-before-release</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/seo-url-structure-normalize-hostnames-paths-parameters</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/server-logs-for-seo-see-what-googlebot-requests</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/structured-data-and-schema-org-what-it-can-and-cannot-do</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/technical-seo-at-scale-url-inventory-capacity-observability</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/technical-seo-audit-follows-request-path</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/technical-seo-engineering-from-web-request-to-search-index</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/technical-seo-nextjs-headless-cms</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/three-technical-seo-bugs-diagnosed-symptom-to-root-cause</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/web-performance-from-dns-to-browser-find-the-slow-layer</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/web-server-vs-application-server-where-seo-errors-begin</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/website-migration-seo-infrastructure-checklist-before-and-after-launch</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/website-uptime-5xx-errors-and-crawl-reliability</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/what-happens-when-a-crawler-requests-a-url</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/wordpress-technical-seo-from-permalink-to-html-response</loc>
<lastmod>2026-11-13T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/rag-explained</loc>
<lastmod>2026-11-10T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://novandri.com/articles/how-to-start-learning-ai</loc>
<lastmod>2026-11-08T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
