Changelog
Generated from CHANGELOG.md in the project repository. Never maintained twice.
0.5.0
9 September 2026
- changedPages carrying
<meta name="robots" content="noindex">in their<head>are dropped from the sitemap — Search Console reports submittednoindexURLs as errors. Opt out withsitemap.excludeNoindex: false. - changed
sitemap.i18ndefaults to Astro's owni18nconfig, so hreflang alternates and anx-defaultlink now appear on multilingual sites that never configuredsitemap.i18n. - changedBuilt-in priority and changefreq defaults ignore locale prefixes:
/de/is scored like/instead of one level below it, and/de/blog/x/like/blog/x/. - changedA crawler with its own
robots.txtgroup now also receives the globalallow/disallow/crawlDelayrules. Per RFC 9309 a bot obeys only its most specific matching group, so aDisallow: /admin/underUser-agent: *previously did not apply to Googlebot at all. Blocked bots keep a bareDisallow: /— a globalAllow:must not punch a hole into a bot that was deliberately blocked outright. - changedThe
Sitemap:line inrobots.txtpoints at the file that was actually written —sitemap-index.xmlin index mode, oroutput.filename. - added
rssis a top-level option and is written independently of the sitemap, including withsitemap: false. - addedPer-item
guidandguidIsPermaLinkfor feeds keyed by UUID or URN. - added
sitemap.localeAgnosticRulesand a per-ruleallLocalesflag, so a singlepriorityorchangefreqrule can cover every translation — or opt back out to target one locale. - added
sitemap.excludeNoindexto keepnoindexpages in the sitemap. - addedAudit rules
security/expired,security/invalid-expiresandsecurity/contact-not-a-urifor RFC 9116 conformance. - fixedA pathname without a trailing slash no longer crashes the build with
EISDIRwhen it maps to a directory on disk; itsindex.htmlis read instead. - fixedError-page exclusion is anchored to a whole path segment, so an article like
/blog/404-error-pages-guide/stays in the sitemap. - fixed
data-sitemap-changefreqanddata-sitemap-priorityare read from every JSON-LD block, not only the first — layouts commonly emit anOrganizationblock ahead of the page's ownArticle. - fixedA configured priority of
0.55is no longer rounded to0.6. - fixedRSS: root-relative and bare item links are joined onto the site URL without dropping or doubling the slash.
- fixedRSS: an unparseable
pubDateomits the<pubDate>element instead of emittingInvalid Date, which breaks every feed validator. - deprecated
sitemap.rss— use the top-levelrssoption. The old placement still works and is read as a fallback. - performanceEach page's HTML is opened and read once instead of twice, with bounded concurrency, rather than strictly sequentially. Noticeable on sites with thousands of pages.
- internal
peerDependencies: { astro: ">=6.0.0" }added —peerDependenciesMetahad no effect without it. - internal
npm ciworks again; the lockfile carried a stale nested@emnapi/wasi-threads. - internaldevDependencies on latest: TypeScript 7, vitest 5,
@types/node26.5. Resolves all four known dev-dependency advisories. TypeScript 7 no longer auto-includes@types/*, hence the explicit"types": ["node"]intsconfig.json.
0.4.1
earlier
- internalFull bot registry and preset system ported from
@casoon/astro-crawler-policy(seoOnly,citationFriendly,openToAi,blockTraining,lockdown). - internalPer-page
changefreq/priorityviadata-sitemap-*attributes on a JSON-LD script tag. - internalMeta-refresh redirect pages excluded from the sitemap.
0.3.0
earlier
- internalRSS 2.0 feed support extracted from
@casoon/astro-sitemap, includingcreateRssRoute.
0.2.0
earlier
- internalUnified audit types,
llms.sources, XML escaping, base-aware robots URL, sitemap deduplication. - internalNode.js ≥ 22.12.0.