---
title: "Releases · Nuxt SEO"
canonical_url: "https://nuxtseo.com/releases"
last_updated: "2026-05-11T10:29:29.098Z"
meta:
  description: "Nuxt SEO is a collection of hand-crafted Nuxt Modules to help you rank higher in search engines."
  "og:description": "Nuxt SEO is a collection of hand-crafted Nuxt Modules to help you rank higher in search engines."
  "og:title": "Releases · Nuxt SEO"
---

Nuxt SEO on GitHub

# **Nuxt SEO Releases**

See what has been shipping recently.

Last fetched just now. Updated every 24 hours.

**Major releases only**

- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)3 days agov1.3.2** Latest **### 🐞 Bug Fixes
  - Honor markdown header - by @divine in [**~~https://github.com/harlan-zw/nuxt-ai-ready/issues/26~~**](https://github.com/harlan-zw/nuxt-ai-ready/issues/26) [`**(0e4c5)**`](https://github.com/harlan-zw/nuxt-ai-ready/commit/0e4c51a) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-ai-ready/compare/v1.3.1...v1.3.2)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)3 days agov1.3.1 ### 🐞 Bug Fixes
  - Broken middleware - by @harlan-zw [`**(22f40)**`](https://github.com/harlan-zw/nuxt-ai-ready/commit/22f404e) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-ai-ready/compare/v1.3.0...v1.3.1)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last weekv6.5.0** Latest **### 🚀 Features
  - **nuxt-ui**: Color mode aware token resolution via `**data-theme**` - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/598~~**](https://github.com/nuxt-modules/og-image/issues/598) [`**(82cec)**`](https://github.com/nuxt-modules/og-image/commit/82cec81e) ### 🐞 Bug Fixes
  - **fonts**:
    - Skip fontaine fallbacks - by @harlan-zw [`**(aa330)**`](https://github.com/nuxt-modules/og-image/commit/aa33012c)
  - **takumi**:
    - Treat single-entry variable fonts as axis-driven (defensive) - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/599~~**](https://github.com/nuxt-modules/og-image/issues/599) [`**(c053a)**`](https://github.com/nuxt-modules/og-image/commit/c053a795)
    - Keep variable WOFF2 over per-weight static fallback - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/600~~**](https://github.com/nuxt-modules/og-image/issues/600) [`**(31f3b)**`](https://github.com/nuxt-modules/og-image/commit/31f3bb7c) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.4.11...v6.5.0)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last weekv6.4.11 ### 🐞 Bug Fixes
  - Resolve configured local fonts for OG images - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/597~~**](https://github.com/nuxt-modules/og-image/issues/597) [`**(9d1cb)**`](https://github.com/nuxt-modules/og-image/commit/9d1cbdd2) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.4.10...v6.4.11)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last weekv6.4.10 ### 🐞 Bug Fixes
  - More helpful font warnings - by @harlan-zw [`**(78ca9)**`](https://github.com/nuxt-modules/og-image/commit/78ca997b)
  - Resolve Cloudflare runtime og image secret - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/596~~**](https://github.com/nuxt-modules/og-image/issues/596) [`**(0a6f4)**`](https://github.com/nuxt-modules/og-image/commit/0a6f4084) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.4.9...v6.4.10)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last weekv6.4.9 ### 🐞 Bug Fixes
  - Runtime secret override via NUXT_OG_IMAGE_SECRET - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/593~~**](https://github.com/nuxt-modules/og-image/issues/593) [`**(611af)**`](https://github.com/nuxt-modules/og-image/commit/611af827)
  - Harden takumi WASM lock and expand Server-Timing instrumentation - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/592~~**](https://github.com/nuxt-modules/og-image/issues/592) [`**(94fb6)**`](https://github.com/nuxt-modules/og-image/commit/94fb65df)
  - **security**: Harden SSRF guard with redirect validation and IPv6 coverage - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/594~~**](https://github.com/nuxt-modules/og-image/issues/594) [`**(79db6)**`](https://github.com/nuxt-modules/og-image/commit/79db60f1) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.4.8...v6.4.9)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)last weekv8.0.15** Latest **### 🏎 Performance
  - Share resolved-URL cache across sitemap chunks - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/612~~**](https://github.com/nuxt-modules/sitemap/issues/612) [`**(b131f)**`](https://github.com/nuxt-modules/sitemap/commit/b131fa4) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.14...v8.0.15)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)2 weeks agov5.0.10** Latest **### 🐞 Bug Fixes
  - Filter non-own rule messages from markdown processor - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/88~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/88) [`**(b443f)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/b443ff3) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v5.0.9...v5.0.10)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)2 weeks agov8.0.14 ### 🐞 Bug Fixes
  - Escape all user-provided XML fields - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/610~~**](https://github.com/nuxt-modules/sitemap/issues/610) [`**(33398)**`](https://github.com/nuxt-modules/sitemap/commit/33398bc) ### 🏎 Performance
  - Split static sitemap config into virtual module - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/608~~**](https://github.com/nuxt-modules/sitemap/issues/608) [`**(9ef0a)**`](https://github.com/nuxt-modules/sitemap/commit/9ef0a8e)
  - Lazy load `**fast-xml-parser**` in parseSitemapIndex - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/609~~**](https://github.com/nuxt-modules/sitemap/issues/609) [`**(a3ee4)**`](https://github.com/nuxt-modules/sitemap/commit/a3ee4a6) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.13...v8.0.14)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)2 weeks agov1.3.0 ### 🚀 Features
  - I18n integration - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-ai-ready/issues/24~~**](https://github.com/harlan-zw/nuxt-ai-ready/issues/24) [`**(a32b2)**`](https://github.com/harlan-zw/nuxt-ai-ready/commit/a32b2c7)
  - @nuxt/content integration - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-ai-ready/issues/25~~**](https://github.com/harlan-zw/nuxt-ai-ready/issues/25) [`**(10f42)**`](https://github.com/harlan-zw/nuxt-ai-ready/commit/10f427f) ### 🐞 Bug Fixes
  - Redirect to .md on Accept negotiation; document CDN limitation - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-ai-ready/issues/23~~**](https://github.com/harlan-zw/nuxt-ai-ready/issues/23) [`**(9ba23)**`](https://github.com/harlan-zw/nuxt-ai-ready/commit/9ba2343) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-ai-ready/compare/v1.2.0...v1.3.0)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)2 weeks agov6.4.8 ### 🐞 Bug Fixes
  - **takumi**: Restore non-latin glyph support regressed in v6.2.0 - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/587~~**](https://github.com/nuxt-modules/og-image/issues/587) [`**(0b5e6)**`](https://github.com/nuxt-modules/og-image/commit/0b5e621e) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.4.7...v6.4.8)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)3 weeks agov1.2.0 ### 🚀 Features
  - Vercel agent-readability frontmatter and friendly 404 markdown - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-ai-ready/issues/21~~**](https://github.com/harlan-zw/nuxt-ai-ready/issues/21) [`**(9d281)**`](https://github.com/harlan-zw/nuxt-ai-ready/commit/9d28196) ### 🐞 Bug Fixes
  - RFC-compliant content negotiation - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-ai-ready/issues/19~~**](https://github.com/harlan-zw/nuxt-ai-ready/issues/19) [`**(36fd4)**`](https://github.com/harlan-zw/nuxt-ai-ready/commit/36fd439) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-ai-ready/compare/v1.1.2...v1.2.0)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)3 weeks agov6.4.7 ### 🐞 Bug Fixes
  - **takumi**: Dedupe variable fonts so weights vary correctly - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/585~~**](https://github.com/nuxt-modules/og-image/issues/585) [`**(be325)**`](https://github.com/nuxt-modules/og-image/commit/be32596e) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.4.6...v6.4.7)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)3 weeks agov6.0.8** Latest **### 🐞 Bug Fixes
  - Augment NitroRouteConfig on both nitropack module paths - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/295~~**](https://github.com/nuxt-modules/robots/issues/295) [`**(d0421)**`](https://github.com/nuxt-modules/robots/commit/d042115) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v6.0.7...v6.0.8)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)3 weeks agov8.1.11** Latest **

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.1.10...v8.1.11)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)3 weeks agov8.1.10 ### 🐞 Bug Fixes
  - Resolve @unhead/bundler + align vite plugin with nuxt 4.5 - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/109~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/109) [`**(b5d90)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/b5d90b8) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.1.9...v8.1.10)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)3 weeks agov6.4.6 ### 🐞 Bug Fixes
  - IMessage Preview displaying multiple images - by @captnCC and **johanneskees** in [**~~https://github.com/nuxt-modules/og-image/issues/584~~**](https://github.com/nuxt-modules/og-image/issues/584) [`**(55336)**`](https://github.com/nuxt-modules/og-image/commit/55336baf) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.4.5...v6.4.6)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)3 weeks agov1.1.3 ### 🐞 Bug Fixes
  - RFC-compliant content negotiation - by @harlan-zw [`**(5e8df)**`](https://github.com/harlan-zw/nuxt-ai-ready/commit/5e8df80) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-ai-ready/compare/v1.1.2...v1.1.3)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)3 weeks agov6.4.5 ### 🐞 Bug Fixes
  - **takumi**: Serialize WASM calls - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/583~~**](https://github.com/nuxt-modules/og-image/issues/583) [`**(7e935)**`](https://github.com/nuxt-modules/og-image/commit/7e9354fd) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.4.4...v6.4.5)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)3 weeks agov6.4.4 ### 🐞 Bug Fixes
  - **devtools**: Safe broadcasting - by @harlan-zw [`**(0fbb5)**`](https://github.com/nuxt-modules/og-image/commit/0fbb5226) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.4.3...v6.4.4)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)4 weeks agov6.4.3 ### 🐞 Bug Fixes
  - Dispose prior og:image head entry on client navigation - by @harlan-zw [`**(d709e)**`](https://github.com/nuxt-modules/og-image/commit/d709ecf1)
  - Add image fetch timeouts and Server-Timing instrumentation - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/581~~**](https://github.com/nuxt-modules/og-image/issues/581) [`**(6ae9a)**`](https://github.com/nuxt-modules/og-image/commit/6ae9a616) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.4.2...v6.4.3)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)4 weeks agov8.1.9 ### 🐞 Bug Fixes
  - Support unhead v3 alongside v2 - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/106~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/106) [`**(5dfeb)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/5dfebe5)
  - Respect existing title separator - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/107~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/107) [`**(45a82)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/45a825d) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.1.8...v8.1.9)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)4 weeks agov8.0.13 ### 🐞 Bug Fixes
  - Skip cache during prerender to prevent empty sitemap - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/604~~**](https://github.com/nuxt-modules/sitemap/issues/604) [`**(b4570)**`](https://github.com/nuxt-modules/sitemap/commit/b457026) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.12...v8.0.13)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)4 weeks agov6.4.2 ### 🐞 Bug Fixes
  - Support @unhead/vue v3 - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/577~~**](https://github.com/nuxt-modules/og-image/issues/577) [`**(53d49)**`](https://github.com/nuxt-modules/og-image/commit/53d49f9c)
  - Remove auto SWR route rules; only set cache-control headers - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/579~~**](https://github.com/nuxt-modules/og-image/issues/579) [`**(834b1)**`](https://github.com/nuxt-modules/og-image/commit/834b1a0f) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.4.1...v6.4.2)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)4 weeks agov8.1.8 ### 🐞 Bug Fixes
  - Run prerender minify via nitro render:html for CSP compat - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/105~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/105) [`**(ce1ef)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/ce1ef36) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.1.7...v8.1.8)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)4 weeks agov6.4.1 ### 🐞 Bug Fixes
  - Update `**og:image**` on client-side navigation - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/575~~**](https://github.com/nuxt-modules/og-image/issues/575) [`**(f8cdc)**`](https://github.com/nuxt-modules/og-image/commit/f8cdc32e) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.4.0...v6.4.1)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)4 weeks agov6.4.0 ### 🚀 Features
  - Add `**/_og/r/**` resolver endpoint - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/572~~**](https://github.com/nuxt-modules/og-image/issues/572) [`**(3aa76)**`](https://github.com/nuxt-modules/og-image/commit/3aa76445) ### 🐞 Bug Fixes
  - Avoid leaking useHead title into og:image URL - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/573~~**](https://github.com/nuxt-modules/og-image/issues/573) and [**~~https://github.com/nuxt-modules/og-image/issues/574~~**](https://github.com/nuxt-modules/og-image/issues/574) [`**(1902f)**`](https://github.com/nuxt-modules/og-image/commit/1902f67b) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.3.10...v6.4.0)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last monthv5.0.9 ### 🐞 Bug Fixes
  - Exclude `**/llms.txt**` paths - by @harlan-zw [`**(67f80)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/67f807d) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v5.0.8...v5.0.9)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last monthv6.3.10

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.3.9...v6.3.10)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last monthv5.1.3** Latest **### 🐞 Bug Fixes
  - **devtools**: Broken og image checklist - by @harlan-zw [`**(160f5)**`](https://github.com/harlan-zw/nuxt-seo/commit/160f5c8) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v5.1.2...v5.1.3)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)last monthv6.0.7 ### 🐞 Bug Fixes
  - Move devtools-only deps to devDependencies - by @harlan-zw [`**(d5f87)**`](https://github.com/nuxt-modules/robots/commit/d5f87aa) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v6.0.6...v6.0.7)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last monthv6.3.9 ### 🐞 Bug Fixes
  - Fallback to internal handler when font origin is unreachable - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/566~~**](https://github.com/nuxt-modules/og-image/issues/566) [`**(3224a)**`](https://github.com/nuxt-modules/og-image/commit/3224a674) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.3.8...v6.3.9)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last monthv6.3.8 ### 🐞 Bug Fixes
  - Resolve object literal bindings to inline CSS - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/562~~**](https://github.com/nuxt-modules/og-image/issues/562) [`**(60c85)**`](https://github.com/nuxt-modules/og-image/commit/60c85db6)
  - Misc cache improvements - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/564~~**](https://github.com/nuxt-modules/og-image/issues/564) [`**(0c530)**`](https://github.com/nuxt-modules/og-image/commit/0c5308c6) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.3.7...v6.3.8)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last monthv6.3.7 ### 🐞 Bug Fixes
  - **prerender**: Compat issue with html validator - by @harlan-zw [`**(51aa0)**`](https://github.com/nuxt-modules/og-image/commit/51aa00d3) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.3.6...v6.3.7)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last monthv6.3.6 ### 🐞 Bug Fixes
  - **prerender**: Edge cases in option caching - by @harlan-zw [`**(93ab1)**`](https://github.com/nuxt-modules/og-image/commit/93ab1c67) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.3.5...v6.3.6)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last monthv6.3.5 ### 🐞 Bug Fixes
  - **prerender**: Sign dynamic URLs in strict mode and handle orphan hashes - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/560~~**](https://github.com/nuxt-modules/og-image/issues/560) [`**(7a9f0)**`](https://github.com/nuxt-modules/og-image/commit/7a9f03e4) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.3.4...v6.3.5)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last monthv6.3.4 ### 🐞 Bug Fixes
  - Add missing nitro presets to compatibility map - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/559~~**](https://github.com/nuxt-modules/og-image/issues/559) [`**(c06cc)**`](https://github.com/nuxt-modules/og-image/commit/c06ccd04) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.3.3...v6.3.4)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)last monthv4.0.8** Latest **### 🐞 Bug Fixes
  - **types**: Preserve named keys in SiteConfigInput - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-site-config/issues/93~~**](https://github.com/harlan-zw/nuxt-site-config/issues/93) [`**(7b968)**`](https://github.com/harlan-zw/nuxt-site-config/commit/7b968a5) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v4.0.7...v4.0.8)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last monthv5.0.8 ### 🐞 Bug Fixes
  - Move devtools-only deps to devDependencies - by @harlan-zw [`**(8821c)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/8821cb6)
  - Add app.baseUrl to the excludeLinks list - by @khatastroffik in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/85~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/85) [`**(4681b)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/4681be4) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v5.0.7...v5.0.8)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last monthv5.1.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v5.1.1...v5.1.2)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last monthv6.3.3 ### 🐞 Bug Fixes
  - Expand variable font weights for all renderers - by @harlan-zw and **Claude Opus 4.6 (1M context)** in [**~~https://github.com/nuxt-modules/og-image/issues/549~~**](https://github.com/nuxt-modules/og-image/issues/549) [`**(fc30b)**`](https://github.com/nuxt-modules/og-image/commit/fc30b4f3)
  - Fall back across unicode-range font subsets for CJK rendering - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/554~~**](https://github.com/nuxt-modules/og-image/issues/554) [`**(57788)**`](https://github.com/nuxt-modules/og-image/commit/57788dba)
  - Auto-inject title and description from useSeoMeta into OG image props - by @harlan-zw [`**(b4290)**`](https://github.com/nuxt-modules/og-image/commit/b4290b37)
  - Use Takumi `**no-bundler**` path so binary not included when `**zeroRuntime: true**` - by @kane50613 and @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/556~~**](https://github.com/nuxt-modules/og-image/issues/556) [`**(b5cd7)**`](https://github.com/nuxt-modules/og-image/commit/b5cd7c6c)
  - Move devtools-only deps to devDependencies - by @harlan-zw [`**(0ea13)**`](https://github.com/nuxt-modules/og-image/commit/0ea13015) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.3.2...v6.3.3)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)last monthv8.1.7 ### 🐞 Bug Fixes
  - Use `**'low'**` alias for default tagPriority - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/104~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/104) [`**(c6e3b)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/c6e3bca)
  - Move devtools-only deps to devDependencies - by @harlan-zw [`**(e7d54)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/e7d546e) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.1.6...v8.1.7)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)last monthv8.0.12 ### 🐞 Bug Fixes
  - Move devtools-only deps to devDependencies - by @harlan-zw and **Claude Opus 4.6 (1M context)** in [**~~https://github.com/nuxt-modules/sitemap/issues/598~~**](https://github.com/nuxt-modules/sitemap/issues/598) [`**(0bbca)**`](https://github.com/nuxt-modules/sitemap/commit/0bbca72)
  - **content**:
    - Use passed zod instance in buildSchema callback - by @harlan-zw and **Claude Opus 4.6 (1M context)** in [**~~https://github.com/nuxt-modules/sitemap/issues/597~~**](https://github.com/nuxt-modules/sitemap/issues/597) [`**(b18da)**`](https://github.com/nuxt-modules/sitemap/commit/b18da47)
    - Warn on zod resolution issues - by @harlan-zw [`**(a3802)**`](https://github.com/nuxt-modules/sitemap/commit/a3802bc) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.11...v8.0.12)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last monthv5.1.1 ### 🐞 Bug Fixes
  - Use default export condition, add attw - by @harlan-zw and **Claude Opus 4.6 (1M context)** in [**~~https://github.com/harlan-zw/nuxt-seo/issues/527~~**](https://github.com/harlan-zw/nuxt-seo/issues/527) [`**(3c458)**`](https://github.com/harlan-zw/nuxt-seo/commit/3c4584c)
  - **devtools**:
    - Broken version check - by @harlan-zw [`**(f774c)**`](https://github.com/harlan-zw/nuxt-seo/commit/f774ccd)
    - Correct site-config debug endpoint URL - by @harlan-zw and **Claude Opus 4.6 (1M context)** in [**~~https://github.com/harlan-zw/nuxt-seo/issues/526~~**](https://github.com/harlan-zw/nuxt-seo/issues/526) [`**(3f387)**`](https://github.com/harlan-zw/nuxt-seo/commit/3f38776)
  - **shared**:
    - Handle zod version conflicts gracefully - by @harlan-zw [`**(e2ff4)**`](https://github.com/harlan-zw/nuxt-seo/commit/e2ff480) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v5.1.0...v5.1.1)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last monthv5.0.7 ### 🐞 Bug Fixes
  - **devtool**: Item status alignment - by @khatastroffik in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/81~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/81) [`**(96d22)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/96d22d4)
  - **markdown**: Change return value of preprocess when no links exist - by @dargmuesli in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/82~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/82) [`**(98390)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/98390f0) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v5.0.6...v5.0.7)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)last monthv8.1.6 ### 🐞 Bug Fixes
  - Pass --pnpm to pkg-pr-new so catalog: specifiers are resolved - by @harlan-zw and **Claude Opus 4.6 (1M context)** [`**(20596)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/20596d9) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.1.5...v8.1.6)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last monthv6.3.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.3.1...v6.3.2)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)last monthv1.1.1** Latest **### 🐞 Bug Fixes
  - Infinite ping pong - by @harlan-zw [`**(800cc)**`](https://github.com/harlan-zw/nuxt-skew-protection/commit/800cc0c) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-skew-protection/compare/v1.1.0...v1.1.1)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)last monthv1.1.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-ai-ready/compare/v1.1.1...v1.1.2)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)last monthv1.1.1

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v1.1.0...v1.1.1)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)last monthv8.1.5 ### 🐞 Bug Fixes
  - Set og:locale at low priority so i18n can override - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/102~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/102) [`**(5633a)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/5633ac0) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.1.4...v8.1.5)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)last monthv8.1.4 ### 🐞 Bug Fixes
  - Support empty `**canonicalQueryWhitelist**` override - by @harlan-zw [`**(aa555)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/aa55573) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.1.3...v8.1.4)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)last monthv8.0.10

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.9...v8.0.10)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)last monthv8.0.11 ### 🐞 Bug Fixes
  - `**zeroRuntime**` prerender detection when no manual `**nitro.prerender.routes**` - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/593~~**](https://github.com/nuxt-modules/sitemap/issues/593) [`**(688d1)**`](https://github.com/nuxt-modules/sitemap/commit/688d189) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.10...v8.0.11)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)last monthv1.1.0 ### 🚨 Breaking Changes
  - Change license to MIT - by @harlan-zw [`**(f29ec)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/f29ecdc) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v1.0.6...v1.1.0)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)last monthv1.1.0 ### 🚨 Breaking Changes
  - MIT module - by @harlan-zw [`**(c4649)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/c4649c0) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v1.0.4...v1.1.0)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last monthv5.1.0 ### 🚀 Features
  - Skew protection + ai ready standalone - by @harlan-zw [`**(d0fc2)**`](https://github.com/harlan-zw/nuxt-seo/commit/d0fc2d1) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v5.0.2...v5.1.0)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last monthv6.3.1 ### 🐞 Bug Fixes
  - Prefer runtime config for secret - by @harlan-zw [`**(65196)**`](https://github.com/nuxt-modules/og-image/commit/651962d0) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.3.0...v6.3.1)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last monthv5.0.6 ### 🐞 Bug Fixes
  - **eslint**: Normalize trailing slashes in valid-route and valid-sitemap-link - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/80~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/80) [`**(9cfba)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/9cfbaec) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v5.0.5...v5.0.6)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)last monthv6.3.0 ### 🚀 Features
  - **security**: Add URL signing to prevent parameter tampering - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/546~~**](https://github.com/nuxt-modules/og-image/issues/546) [`**(87a25)**`](https://github.com/nuxt-modules/og-image/commit/87a25392) ### 🐞 Bug Fixes
  - **security**: Strict mode, deprecate `**html**` - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/545~~**](https://github.com/nuxt-modules/og-image/issues/545) [`**(25c05)**`](https://github.com/nuxt-modules/og-image/commit/25c057b1) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.2.6...v6.3.0)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)last monthv8.0.9 ### 🐞 Bug Fixes
  - Suppress hreflang extraction from HTML when `**autoI18n: false**` - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/589~~**](https://github.com/nuxt-modules/sitemap/issues/589) [`**(28b65)**`](https://github.com/nuxt-modules/sitemap/commit/28b6514)
  - Fallback to `**article:published_time**` for lastmod - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/590~~**](https://github.com/nuxt-modules/sitemap/issues/590) [`**(f537f)**`](https://github.com/nuxt-modules/sitemap/commit/f537fde)
  - `**chunkSize**` config precedence over `**chunks**` number - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/591~~**](https://github.com/nuxt-modules/sitemap/issues/591) [`**(ad522)**`](https://github.com/nuxt-modules/sitemap/commit/ad5221b) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.8...v8.0.9)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)last monthv1.0.6 ### 🐞 Bug Fixes
  - Deduplicate SSE/WS reconnection version checks - by @harlan-zw in [**~~https://github.com/nuxt-seo-pro/nuxt-skew-protection/issues/13~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/issues/13) [`**(e2f67)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/e2f6704) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v1.0.5...v1.0.6)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)2 months agov8.1.3 ### 🐞 Bug Fixes
  - Meta tag file detection only matches root public dir, support layers - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/101~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/101) [`**(4f17e)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/4f17ef5) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.1.2...v8.1.3)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)2 months agov8.0.8 ### 🐞 Bug Fixes
  - Less noisy logs - by @harlan-zw [`**(e4ef2)**`](https://github.com/nuxt-modules/sitemap/commit/e4ef2cf) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.7...v8.0.8)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)2 months agov8.0.7 ### 🐞 Bug Fixes
  - Respect `**autoI18n: false**` to suppress hreflang tag generation - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/587~~**](https://github.com/nuxt-modules/sitemap/issues/587) [`**(ee92b)**`](https://github.com/nuxt-modules/sitemap/commit/ee92ba1) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.6...v8.0.7)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)2 months agov1.0.5

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v1.0.4...v1.0.5)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)2 months agov8.1.2 ### 🐞 Bug Fixes
  - **devtools**: False positives - by @harlan-zw [`**(46cd8)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/46cd8c3) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.1.1...v8.1.2)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)2 months agov6.2.6 ### 🐞 Bug Fixes
  - **devtools**: Don't warn about devtool props - by @harlan-zw [`**(adddd)**`](https://github.com/nuxt-modules/og-image/commit/adddd5aa) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.2.5...v6.2.6)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)2 months agov8.0.6 ### 🐞 Bug Fixes
  - Enable debug endpoints in dev when zeroRuntime: true - by @harlan-zw [`**(86327)**`](https://github.com/nuxt-modules/sitemap/commit/863270b) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.5...v8.0.6)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)2 months agov1.0.4 ### 🐞 Bug Fixes
  - Allow sitemap v8 - by @harlan-zw [`**(b3cff)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/b3cffca) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v1.0.3...v1.0.4)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)2 months agov1.0.3

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v1.0.2...v1.0.3)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)2 months agov1.0.4

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v1.0.3...v1.0.4)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)2 months agov1.0.3 ### 🐞 Bug Fixes
  - Broken site config import - by @harlan-zw [`**(b9d0a)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/b9d0a29) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v1.0.2...v1.0.3)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)2 months agov8.1.1 ### 🐞 Bug Fixes
  - False positive on missing i18n - by @harlan-zw [`**(4abac)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/4abac6d) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.1.0...v8.1.1)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)2 months agov5.0.0** Major **

  Nuxt SEO v5 bumps every sub-module to a new major version (except OG Image, which stays on v6). The common thread is the **Site Config v4** dependency; addressing those changes first will make the rest of the migration smooth.

  For step-by-step upgrade instructions, see the [**~~v4 to v5 migration guide~~**](https://nuxtseo.com/docs/nuxt-seo/migration-guide/v4-to-v5). ## 🛠️ DevTools Unity

  The biggest change in v5 is that every Nuxt SEO module now shares a single DevTools foundation through our new **shared DevTools layer** ( `**nuxtseo-layer-devtools**`).

  Previously each module shipped its own DevTools client with inconsistent layouts, patterns, and capabilities. In v5, all DevTools clients extend a common Nuxt layer that provides:
  - **Consistent layout and navigation** across every module, with a module switcher to jump between them
  - **Setup checklist** that validates your configuration across all installed modules, flagging required and recommended actions
  - **Built-in troubleshooting**, update indicators, and production mode preview in every module

  Nuxt SEO Utils gets a brand new DevTools client for the first time, and the DevTools for Robots, Sitemap, Schema.org, and Link Checker have all been revamped to use the shared layer. ## 🔗 ESLint Link Checking

  Nuxt Link Checker v5 ships an [**~~ESLint~~**](https://eslint.org) integration with zero-config `**@nuxt/eslint**` support:
  - `**link-checker/valid-route**` (error): validates relative URLs match known routes with "did you mean?" suggestions
  - `**link-checker/valid-sitemap-link**` (warn): checks URLs exist in the sitemap
  - Scans Vue templates, TS/JS ( `**navigateTo**`, `**router.push**`), and Markdown links

  If you're using `**@nuxt/eslint**`, the rules are registered automatically. Otherwise, add them manually:eslint.config.ts

  ```
  import linkChecker from 'nuxt-link-checker/eslint'

  export default [
    linkChecker,
  ]
  ```

  Example output when a link doesn't match any route:

  ```
  error  Link "/abut" does not match any known route. Did you mean "/about"?  link-checker/valid-route
  ```

  ## 📱 Social Share Links

  SEO Utils v8 introduces `**useShareLinks()**`, a composable for generating social sharing URLs (Twitter, Facebook, LinkedIn, WhatsApp, Telegram, Reddit, Pinterest, Email) with built-in UTM tracking.

  ```
  const links = useShareLinks({
    title: 'Check out Nuxt SEO v5!',
    twitter: { via: 'harlodev', hashtags: ['nuxt', 'seo'] },
    utm: { campaign: 'v5-launch' },
  })



    
      Share on X
      Share on LinkedIn
      Share on Reddit
  ```

  ## 🖼️ Favicon Generation CLI

  New `**nuxt-seo-utils icons**` CLI command generates all favicon and icon variants from a single source image:

  ```
  npx nuxt-seo-utils icons --source logo.svg
  ```

  This generates `**favicon.ico**`, `**apple-touch-icon.png**` (180x180), and PNG icons at 16, 32, 192, and 512px from your source image in `**public/**`. Requires `**sharp**` as a dev dependency. ## ⚡ Inline Minification

  SEO Utils v8 automatically minifies inline scripts and styles injected via `**useHead**`.

  **Before** (what you write):

  ```
  useHead({
    script: [{
      innerHTML: \`
        // Track page view
        window.dataLayer = window.dataLayer || [];
        window.dataLayer.push({
          'event': 'page_view',
          'page_path': window.location.pathname
        });
      \`,
    }],
    style: [{
      innerHTML: \`
        /* Critical above-the-fold styles */
        .hero {
          display: flex;
          align-items: center;
          justify-content: center;
          min-height: 100vh;
        }
      \`,
    }],
  })
  ```

  **After** (rendered HTML):

  ```
  window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:"page_view",page_path:window.location.pathname});
  .hero{display:flex;align-items:center;justify-content:center;min-height:100vh}
  ```

  ## 📄 `**definePageMeta**` Sitemap Config

  Sitemap v8 lets you configure sitemap options directly in `**definePageMeta**`:

  ```
  definePageMeta({
    sitemap: {
      changefreq: 'daily',
      priority: 0.8,
    },
  })
  ```

  ## 🌐 i18n Multi-Sitemap Improvements

  Custom sitemaps are now auto-expanded per locale when using i18n multi-sitemap mode. ## 🐛 Debug Production Endpoints

  Several modules now expose debug endpoints in production:
  - Robots: `**/__robots__/debug-production.json**`
  - Sitemap: `**/__sitemap__/debug-production.json**`
  - SEO Utils: `**/__nuxt-seo-utils**`## 🏷️ Site Config Priority Constants

  Named priority constants are now available via `**SiteConfigPriority.runtime**`, etc. ## ⚠️ Breaking Changes

  All modules now depend on **Site Config v4**, which removes implicit site name inference, legacy `**site***` runtime config keys, and several deprecated server-side APIs. Several Content v3 composables have also been renamed (e.g. `**asSitemapCollection()**` → `**defineSitemapSchema()**`).

  See the [**~~migration guide~~**](https://nuxtseo.com/docs/nuxt-seo/migration-guide/v4-to-v5) for the full list of breaking changes and how to address them. ## 🐞 Bug Fixes ### SSR Memory Leaks Fixed
  - **Schema.org**: reactive scopes not being disposed
  - **Site Config**: computed refs in i18n plugin ### i18n Fixes
  - Sitemap: base URL in multi-sitemap redirect, exclude filters with base URL/i18n prefixes, respect `autoI18n: false
  - SEO Utils: resolve fallback page titles from translation keys ### Other Fixes
  - Schema.org: `**@id**` URLs now respect `**app.baseURL**`, Nuxt context preserved in computed refs
  - Robots: `**skipSiteIndexable**` now skips `**Disallow: /**` rules, route rules nullish guard
  - SEO Utils: error pages preserve user-defined titles, `**useServerSeoMeta**` takes precedence over site defaults
  - Sitemap: chunked sitemaps path resolution, Content v3 `**.navigation**` path filtering
  - Link Checker: serialize RegExp in `**excludeLinks**` for client-side filtering ## 📚 Live Examples

  Every module now ships standalone examples in its repository. These are real Nuxt apps that stay in sync with the latest code, so they always reflect the current API.

  Open any example directly in [**~~StackBlitz~~**](https://stackblitz.com): | **Module** | **Examples** |
| --- | --- | | **Robots** | [**~~basic~~**](https://stackblitz.com/github/nuxt-modules/robots/tree/main/examples/basic), [**~~i18n~~**](https://stackblitz.com/github/nuxt-modules/robots/tree/main/examples/i18n), [**~~custom-rules~~**](https://stackblitz.com/github/nuxt-modules/robots/tree/main/examples/custom-rules) | | **Sitemap** | [**~~basic~~**](https://stackblitz.com/github/nuxt-modules/sitemap/tree/main/examples/basic), [**~~i18n~~**](https://stackblitz.com/github/nuxt-modules/sitemap/tree/main/examples/i18n), [**~~dynamic-urls~~**](https://stackblitz.com/github/nuxt-modules/sitemap/tree/main/examples/dynamic-urls) | | **OG Image** | [**~~basic-satori~~**](https://stackblitz.com/github/nuxt-modules/og-image/tree/main/examples/basic-satori), [**~~basic-takumi~~**](https://stackblitz.com/github/nuxt-modules/og-image/tree/main/examples/basic-takumi), [**~~content~~**](https://stackblitz.com/github/nuxt-modules/og-image/tree/main/examples/content), [**~~i18n~~**](https://stackblitz.com/github/nuxt-modules/og-image/tree/main/examples/i18n) | | **Schema.org** | [**~~basic~~**](https://stackblitz.com/github/harlan-zw/nuxt-schema-org/tree/main/examples/basic), [**~~blog~~**](https://stackblitz.com/github/harlan-zw/nuxt-schema-org/tree/main/examples/blog), [**~~e-commerce~~**](https://stackblitz.com/github/harlan-zw/nuxt-schema-org/tree/main/examples/e-commerce) | | **Link Checker** | [**~~basic~~**](https://stackblitz.com/github/harlan-zw/nuxt-link-checker/tree/main/examples/basic), [**~~broken-links~~**](https://stackblitz.com/github/harlan-zw/nuxt-link-checker/tree/main/examples/broken-links), [**~~skip-inspection~~**](https://stackblitz.com/github/harlan-zw/nuxt-link-checker/tree/main/examples/skip-inspection) | | **SEO Utils** | [**~~basic~~**](https://stackblitz.com/github/harlan-zw/nuxt-seo-utils/tree/main/examples/basic), [**~~breadcrumbs~~**](https://stackblitz.com/github/harlan-zw/nuxt-seo-utils/tree/main/examples/breadcrumbs), [**~~meta-tags~~**](https://stackblitz.com/github/harlan-zw/nuxt-seo-utils/tree/main/examples/meta-tags) | | **Site Config** | [**~~basic~~**](https://stackblitz.com/github/harlan-zw/nuxt-site-config/tree/main/examples/basic), [**~~env-driven~~**](https://stackblitz.com/github/harlan-zw/nuxt-site-config/tree/main/examples/env-driven), [**~~multi-site~~**](https://stackblitz.com/github/harlan-zw/nuxt-site-config/tree/main/examples/multi-site) |

  Because examples live alongside each module's source, they are always tested against the latest version and never fall out of date. ## Module Version Summary | **Module** | **v4** | **v5** |
| --- | --- | --- | | `**nuxt-site-config**` | v3 | **v4** | | `**nuxt-seo-utils**` | v7 | **v8** | | `**@nuxtjs/sitemap**` | v7 | **v8** | | `**@nuxtjs/robots**` | v5 | **v6** | | `**nuxt-schema-org**` | v5 | **v6** | | `**nuxt-link-checker**` | v4 | **v5** | | `**nuxt-og-image**` | v6 | v6 _(no major change)_ | ## Changelog ### 🐞 Bug Fixes
  - Deprecate `**asSeoCollection**` - by @harlan-zw [`**(40d4f)**`](https://github.com/harlan-zw/nuxt-seo/commit/40d4f44)
  - Add publish-packages input to reusable-nightly workflow - by @harlan-zw [`**(a149d)**`](https://github.com/harlan-zw/nuxt-seo/commit/a149d17)
  - Make Playwright install non-fatal in reusable CI - by @harlan-zw [`**(b55b7)**`](https://github.com/harlan-zw/nuxt-seo/commit/b55b78c)
  - **ci**: Use >= version constraints and fix workspace key order - by @harlan-zw and **Claude Opus 4.6** [`**(c67ce)**`](https://github.com/harlan-zw/nuxt-seo/commit/c67ce91)
  - **shared**: Add NormalisedLocale type with _sitemap and _hreflang fields - by @harlan-zw [`**(e51be)**`](https://github.com/harlan-zw/nuxt-seo/commit/e51bec5) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v4.0.2...v5.0.0)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)2 months agov6.2.5 ### 🐞 Bug Fixes
  - Hydration-issue warning due to SSR generated DateTime value - by @khatastroffik in [**~~https://github.com/nuxt-modules/og-image/issues/535~~**](https://github.com/nuxt-modules/og-image/issues/535) [`**(92d9d)**`](https://github.com/nuxt-modules/og-image/commit/92d9dac2)
  - Sanitize component props - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/543~~**](https://github.com/nuxt-modules/og-image/issues/543) [`**(3dcf8)**`](https://github.com/nuxt-modules/og-image/commit/3dcf8c15)
  - Harden security defaults - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/540~~**](https://github.com/nuxt-modules/og-image/issues/540) [`**(9902a)**`](https://github.com/nuxt-modules/og-image/commit/9902a897)
  - Whitelist component props to prevent cache key DoS - by @harlan-zw in [**~~https://github.com/nuxt-modules/og-image/issues/544~~**](https://github.com/nuxt-modules/og-image/issues/544) [`**(bd05a)**`](https://github.com/nuxt-modules/og-image/commit/bd05a77b) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.2.4...v6.2.5)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)2 months agov1.0.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v1.0.1...v1.0.2)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)2 months agov1.0.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v1.0.1...v1.0.2)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)2 months agov6.0.4** Latest **### 🐞 Bug Fixes
  - **devtools**: Refine - by @harlan-zw [`**(774c8)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/774c874) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v6.0.3...v6.0.4)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)2 months agov4.0.7 ### 🐞 Bug Fixes
  - **devtools**: Refine UI - by @harlan-zw [`**(b9eda)**`](https://github.com/harlan-zw/nuxt-site-config/commit/b9eda73) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v4.0.6...v4.0.7)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)2 months agov5.0.5

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v5.0.4...v5.0.5)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)2 months agov8.1.0 ### 🚀 Features
  - **devtools**: Identity tab - by @harlan-zw [`**(31ed3)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/31ed322) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.0.5...v8.1.0)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)2 months agov8.0.5

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.4...v8.0.5)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov6.0.6

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v6.0.5...v6.0.6)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)2 months agov6.2.4 ### 🐞 Bug Fixes
  - Burst cache when og image templates change - by @harlan-zw [`**(0b817)**`](https://github.com/nuxt-modules/og-image/commit/0b817186)
  - Drop query param build id cache bursting - by @harlan-zw [`**(851b1)**`](https://github.com/nuxt-modules/og-image/commit/851b132f) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.2.3...v6.2.4)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)2 months agov8.0.5

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.0.4...v8.0.5)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)2 months agov5.0.4

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v5.0.3...v5.0.4)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)2 months agov6.0.3

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v6.0.2...v6.0.3)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)2 months agov8.0.4

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.3...v8.0.4)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov6.0.5

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v6.0.4...v6.0.5)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)2 months agov1.0.1

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v1.0.0...v1.0.1)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)2 months agov1.0.1 ### 🐞 Bug Fixes
  - Broken module deps - by @harlan-zw [`**(58c6a)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/58c6ac9) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v1.0.0...v1.0.1)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)2 months agov1.0.0** Major **

  Nuxt Skew Protection v1 marks the module's first stable release. The focus: giving you full control over **how** and **when** outdated clients respond to new deployments, while making version state observable on both client and server.

  This release also cleans up the API surface, shortening names and aligning conventions before committing to semver stability.

  Run the automated codemod to migrate your project, or paste the **~~LLM upgrade prompt~~** into Claude, [**~~ChatGPT~~**](https://chatgpt.com), etc. for a guided migration.

  ```
  npx nuxt-skew-protection migrate
  ```

  See the [**~~breaking changes~~**](#breaking-changes) below for details on what changed. ## 🔍 Server Version Awareness

  Every incoming request now carries `**event.context.skewVersion**` populated from the client's cookie. Use the new `getClientVersion(event)` server utility to read it explicitly, or `isClientOutdated(event)` to check staleness in API handlers.

  ```
  export default defineEventHandler((event) => {
    if (isClientOutdated(event)) {
      // return stale-safe response or set cache headers
    }
  })
  ```

  ## ⏪ Rollback Detection

  The composable now exposes an `**isRollback**` computed ref that is `**true**` when the server version is **older** than the client version, indicating a deployment was rolled back. This lets you distinguish "user needs to update" from "we rolled back, the user is ahead." ## 🛠️ DevTools Panel

  A new Nuxt DevTools panel gives you full visibility into skew protection state during development. It includes four tabs:
  - **Overview** shows your resolved module configuration and, when connected to a production URL, displays real time health status and active connection stats.
  - **Versions** lists all stored deployment versions with build timestamps, asset counts, and expiration status.
  - **Connections** shows version distribution and route distribution across active users (requires `**connectionTracking: true**`).
  - **Docs** links directly to the module documentation.

  The panel is available at `**/__nuxt-skew-protection**` in dev mode and can proxy production endpoints for live debugging. ## ⚡ Multi-Tab Coordination

  Version detection gets faster when multiple tabs share discoveries. When one tab detects a deployment update, every other tab in the same browser learns about it instantly via `**BroadcastChannel**`, eliminating duplicate polling and reducing unnecessary network requests. Enabled by default; disable with `**multiTab: false**`. ## 🔄 Reload Strategies

  Previously the module always showed a notification and waited for the user to click reload. Now you choose the behaviour that fits your app with a single config option.

  ```
  export default defineNuxtConfig({
    skewProtection: {
      // 'prompt' (default) | 'immediate' | 'idle' | false
      reloadStrategy: 'idle',
    },
  })
  ```

  `**immediate**` reloads the moment chunks are invalidated. `**idle**` waits until the user switches tabs or the browser is idle, avoiding mid-interaction disruption. Set `**false**` to disable built-in handling and drive your own logic through hooks. ## ⚠️ Breaking Changes ### Dependency Version Bumps

  The following internal dependencies have new minimum versions. These shouldn't have any direct effect on your site, however, you may want to double check their release notes.
  - **nuxt-site-config** v4: [**~~breaking changes~~**](https://github.com/harlan-zw/nuxt-site-config/releases/tag/v4.0.0) ### Hook Renamed: `**skew:chunks-outdated**`

  The Nuxt hook `**skew-protection:chunks-outdated**` has been shortened to `**skew:chunks-outdated**`.

  ```
  // Before
  nuxtApp.hooks.hook('skew-protection:chunks-outdated', (payload) => {
    // ...
  })

  // After
  nuxtApp.hooks.hook('skew:chunks-outdated', (payload) => {
    // ...
  })
  ```

  ### Composable Return: `**isAppOutdated**`

  `**isOutdated**` was renamed to `**isAppOutdated**` to distinguish it from chunk-level staleness.

  ```
  // Before
  const { isOutdated } = useSkewProtection()

  // After
  const { isAppOutdated } = useSkewProtection()
  ```

  ### Config: `**bundleAssets**`

  `**bundlePreviousDeploymentChunks**` was renamed to `**bundleAssets**` for brevity.

  ```
  // Before
  const before = { skewProtection: { bundlePreviousDeploymentChunks: true } }

  // After
  const after = { skewProtection: { bundleAssets: true } }
  ```

  ### Route Prefix: `**/__skew/**`

  Internal API routes moved from `**/_skew/**` to `**/__skew/**` (double underscore) to follow the Nuxt convention for internal routes. Update any custom proxy rules or firewall allowlists. ### Cookie Defaults

  `**sameSite**` changed from `**strict**` to `**lax**` so the cookie survives cross-origin navigations (e.g. OAuth redirects). `**maxAge**` shortened from 60 days to 7 days to reduce stale version drift. ### Standalone `**checkForUpdates**` Removed

  We removed the standalone export. Use the composable method instead:

  ```
  // Before
  import { checkForUpdates } from '#skew-protection'

  // After
  const { checkForUpdates } = useSkewProtection()
  ```

  ### Legacy `**_generate**` Compat Removed

  We removed the internal `**_generate**` compatibility check from early pre-releases. If you were on v0.4 or earlier, upgrade to v0.7.6 first, then to v1. ## 🤖 LLM Upgrade Prompt {#llm-upgrade-prompt}

  Paste this into Claude, ChatGPT, or any LLM to migrate your codebase automatically.

  ```
  # Upgrade Guide: nuxt-skew-protection v0.x to v1.0.0

  You are helping me upgrade nuxt-skew-protection from v0.x to v1.0.0 in my Nuxt project.

  ## Breaking Changes

  ### 1. Hook Renamed

  **What changed:** \`skew-protection:chunks-outdated\` → \`skew:chunks-outdated\`

  **Search my codebase for:** \`skew-protection:chunks-outdated\`

  **Regex pattern:** \`skew-protection:chunks-outdated\`

  **Before:**
  \`\`\`ts
  nuxtApp.hooks.hook('skew-protection:chunks-outdated', callback)
  \`\`\`

  **After:**
  \`\`\`ts
  nuxtApp.hooks.hook('skew:chunks-outdated', callback)
  \`\`\`

  ### 2. Composable Return Renamed

  **What changed:** \`isOutdated\` → \`isAppOutdated\` on the \`useSkewProtection()\`{lang="ts"} return.

  **Search my codebase for:** \`isOutdated\`

  **Regex pattern:** \`isOutdated(?!Payload|\.)\`{lang="ts"}

  **Before:**
  \`\`\`ts
  const { isOutdated } = useSkewProtection()
  \`\`\`

  **After:**
  \`\`\`ts
  const { isAppOutdated } = useSkewProtection()
  \`\`\`

  ### 3. Config Renamed

  **What changed:** \`bundlePreviousDeploymentChunks\` → \`bundleAssets\`

  **Search my codebase for:** \`bundlePreviousDeploymentChunks\`

  **Regex pattern:** \`bundlePreviousDeploymentChunks\`

  **Before:**
  \`\`\`ts
  skewProtection: { bundlePreviousDeploymentChunks: true }
  \`\`\`

  **After:**
  \`\`\`ts
  skewProtection: { bundleAssets: true }
  \`\`\`

  ### 4. Route Prefix Changed

  **What changed:** \`/_skew/\` → \`/__skew/\` (double underscore)

  **Search my codebase for:** \`/_skew/\`

  **Regex pattern:** \`/_skew/\`

  **Before:**
  \`\`\`ts
  $fetch('/_skew/sse')
  \`\`\`

  **After:**
  \`\`\`ts
  $fetch('/__skew/sse')
  \`\`\`

  ### 5. Standalone checkForUpdates Removed

  **What changed:** The standalone \`checkForUpdates\` export no longer exists. Use the composable.

  **Search my codebase for:** \`import { checkForUpdates }\`

  **Regex pattern:** \`checkForUpdates.*from.*#skew\`

  **Before:**
  \`\`\`ts
  import { checkForUpdates } from '#skew-protection'
  checkForUpdates()
  \`\`\`

  **After:**
  \`\`\`ts
  const { checkForUpdates } = useSkewProtection()
  checkForUpdates()
  \`\`\`

  ### 6. Cookie Defaults Changed

  **What changed:** \`sameSite\` is now \`lax\` (was \`strict\`), \`maxAge\` is now 7 days (was 60 days).

  **Action:** No code changes needed unless you explicitly rely on the old defaults. If you need the old behaviour, set them in config:

  \`\`\`ts
  skewProtection: {
    cookie: { sameSite: 'strict', maxAge: 60 * 60 * 24 * 60 }
  }
  \`\`\`

  ## Verification Checklist

  1. \`pnpm install\` (update lockfile)
  2. \`npx nuxi typecheck\` (catch type errors)
  3. \`pnpm build\` (catch build-time issues)
  4. \`pnpm test\` (catch runtime regressions)
  5. Test SSR page load, verify no hydration mismatch warnings

  ---

  Please scan my codebase for all affected patterns listed above and generate a complete migration plan. For each file that needs changes, show me the exact diff.
  ```

  ## ✅ Upgrading

  ```
  # pnpm
  pnpm add nuxt-skew-protection@^1

  # npm
  npm install nuxt-skew-protection@^1

  # yarn
  yarn add nuxt-skew-protection@^1
  ```

  ## 📋 Changelog
  > [**~~Compare changes~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.7.6...v1.0.0) ### 🚀 Enhancements
  - `**reloadStrategy**` option: `**prompt**`, `**immediate**`, `**idle**`, or `**false**` ([`**4b6a9fe**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/4b6a9fe))
  - Multi-tab coordination via `**BroadcastChannel**` ([`**4b6a9fe**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/4b6a9fe))
  - `**/__skew/health**` monitoring endpoint ([`**4b6a9fe**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/4b6a9fe))
  - `**event.context.skewVersion**` on all server requests ([`**4b6a9fe**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/4b6a9fe))
  - `getClientVersion(event)` server utility ([`**4b6a9fe**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/4b6a9fe))
  - `**isRollback**` detection on composable ([`**4b6a9fe**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/4b6a9fe))
  - `**serverVersion**` reactive ref on composable ([`**4b6a9fe**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/4b6a9fe))
  - `**isOpen**` slot prop on `**SkewNotification**` ([`**4b6a9fe**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/4b6a9fe))
  - SSR hydration via `**useState**` for `**isConnected**`, `**serverVersion**`, `**manifest**` ([`**4b6a9fe**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/4b6a9fe))
  - DevTools panel with overview, version history, connection monitoring, and production debug endpoints ([`**8dc6d1e**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/8dc6d1e)) ### 🩹 Fixes
  - Handle possibly undefined manifest in multi-tab plugin ([`**d19bfcf**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/d19bfcf)) ### 🏡 Chore
  - Bump and lint ([`**ce83636**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/ce83636))
  - Sync CI and kit utilities ([`**c59600e**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/c59600e)) ### ❤️ Contributors
  - [**~~Harlan Wilton~~**](https://github.com/harlan-zw)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)2 months agov1.0.0** Major **

  Nuxt AI Ready v1 focuses on **API consistency**, **security**, and **reliability**.

  The headline change is the migration to [**~~mdream v1~~**](https://github.com/harlan-zw/mdream), a rewrite of the HTML to markdown engine with a cleaner API and better output. Alongside this, v1 tightens endpoint security, unifies type inconsistencies, and fixes race conditions in the cron system.

  Most breaking changes have a **backward compatibility layer** that emits deprecation warnings, so upgrading won't immediately break your app. See the full [**~~migration steps~~**](#breaking-changes) and [**~~compat shims~~**](#migration-assistance) below, or paste the [**~~agent migration prompt~~**](#agent-migration-prompt) into your AI coding tool to upgrade automatically. ## 🧠 Mdream v1

  The HTML to Markdown engine has been rewritten. mdream v1 ships a native Rust engine (up to 8x faster), [**~~WebAssembly~~**](https://webassembly.org) for edge runtimes, and a simpler declarative API while keeping the JS engine available as `**@mdream/js**` for users who need imperative hook based plugins. The `**preset**` option is replaced by top-level flags, and extraction plugins are now declarative objects instead of function wrappers.

  ```
  // nuxt.config.ts
  export default defineNuxtConfig({
    aiReady: {
      mdreamOptions: {
        minimal: true,
        clean: true
      }
    }
  })
  ```

  ## 📊 Enhanced CLI Status

  The `**nuxt-ai-ready status**` command now shows richer diagnostics: activity stats (1h/24h), recent pages, IndexNow backoff status, cron run history, and sitemap health. ## 🔐 Shared Auth Utility

  Endpoint authentication is consolidated into a single `requireAuth()` utility, replacing duplicated auth logic across 6 route handlers. ## ⚠️ Breaking Changes ### Dependency Version Bumps

  The following internal dependencies have new minimum versions. These shouldn't have any direct effect on your site, however, you may want to double check their release notes.
  - **nuxt-site-config** v4: [**~~breaking changes~~**](https://github.com/harlan-zw/nuxt-site-config/releases/tag/v4.0.0)
  - **@nuxtjs/robots** v6: [**~~breaking changes~~**](https://github.com/nuxt-modules/robots/releases/tag/v6.0.0)
  - **@nuxtjs/sitemap** v8: [**~~breaking changes~~**](https://github.com/nuxt-modules/sitemap/releases/tag/v8.0.0) ### mdream Options Shape

  `**mdreamOptions**` changed from `**HTMLToMarkdownOptions & { preset?: 'minimal' }**` to the new `**MdreamOptions**` type from mdream v1. The `**preset**` key no longer exists.

  ```
   aiReady: {
  -  mdreamOptions: { preset: 'minimal' },
  +  mdreamOptions: { minimal: true },
   }
  ```

  ### Config Rename

  `**cacheMaxAgeSeconds**` is now `**llmsTxtCacheSeconds**` to clarify it only controls the llms.txt cache, not markdown route caching.

  ```
   aiReady: {
  -  cacheMaxAgeSeconds: 600,
  +  llmsTxtCacheSeconds: 600,
   }
  ```

  ### Type Rename

  `**BulkDocument**` is now `**PageDocument**`.

  ```
  -import type { BulkDocument } from 'nuxt-ai-ready'
  +import type { PageDocument } from 'nuxt-ai-ready'
  ```

  ### Hook Rename

  The Nitro runtime hook `**ai-ready:markdown**` is now `**ai-ready:page:markdown**`, matching the build-time hook name.

  ```
  -nitroApp.hooks.hook('ai-ready:markdown', (ctx) => {
  +nitroApp.hooks.hook('ai-ready:page:markdown', (ctx) => {
     ctx.markdown += '\n\nCustom footer'
   })
  ```

  ### Headings Type Unified

  `**PageEntry.headings**` and `**PageIndexedContext.headings**` changed from `**string**` (JSON) to `Array>` (already parsed). Remove any `JSON.parse()` calls on `**.headings**`.

  ```
   const page = await queryPages(event, { route: '/about' })
  -const headings = JSON.parse(page.headings)
  +const headings = page.headings // already parsed
  ```

  ### Endpoint Auth: Header Instead of Query String

  All `**/__ai-ready/***` endpoints now require an `Authorization: Bearer` header instead of `?secret=` in the query string. This prevents secrets from leaking into server logs and referrer headers.

  ```
  -fetch('/__ai-ready/poll?secret=TOKEN', { method: 'POST' })
  +fetch('/__ai-ready/poll', {
  +  method: 'POST',
  +  headers: { Authorization: 'Bearer TOKEN' },
  +})
  ```

  

  ```
  -curl -X POST "https://site.com/__ai-ready/poll?secret=TOKEN"
  +curl -H "Authorization: Bearer TOKEN" -X POST "https://site.com/__ai-ready/poll"
  ```

  Update any CI scripts, external cron jobs, or monitoring tools that call these endpoints. ## 🛟 Migration Assistance

  v1 includes a backward compatibility layer to ease migration. The following deprecated patterns still work but emit warnings:
  - **`**cacheMaxAgeSeconds**`** in `**nuxt.config.ts**` is auto-mapped to `**llmsTxtCacheSeconds**` with a build warning
  - **`**mdreamOptions.preset**`** triggers a build warning explaining the new shape
  - **`?secret=` query auth** still works on all `**/__ai-ready/***` endpoints but logs a deprecation warning per request

  These compatibility shims will be removed in v2. Update your config and endpoints at your earliest convenience. ## 🐛 Bug Fixes
  - Cron lock race condition fixed with atomic `**INSERT ... ON CONFLICT DO UPDATE ... WHERE**` instead of check-then-set ([`**854551f**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/854551f))
  - Unsafe `**JSON.parse**` calls replaced with `safeJsonParse()` across query layer ([`**854551f**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/854551f))
  - Input validation added to `**poll**`, `**prune**`, and `**indexnow**` endpoints (limit, timeout, ttl clamping) ([`**854551f**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/854551f))
  - `**console.warn**` replaced with `**logger.warn**` in cron runner ([`**854551f**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/854551f))
  - Markdown cache now varies by `**Accept**` headers ([`**f513c08**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/f513c08)) ## Agent Migration Prompt

  Copy this prompt into your AI coding agent (Claude Code, Cursor, Copilot, etc.) to migrate automatically:

  ```
  I'm upgrading nuxt-ai-ready to v1. Apply these breaking changes to my codebase:

  1. mdream options: \`mdreamOptions\` in nuxt.config.ts changed shape. Replace \`{ preset: 'minimal' }\` with \`{ minimal: true }\`. The type changed from \`HTMLToMarkdownOptions\` to \`MdreamOptions\`.

  2. Config rename: \`cacheMaxAgeSeconds\` is now \`llmsTxtCacheSeconds\` in nuxt.config.ts under the \`aiReady\` key.

  3. Type rename: \`BulkDocument\` is now \`PageDocument\`. Update all imports from 'nuxt-ai-ready'.

  4. Hook rename: The Nitro runtime hook \`ai-ready:markdown\` is now \`ai-ready:page:markdown\`. Update all hooks.hook() and hooks.callHook() calls.

  5. Headings type change: \`PageEntry.headings\` and \`PageIndexedContext.headings\` changed from \`string\` (JSON) to \`Array>\` (parsed). Remove any JSON.parse() calls on .headings since it's now already parsed.

  6. Auth mechanism change: All \`/__ai-ready/*\` endpoints now use \`Authorization: Bearer \` header instead of \`?secret=\` query parameter. Update any fetch calls, curl commands, CI scripts, or external cron jobs that hit these endpoints.

  Note: v1 includes backward compatibility shims for \`cacheMaxAgeSeconds\`, \`mdreamOptions.preset\`, and \`?secret=\` query auth. These emit deprecation warnings and will be removed in v2. After applying changes, verify no deprecation warnings remain in your build output or server logs.

  Search my entire codebase for these patterns and apply all necessary changes.
  ```

  ## Changelog ### 🚨 Breaking Changes
  - Migrate to `**mdream**` v1 - by @harlan-zw [`**(931e6)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/931e6ef)
  - V1 breaking changes and quality improvements - by @harlan-zw in [**~~https://github.com/nuxt-seo-pro/nuxt-ai-ready/issues/15~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/issues/15) [`**(c2bb4)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/c2bb45b) ### 🚀 Features
  - Support optional sections in llms.txt - by @harlan-zw in [**~~https://github.com/nuxt-seo-pro/nuxt-ai-ready/issues/18~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/issues/18) [`**(16b2d)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/16b2d1d)
  - Add pagination to MCP pages resource - by @harlan-zw in [**~~https://github.com/nuxt-seo-pro/nuxt-ai-ready/issues/17~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/issues/17) [`**(8827c)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/8827cd1) ### 🐞 Bug Fixes
  - Vary markdown cache by accept headers - by @harlan-zw [`**(f513c)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/f513c08)
  - **test**:
    - Disable mcp-toolkit in test fixtures (h3 v2 incompatibility) - by @harlan-zw [`**(b8536)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/b85366b)
    - Update llms.txt expectations for new format, skip cloudflare WASM - by @harlan-zw [`**(d31f6)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/d31f698) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.12.1...v1.0.0)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)2 months agov8.0.4 ### 🐞 Bug Fixes
  - **devtools**: Conform - by @harlan-zw [`**(f4253)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/f42534d) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.0.3...v8.0.4)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)2 months agov6.2.3 ### 🐞 Bug Fixes
  - **cloudflare**: Detect legacy assets mode - by @harlan-zw [`**(7f60a)**`](https://github.com/nuxt-modules/og-image/commit/7f60a480) ### 🏎 Performance
  - **devtools**: Drop json-editor-vue - by @harlan-zw [`**(14a58)**`](https://github.com/nuxt-modules/og-image/commit/14a585b7) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.2.2...v6.2.3)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)2 months agov0.12.2 ### 🐞 Bug Fixes
  - Vary markdown cache by accept headers - by @harlan-zw [`**(73ca6)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/73ca6ae) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.12.1...v0.12.2)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)2 months agov5.0.3

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v5.0.2...v5.0.3)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)2 months agov6.2.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.2.1...v6.2.2)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)2 months agov6.0.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v6.0.1...v6.0.2)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)2 months agov8.0.3

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.0.2...v8.0.3)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)2 months agov8.0.3

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.2...v8.0.3)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov6.0.4

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v6.0.3...v6.0.4)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov6.0.3

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v6.0.2...v6.0.3)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)2 months agov4.0.6

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v4.0.5...v4.0.6)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)2 months agov4.0.5

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v4.0.4...v4.0.5)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)2 months agov4.0.4

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v4.0.3...v4.0.4)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)2 months agov4.0.3

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v4.0.2...v4.0.3)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)2 months agov6.0.1 ### 🐞 Bug Fixes
  - **devtools**: Label module - by @harlan-zw [`**(3dc1f)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/3dc1f67) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v6.0.0...v6.0.1)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)2 months agov8.0.2 ### 🐞 Bug Fixes
  - Normalize `**twitter:image:src**` paths - by @harlan-zw [`**(b606e)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/b606e8b)
  - Normalize paths in client for dev mode - by @harlan-zw [`**(3dc9c)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/3dc9c96) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.0.1...v8.0.2)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)2 months agov8.0.2 ### 🐞 Bug Fixes
  - Preserve `**definePageMeta**` sitemap data during ssg - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/585~~**](https://github.com/nuxt-modules/sitemap/issues/585) [`**(8b7d4)**`](https://github.com/nuxt-modules/sitemap/commit/8b7d4d3)
  - **devtools**: Label module - by @harlan-zw [`**(a528f)**`](https://github.com/nuxt-modules/sitemap/commit/a528fcd) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.1...v8.0.2)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov6.0.2 ### 🐞 Bug Fixes
  - **devtools**: Label module - by @harlan-zw [`**(1c3e5)**`](https://github.com/nuxt-modules/robots/commit/1c3e5de) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v6.0.1...v6.0.2)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)2 months agov4.0.2 ### 🐞 Bug Fixes
  - **devtools**: Label module - by @harlan-zw [`**(0cb3a)**`](https://github.com/harlan-zw/nuxt-site-config/commit/0cb3a2a) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v4.0.1...v4.0.2)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)2 months agov6.2.1 ### 🐞 Bug Fixes
  - Missing compatibility config - by @harlan-zw [`**(45410)**`](https://github.com/nuxt-modules/og-image/commit/4541033c)
  - **devtools**: Broken resolution - by @harlan-zw [`**(57ac2)**`](https://github.com/nuxt-modules/og-image/commit/57ac2647) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/og-image/compare/v6.2.0...v6.2.1)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)2 months agov5.0.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v5.0.1...v5.0.2)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)2 months agov5.0.0** Major **

  The v5 release adds [**~~ESLint~~**](https://eslint.org) integration for instant broken link feedback in your editor, migrates DevTools to a shared layer, and bumps internal dependencies. ## ⚠️ Breaking Changes ### Site Config v4

  Nuxt Site Config is a module used internally by Nuxt Link Checker.

  The major update to v4.0.0 shouldn't have any direct effect on your site, however, you may want to double-check the [**~~breaking changes~~**](https://github.com/harlan-zw/nuxt-site-config/releases/tag/v4.0.0). ### DevTools Migration

  The DevTools client has been migrated to `**nuxtseo-layer-devtools**`, a shared layer used across all Nuxt SEO modules. This means the DevTools panel is now consistent across modules and maintained in one place. No action is needed unless you were importing DevTools internals directly. ## 🔗 ESLint Integration

  Broken links are typically only caught at build time or during development server navigation. The new ESLint integration gives you instant feedback directly in your editor by validating relative URLs against your app's known routes and sitemap data. ### `**link-checker/valid-route**`

  Checks that relative URLs match a known vue-router route pattern. Uses radix3 for dynamic route matching and fuse.js for "did you mean?" typo suggestions.

  **Severity:** `**error**`

  ```
  
  ```

  ### `**link-checker/valid-sitemap-link**`

  Checks that relative URLs exist in the sitemap. For dynamic routes, warns when sibling URLs exist in the sitemap but the linked URL does not.

  **Severity:** `**warn**`

  ```
  
  ```

  ### What Gets Checked

  Both rules scan for relative URLs in:
  - **Vue templates:** `{lang="html"},`, ``{lang="html"}
  - **TypeScript/JavaScript:** `navigateTo('...')`, `router.push('...')`, `router.replace('...')`
  - **Markdown:** `[text](/url)` link syntax (via processor)

  External URLs, anchors, mailto/tel links, and dynamic bindings are automatically skipped. ### Zero Config with `**@nuxt/eslint**`

  If you're using `**@nuxt/eslint**`, both rules are automatically registered via the `**eslint:config:addons**` hook. Zero-config.

  For manual setup, import the standalone export:

  ```
  import linkCheckerPlugin from 'nuxt-link-checker/eslint'

  export default [
    {
      files: ['**/*.vue', '**/*.ts'],
      plugins: {
        'link-checker': linkCheckerPlugin,
      },
      rules: {
        'link-checker/valid-route': 'error',
        'link-checker/valid-sitemap-link': 'warn',
      },
    },
  ]
  ```

  See the [**~~ESLint Integration guide~~**](https://nuxtseo.com/guides/eslint) for full details including markdown support, skipping links, and configuration options. ## Changelog ### 🚀 Features
  - Add ESLint integration with route validation rules - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/76~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/76) [`**(1c416)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/1c416ed)
  - Add `**excludePages**` config to skip link checking on specific pages - by @harlan-zw [`**(f9a58)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/f9a58c8)
  - Show source file paths in link inspection console output - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/78~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/78) [`**(b7109)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/b7109c7) ### 🐞 Bug Fixes
  - Serialize RegExp in excludeLinks for client-side filtering - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/77~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/77) [`**(7e5d1)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/7e5d149) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.3.9...v5.0.0)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)2 months agov8.0.1 ### 🏎 Performance
  - Optimize bundle - by @harlan-zw [`**(a9a6f)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/a9a6f63) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v8.0.0...v8.0.1)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)2 months agov8.0.0** Major **

  The v8 release introduces social sharing composables, a CLI for icon generation, automatic inline minification, devtools integration, and several quality of life improvements for i18n and breadcrumb users. ## ⚠️ Breaking Changes ### Site Config v4

  Nuxt Site Config is a module used internally by Nuxt SEO Utils.

  The major update to v4.0.0 shouldn't have any direct effect on your site, however, you may want to double-check the [**~~breaking changes~~**](https://github.com/harlan-zw/nuxt-site-config/releases/tag/v4.0.0). ## 🔗 `**useShareLinks()**` Composable

  Adding social share buttons to your site means wrangling platform specific URL formats, query parameters, and UTM tracking across every network. `**useShareLinks()**` handles all of that, giving you reactive share URLs for 8 platforms with built in UTM attribution.

  ```
  const links = useShareLinks({
    title: 'Check this out',
    utm: { campaign: 'launch' }
  })



    Share on Twitter
    Share on Facebook
    Share on LinkedIn
  ```

  Supported platforms: `**twitter**`, `**facebook**`, `**linkedin**`, `**whatsapp**`, `**telegram**`, `**reddit**`, `**pinterest**`, `**email**`.

  UTM tracking is enabled by default with automatic per-platform `**utm_source**` values. Disable with `**utm: false**` or provide a custom configuration.

  ```
  useShareLinks({
    utm: {
      source: 'auto', // uses platform name
      medium: 'social',
      campaign: 'spring-launch'
    },
    twitter: { via: 'harloops', hashtags: ['nuxt', 'seo'] },
    pinterest: { media: 'https://example.com/image.png' }
  })
  ```

  ## ⚡ Inline Script & Style Minification

  Nuxt minifies your bundled JS and CSS, but inline `**and**` tags injected via `**useHead()**` or hydration payloads ship unminified. On content heavy pages this adds meaningful weight to every SSR response. v8 now automatically minifies these inline tags in production with zero configuration.

  Two complementary modes work together:
  - **Build mode** uses [**~~Rolldown~~**](https://rolldown.rs/) (Vite 8+) or [**~~esbuild~~**](https://esbuild.github.io/) with [**~~lightningcss~~**](https://lightningcss.dev/) for full minification of prerendered HTML and `**app.head**` content.
  - **Runtime mode** uses lightweight pure JS minifiers (no native deps) to minify hydration payloads and `**useHead()**` injections on every SSR request, compatible with any deployment target.

  Enabled by default. Configure or disable per mode:

  ```
  export default defineNuxtConfig({
    seo: {
      minify: true, // default — both modes
      // minify: { build: true, runtime: false },
      // minify: false,
    },
  })
  ```

  See the [**~~Inline Minification guide~~**](https://nuxtseo.com/getting-started/guides/minification) for full details. ## 🖼️ `**nuxt-seo-utils icons**` CLI Command

  Every platform expects a different icon size and format: browsers want `**favicon.ico**`, iOS needs `**apple-touch-icon.png**`, PWAs require 192px and 512px variants. Manually exporting and maintaining all of these from a single logo is tedious. This CLI command generates every variant from one source image.

  ```
  npx nuxt-seo-utils icons --source logo.svg
  ```

  Generates the following files in your public directory:
  - `**favicon.ico**` (32x32)
  - `**icon-16x16.png**`
  - `**icon-32x32.png**`
  - `**apple-touch-icon.png**` (180x180)
  - `**icon-192x192.png**`
  - `**icon-512x512.png**`

  Accepts SVG, PNG, JPG, and WebP source formats. ## 🏷️ Configurable `**tagPriority**` for OG Meta Tags

  Some crawlers stop reading `**after a certain byte limit. If large style blocks appear before your OG meta tags, crawlers may never see them. This option lets you control where SEO meta tags are placed in the**` so they render before style blocks that could push them past the limit.

  ```
  export default defineNuxtConfig({
    seoUtils: {
      tagPriority: 30 // default
    }
  })
  ```

  Lower values place tags earlier in the ``. The default of `**30**` ensures SEO tags appear before style blocks (priority 40-60). ## 🛠️ Devtools Integration

  Debugging SEO issues usually means viewing page source, checking meta tags manually, and testing share previews through each platform. The new devtools panel at `**/__nuxt-seo-utils**` gives you a single dashboard to inspect all meta tags and preview social share cards during development. ## 📝 `**useFallbackTitle()**` Composable

  Pages without an explicit `**useHead({ title })**` still need a reasonable title for SEO and browser tabs. Previously this fallback logic was internal. Now it's exposed as a standalone composable so you can use the same resolution logic (route metadata, i18n keys, title cased URL segments) anywhere in your app.

  ```
  const title = useFallbackTitle()
  // /about-us → "About Us"
  // 404 page  → "404 - Not Found"
  ```

  ## ⚡ Performance
  - Replaced `**fast-glob**` with `**tinyglobby**` for faster file matching
  - Inline minification reduces SSR HTML payload size with minimal runtime overhead ## 🐛 Bug Fixes
  - **Error pages**: Preserve user-defined titles on error pages instead of overwriting them
  - **i18n**: Resolve fallback page titles from i18n translation keys ( `**pages.{routeName}.title**`)
  - **Breadcrumbs**: Resolve Schema.org duplicate `**@id**` and double registration
  - **Meta precedence**: Ensure `**useServerSeoMeta**` takes precedence over site defaults ## Changelog ### 🚀 Features
  - Nuxt-seo-utils CLI with icons command - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/76~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/76) [`**(1edae)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/1edae77)
  - Devtools - by @harlan-zw [`**(494bc)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/494bce5)
  - Minify inline SSR scripts using esbuild/terser - by @harlan-zw [`**(4e939)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/4e939b6)
  - Support two minification modes (esbuild + lightweight) - by @harlan-zw [`**(d35cd)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/d35cd0d)
  - Support Rolldown (Vite 8) for build-time JS minification - by @harlan-zw [`**(c5682)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/c568225)
  - Minify inline scripts and styles in SSR - by @harlan-zw and **Copilot Autofix powered by AI** in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/99~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/99) [`**(15ad7)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/15ad7b0)
  - **seo**:
    - Add configurable tagPriority for OG meta tags - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/89~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/89) [`**(e1125)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/e11250d)
    - Add useShareLinks composable for social sharing URLs - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/92~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/92) [`**(147a5)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/147a595)
    - Extract fallback title logic into useFallbackTitle composable - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/91~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/91) [`**(add78)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/add7801) ### 🐞 Bug Fixes
  - Ensure useServerSeoMeta takes precedence over site defaults - by @harlan-zw [`**(5fcd4)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/5fcd4df)
  - Narrow statusCode type before includes check - by @harlan-zw [`**(23116)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/23116ce)
  - Preserve user-defined titles on error pages - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/90~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/90) [`**(cede3)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/cede361)
  - Merge main, fix CodeQL HTML regex warnings - by @harlan-zw [`**(387ea)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/387ea7a)
  - Resolve typecheck errors in minifyPrerenderScripts - by @harlan-zw [`**(71a01)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/71a013e)
  - Suppress rolldown/experimental type error for Vite 7 projects - by @harlan-zw [`**(01499)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/0149984)
  - Use dynamic string import for rolldown to avoid TS2307 - by @harlan-zw [`**(5f5ca)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/5f5caea)
  - Add eslint-disable for template-curly-in-string in minify tests - by @harlan-zw [`**(dc9be)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/dc9be4c)
  - Use rolldown >=1.0.0-beta.0 peer dep to include pre-releases - by @harlan-zw [`**(ebcb1)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/ebcb160)
  - Resolve CI lint, typecheck errors - by @harlan-zw [`**(47fb3)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/47fb321)
  - **breadcrumbs**: Resolve schema.org duplicate @id and double registration - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/88~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/88) [`**(f52ae)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/f52ae32)
  - **docs**: Update link to `**infer-seo-meta-tags**` plugin - by @hacknug in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/80~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/80) [`**(83b54)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/83b54b7)
  - **i18n**: Resolve fallback page titles from i18n translations - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/94~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/94) [`**(63067)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/630672a) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.19...v8.0.0)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)2 months agov4.0.1 ### 🐞 Bug Fixes
  - Devtool refresh - by @harlan-zw [`**(458bf)**`](https://github.com/harlan-zw/nuxt-site-config/commit/458bf08)
  - **devtools**: Sync UI - by @harlan-zw [`**(93f7b)**`](https://github.com/harlan-zw/nuxt-site-config/commit/93f7b21)
  - **i18n**: Defer locale resolution to support no_prefix strategy - by @harlan-zw [`**(de334)**`](https://github.com/harlan-zw/nuxt-site-config/commit/de33423) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v4.0.0...v4.0.1)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)2 months agov8.0.1 ### 🐞 Bug Fixes
  - Broken runtime paths - by @harlan-zw [`**(5eab0)**`](https://github.com/nuxt-modules/sitemap/commit/5eab0c1) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v8.0.0...v8.0.1)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)2 months agov6.0.0** Major **

  The v6 major of Nuxt Schema.org adds a new content composable, fixes SSR memory leaks, resolves `**@id**` URL generation issues, and migrates the devtools to the shared nuxtseo infrastructure. ## ⚠️ Breaking Changes ### Site Config v4

  Nuxt Site Config is a module used internally by Nuxt Schema.org.

  Its major update to v4.0.0 shouldn't have any direct effect on your site, however, you may want to double check the [**~~breaking changes~~**](https://github.com/harlan-zw/nuxt-site-config/releases/tag/v4.0.0). ### Devtools Rewrite

  The devtools panel has been migrated to the shared `**nuxtseo-shared**` infrastructure. The UI has been cleaned up and now includes a schema validator, debug view, raw JSON view, and documentation links. If you relied on the previous devtools layout, the information is still available under new navigation tabs. ## 🚀 Features ### `**defineSchemaOrgSchema()**` Composable

  A new composable for `**@nuxt/content**` v3 that simplifies adding Schema.org fields to your content schema.content.config.ts

  ```
  import { defineCollection, z } from '@nuxt/content'
  import { defineSchemaOrgSchema } from 'nuxt-schema-org/content'

  export default defineContentConfig({
    collections: {
      pages: defineCollection({
        type: 'page',
        source: '**/*.md',
        schema: z.object({
          ...defineSchemaOrgSchema(z),
        }),
      }),
    },
  })
  ```

  This replaces the previous `**asSchemaOrgCollection()**` helper, which is now deprecated. ## 🔧 Bug Fixes ### SSR Memory Leak from Reactive Scopes

  Reactive scopes created during SSR were not being disposed, causing memory to accumulate across requests. The plugin now resolves paths directly on the server without creating computed refs, avoiding leaked reactive watchers entirely. ### `**@id**` URLs Now Respect `**app.baseURL**`

  All `**defineXYZ**` helpers (e.g. `**defineWebPage**`, `**defineOrganization**`) now correctly include `**app.baseURL**` when generating `**@id**` values. Previously, sites deployed under a base path (e.g. `**/docs/**`) would produce `**@id**` URLs missing that prefix. ### Nuxt Context Preserved in Computed Refs

  Passing a computed ref to `**useSchemaOrg()**` could trigger "useNuxtApp() called outside of setup" errors when Unhead later evaluated the getter. The composable now wraps ref inputs with `**runWithContext()**` to preserve the Nuxt async context. ### 🚀 Features
  - **content**: Add `**defineSchemaOrgSchema()**` composable - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-schema-org/issues/110~~**](https://github.com/harlan-zw/nuxt-schema-org/issues/110) [`**(8b2c4)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/8b2c47c) ### 🐞 Bug Fixes
  - Dispose reactive scopes after SSR to prevent memory leak - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-schema-org/issues/107~~**](https://github.com/harlan-zw/nuxt-schema-org/issues/107) [`**(c02ae)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/c02aee6)
  - Ensure all defineXYZ helpers respect app.baseUrl for @id - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-schema-org/issues/108~~**](https://github.com/harlan-zw/nuxt-schema-org/issues/108) [`**(52977)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/52977d6)
  - **devtools**: Clean up UI - by @harlan-zw [`**(dede4)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/dede404)
  - **docs**: Fix broken code-block in setup-identity guide - by @harlan-zw and **Claude Opus 4.5** in [**~~https://github.com/harlan-zw/nuxt-schema-org/issues/99~~**](https://github.com/harlan-zw/nuxt-schema-org/issues/99) [`**(b2e6e)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/b2e6e10)
  - **useSchemaOrg**: Preserve Nuxt context when resolving computed refs - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-schema-org/issues/109~~**](https://github.com/harlan-zw/nuxt-schema-org/issues/109) [`**(0700a)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/0700a2f) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v5.0.10...v6.0.0)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov6.0.1

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v6.0.0...v6.0.1)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov6.0.0** Major **

  The v6 major of Nuxt Robots adds new content composables, improves validation with warnings support, and includes several important bug fixes. ## ⚠️ Breaking Changes ### Site Config v4

  Nuxt Site Config is a module used internally by Nuxt Robots.

  Its major update to v4.0.0 shouldn't have any direct effect on your site, however, you may want to double check the [**~~breaking changes~~**](https://github.com/harlan-zw/nuxt-site-config/releases/tag/v4.0.0). ### `**robots:config**` Hook Context

  The `**HookRobotsConfigContext**` now includes a `**warnings: string[]**` field alongside the existing `**errors: string[]**`. If you use the `**robots:config**` Nitro hook and inspect the context, be aware of this new field. ## 🚀 Features ### `**defineRobotsSchema()**` Composable

  A new composable for `**@nuxt/content**` v3 that simplifies adding robots fields to your content schema.content.config.ts

  ```
  import { defineCollection, z } from '@nuxt/content'
  import { defineRobotsSchema } from '@nuxtjs/robots/content'

  export default defineContentConfig({
    collections: {
      pages: defineCollection({
        type: 'page',
        source: '**/*.md',
        schema: z.object({
          ...defineRobotsSchema(z),
        }),
      }),
    },
  })
  ```

  This replaces the previous `**asRobotsCollection()**` helper, which is now deprecated. ### Validation Warnings

  The robots.txt validation system now supports warnings in addition to errors. The first warning checks for `**Disallow: /api**` rules, which may unintentionally block API routes that need to be accessible.

  Warnings appear in the devtools debug view alongside errors, helping you catch potential misconfigurations before they cause issues. ### Production Debug Route

  A new `**/__robots__/debug-production.json**` server route is available in development. It fetches your production site's `**robots.txt**`, validates it, and returns a structured response with errors, warnings, parsed groups, and sitemaps. This makes it easy to compare your local configuration against what's live in production. ## 🔧 Bug Fixes ### `**skipSiteIndexable**` Now Skips `**Disallow: /**`

  Previously, setting `**skipSiteIndexable: true**` (used by sitemap generation) only skipped the site config indexable check. It now also filters out `**Disallow: /**` root disallow rules from path matching, ensuring sitemap URLs are correctly generated on staging or non-indexable environments. Specific path rules like `**/admin**` still apply as expected. ### Route Rules Nullish Guard

  Route rules with `**undefined**` or `**null**` values no longer cause runtime errors. The `**normaliseRobotsRouteRule**` function now safely handles nullish input. ### Devtools Meta Tag Parsing

  Meta tag parsing in the devtools debug view is now attribute order agnostic, fixing cases where `` was not detected. ### 🚀 Features
  - **content**: Add `**defineRobotsSchema()**` composable - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/283~~**](https://github.com/nuxt-modules/robots/issues/283) [`**(ac97d)**`](https://github.com/nuxt-modules/robots/commit/ac97d39)
  - **validation**: Add warnings support and warn on /api disallow - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/287~~**](https://github.com/nuxt-modules/robots/issues/287) [`**(379bb)**`](https://github.com/nuxt-modules/robots/commit/379bb75) ### 🐞 Bug Fixes
  - Guard against undefined routeRules values - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/277~~**](https://github.com/nuxt-modules/robots/issues/277) [`**(393d7)**`](https://github.com/nuxt-modules/robots/commit/393d788)
  - `**skipSiteIndexable**` now skips `**disallow: /**` robots.txt rules - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/282~~**](https://github.com/nuxt-modules/robots/issues/282) [`**(57957)**`](https://github.com/nuxt-modules/robots/commit/579571f)
  - **devtools**:
    - Make meta tag parsing attribute order agnostic - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/280~~**](https://github.com/nuxt-modules/robots/issues/280) [`**(37f52)**`](https://github.com/nuxt-modules/robots/commit/37f5297)
    - Production inspect mode - by @harlan-zw [`**(3a626)**`](https://github.com/nuxt-modules/robots/commit/3a626a3) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.7.1...v6.0.0)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)2 months agov8.0.0** Major **

  The v8 release focuses on a fully rewritten devtools experience and several quality of life improvements for Nuxt Content v3 and i18n users. ## ⚠️ Breaking Changes ### Site Config v4

  Nuxt Site Config is a module used internally by Nuxt Sitemap.

  The major update to v4.0.0 shouldn't have any direct effect on your site, however, you may want to double-check the [**~~breaking changes~~**](https://github.com/harlan-zw/nuxt-site-config/releases/tag/v4.0.0). ### `**asSitemapCollection()**` Deprecated

  The `**asSitemapCollection()**` composable has been replaced by `**defineSitemapSchema()**`. The old API still works but will log a deprecation warning.

  ```
  import { defineCollection, z } from '#content/collections'
  - import { asSitemapCollection } from '#sitemap/content'
  + import { defineSitemapSchema } from '#sitemap/content'

  export const collections = {
  -  content: defineCollection(asSitemapCollection({
  -    type: 'page',
  -    source: '**/*.md',
  -    schema: z.object({ title: z.string() })
  -  }))
  +  content: defineCollection({
  +    type: 'page',
  +    source: '**/*.md',
  +    schema: z.object({
  +      title: z.string(),
  +      sitemap: defineSitemapSchema()
  +    })
  +  })
  }
  ```

  ## 🚀 New Features ### `**defineSitemapSchema()**` Composable

  A new composable for Nuxt Content v3 that provides a cleaner API for integrating sitemap configuration into your content collections. Supports `**filter**`, `**onUrl**`, and `**name**` options.

  ```
  import { defineCollection, z } from '#content/collections'
  import { defineSitemapSchema } from '#sitemap/content'

  export const collections = {
    content: defineCollection({
      type: 'page',
      source: '**/*.md',
      schema: z.object({
        title: z.string(),
        sitemap: defineSitemapSchema({
          filter: entry => !entry.path?.startsWith('/draft'),
          onUrl: (url) => {
            // customize URL entries
            return url
          }
        })
      })
    })
  }
  ```

  ### `**definePageMeta**` Sitemap Configuration

  You can now configure sitemap options directly in your page components using `**definePageMeta**`.

  ```
  definePageMeta({
    sitemap: {
      changefreq: 'daily',
      priority: 0.8
    }
  })
  ```

  ### i18n Multi-Sitemap with Custom Sitemaps

  Custom sitemaps with `**includeAppSources: true**` are now automatically expanded per locale, generating `**{locale}-{name}**` formatted sitemaps. ### Debug Production Endpoint

  A new `**/__sitemap__/debug-production.json**` endpoint is available in development mode, allowing you to inspect what the production sitemap output will look like during development. ## 🐛 Bug Fixes
  - **Content v3**: Filter `**.navigation**` paths from sitemap URL generation
  - **Content v3**: Guard `**afterParse**` hook to prevent silent HMR failures
  - **i18n**: Include base URL in multi-sitemap redirect
  - **i18n**: Fix exclude filters when base URL and i18n prefixes are present
  - **i18n**: Respect `**autoI18n: false**` to generate single sitemap instead of per-locale sitemaps
  - **Types**: Use `**robots**` instead of `**index**` in route rules type definition
  - **Chunked sitemaps**: Fix path resolution with `**sitemapsPathPrefix: '/'**`## ⚡ Performance
  - Replaced `**chalk**` with `**consola/utils**` for a smaller bundle
  - Use `**URL.canParse()**` instead of try/catch `**new URL()**` for URL validation
  - Use `**addPrerenderRoutes()**` API instead of manual route pushing ### 🚀 Features
  - **content**: Add `**defineSitemapSchema()**` composable - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/576~~**](https://github.com/nuxt-modules/sitemap/issues/576) [`**(603e6)**`](https://github.com/nuxt-modules/sitemap/commit/603e669) ### 🐞 Bug Fixes
  - `**definePageMeta**` sitemap configuration not applied - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/572~~**](https://github.com/nuxt-modules/sitemap/issues/572) [`**(9f74a)**`](https://github.com/nuxt-modules/sitemap/commit/9f74afb)
  - Include base URL in multi sitemap redirect - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/573~~**](https://github.com/nuxt-modules/sitemap/issues/573) [`**(94bc2)**`](https://github.com/nuxt-modules/sitemap/commit/94bc20f)
  - Respect `**autoI18n: false**` to generate single sitemap - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/570~~**](https://github.com/nuxt-modules/sitemap/issues/570) [`**(94458)**`](https://github.com/nuxt-modules/sitemap/commit/944584b)
  - Allow i18n multi-sitemap with custom sitemaps - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/548~~**](https://github.com/nuxt-modules/sitemap/issues/548) [`**(e25b9)**`](https://github.com/nuxt-modules/sitemap/commit/e25b9f1)
  - **content**:
    - Guard afterParse hook to prevent silent HMR failures - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/577~~**](https://github.com/nuxt-modules/sitemap/issues/577) [`**(0ce4e)**`](https://github.com/nuxt-modules/sitemap/commit/0ce4e6a)
    - Filter .navigation paths and document i18n onUrl pattern - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/578~~**](https://github.com/nuxt-modules/sitemap/issues/578) [`**(c0058)**`](https://github.com/nuxt-modules/sitemap/commit/c00585d)
  - **i18n**:
    - Exclude filters with base URL and i18n prefixes - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/571~~**](https://github.com/nuxt-modules/sitemap/issues/571) [`**(fbc69)**`](https://github.com/nuxt-modules/sitemap/commit/fbc69b3)
  - **types**:
    - Use `**robots**` instead of `**index**` in route rules - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/569~~**](https://github.com/nuxt-modules/sitemap/issues/569) [`**(e9167)**`](https://github.com/nuxt-modules/sitemap/commit/e91679c) ### 🏎 Performance
  - Replace `**chalk**` with `**consola/utils**` - by @KazariEX in [**~~https://github.com/nuxt-modules/sitemap/issues/555~~**](https://github.com/nuxt-modules/sitemap/issues/555) [`**(ae520)**`](https://github.com/nuxt-modules/sitemap/commit/ae520f1) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.6.0...v8.0.0)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov6.0.0-beta.5

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v6.0.0-beta.4...v6.0.0-beta.5)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov6.0.0-beta.4

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v6.0.0-beta.3...v6.0.0-beta.4)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov6.0.0-beta.3 ### 🐞 Bug Fixes
  - **devtools**: Production inspect mode - by @harlan-zw [`**(3a626)**`](https://github.com/nuxt-modules/robots/commit/3a626a3) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v6.0.0-beta.2...v6.0.0-beta.3)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov6.0.0-beta.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v6.0.0-beta.1...v6.0.0-beta.2)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov6.0.0-beta.1 ### 🚀 Features
  - **content**: Add `**defineRobotsSchema()**` composable - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/283~~**](https://github.com/nuxt-modules/robots/issues/283) [`**(ac97d)**`](https://github.com/nuxt-modules/robots/commit/ac97d39)
  - **validation**: Add warnings support and warn on /api disallow - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/287~~**](https://github.com/nuxt-modules/robots/issues/287) [`**(379bb)**`](https://github.com/nuxt-modules/robots/commit/379bb75) ### 🐞 Bug Fixes
  - Guard against undefined routeRules values - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/277~~**](https://github.com/nuxt-modules/robots/issues/277) [`**(393d7)**`](https://github.com/nuxt-modules/robots/commit/393d788)
  - `**skipSiteIndexable**` now skips `**disallow: /**` robots.txt rules - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/282~~**](https://github.com/nuxt-modules/robots/issues/282) [`**(57957)**`](https://github.com/nuxt-modules/robots/commit/579571f)
  - **devtools**: Make meta tag parsing attribute order agnostic - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/280~~**](https://github.com/nuxt-modules/robots/issues/280) [`**(37f52)**`](https://github.com/nuxt-modules/robots/commit/37f5297) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.7.1...v6.0.0-beta.1)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)2 months agov4.0.0** Major **## ⚠️ Breaking Changes ### 🏷️ Removed Implicit Site Name Inference

  Previously, `**site.name**` was automatically inferred from your `**package.json**` `**name**` field or project directory name. This caused package name leakage in public APIs (e.g., `**@nuxtjs/sitemap**` exposing internal package names).

  You must now explicitly set `**site.name**`:nuxt.config

  ```
  export default defineNuxtConfig({
    site: {
      name: 'My Website',
    }
  })
  ```

  Or via environment variable:

  ```
  NUXT_SITE_NAME="My Website"
  ```

  If not set, `**site.name**` will be `**undefined**`. ### 🔑 Removed Legacy `**site***` Runtime Config Keys

  The deprecated `**siteUrl**`, `**siteName**`, and `**siteDescription**` runtime config keys have been removed.

  ```
   export default defineNuxtConfig({
  -  runtimeConfig: {
  -    public: {
  -      siteUrl: 'https://example.com',
  -    }
  -  },
  +  site: {
  +    url: 'https://example.com',
  +  }
   })
  ```

  ### 🔄 Removed Server-Side `**useSiteConfig**` Composable

  The server-side `**useSiteConfig()**`composable has been removed to resolve auto-import name collisions between client and server composables.

  Use `**getSiteConfig()**` on the server instead:

  ```
  -const config = useSiteConfig(event)
  +const config = getSiteConfig(event)
  ```

  The client-side `**useSiteConfig()**` composable is unchanged. ### 🗑️ Removed `**getSiteIndexable**` Composable

  The `**getSiteIndexable()**` composable has been removed. Check the `**indexable**` property directly:

  ```
  -const indexable = getSiteIndexable(event)
  +const { indexable } = getSiteConfig(event)
  ```

  ### 📦 Removed `**#internal/nuxt-site-config**` Barrel Export

  The legacy `**#internal/nuxt-site-config**` import path has been removed. Use the documented public APIs instead. ### 🏗️ Removed `**SiteConfig**` Type Alias

  The deprecated `**SiteConfig**` type alias has been removed. Use `**SiteConfigResolved**` instead:

  ```
  -import type { SiteConfig } from 'nuxt-site-config'
  +import type { SiteConfigResolved } from 'nuxt-site-config'
  ```

  ## ✨ New Features ### 🎯 Named Priority Constants

  Site config priority levels are now exposed as named constants for better readability when setting config priorities:

  ```
  import { SiteConfigPriority } from 'site-config-stack'

  updateSiteConfig({
    name: 'My Site',
    _priority: SiteConfigPriority.runtime,
  })
  ```

  Available priorities: `**system**`, `**vendor**`, `**nitro**`, `**config**`, `**i18n**`, `**build**`, `**runtime**`. ### 🚨 Breaking Changes
  - Remove implicit site name inference from package.json, rootDir, and legacy runtimeConfig - by @harlan-zw [`**(e7538)**`](https://github.com/harlan-zw/nuxt-site-config/commit/e753810)
  - Remove `**#internal/nuxt-site-config**` legacy barrel export - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-site-config/issues/86~~**](https://github.com/harlan-zw/nuxt-site-config/issues/86) [`**(b3890)**`](https://github.com/harlan-zw/nuxt-site-config/commit/b3890a4)
  - Remove deprecated server useSiteConfig to resolve auto-import collision - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-site-config/issues/82~~**](https://github.com/harlan-zw/nuxt-site-config/issues/82) [`**(bee54)**`](https://github.com/harlan-zw/nuxt-site-config/commit/bee548f) ### 🐞 Bug Fixes
  - Avoid SSR memory leak from computed refs in i18n plugin - by @harlan-zw [`**(2bef8)**`](https://github.com/harlan-zw/nuxt-site-config/commit/2bef847)
  - Avoid SSR memory leak from computed refs in i18n plugin - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-site-config/issues/81~~**](https://github.com/harlan-zw/nuxt-site-config/issues/81) [`**(9bda3)**`](https://github.com/harlan-zw/nuxt-site-config/commit/9bda35f) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.21...v4.0.0)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)2 months agov4.0.0** Major **

  This is a major release upgrading OG Image to v6 with a new Takumi renderer, multiple OG images per page, native Tailwind v4 support, and redesigned DevTools — plus stability fixes across Robots and Site Config. ### Highlights
  - **OG Image v6**: New [**~~Takumi renderer~~**](https://nuxtseo.com/docs/og-image) (2-10x faster), [**~~multiple OG images per page~~**](https://nuxtseo.com/docs/og-image), native [**~~Tailwind v4~~**](https://nuxtseo.com/docs/og-image) and [**~~@nuxt/fonts~~**](https://nuxtseo.com/docs/og-image) integration, and redesigned DevTools
  - **Robots**: [**~~Nuxt 4 compatibility~~**](https://github.com/nuxt-modules/robots/issues/272) support and DevTools fixes
  - **Site Config**: Improved dev mode URL handling and multi-tenancy fixes ### ⚠️ Breaking Changes
  - **OG Image v6**: See [**~~migration notes~~**](https://nuxtseo.com/docs/og-image/migration-guide/v6) ### ✅ Upgrading

  Our recommendation for upgrading is to run:

  ```
  npx nuxt upgrade --dedupe
  ```

  This will deduplicate your lockfile as well, and help ensure that you pull in updates from other dependencies that Nuxt relies on, particularly in the unjs ecosystem.

  For OG Image v6, run the migration CLI:

  ```
  npx nuxt-og-image migrate v6
  ```

  Full migration guide: /og-image/migration-guide/v6

  📦 Module Updates
  - 🐛 Site Config: Don't force https protocol in dev mode ([**~~https://github.com/harlan-zw/nuxt-site-config/commit/6788d81~~**](https://github.com/harlan-zw/nuxt-site-config/commit/6788d81))
  - 🐛 Site Config: Strip port from host when matching multi-tenancy config ([**~~https://github.com/harlan-zw/nuxt-site-config/commit/863a8b3~~**](https://github.com/harlan-zw/nuxt-site-config/commit/863a8b3))
  - 🐛 Site Config: Fix broken IPv6 loopback handling ([**~~https://github.com/harlan-zw/nuxt-site-config/commit/e5e09da~~**](https://github.com/harlan-zw/nuxt-site-config/commit/e5e09da)) [**~~https://github.com/harlan-zw/nuxt-seo/compare/v3.4.0...v4.0.0~~**](https://github.com/harlan-zw/nuxt-seo/compare/v3.4.0...v4.0.0)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)2 months agov0.12.1 ### 🐞 Bug Fixes
  - Safer markdown serving logic - by @harlan-zw [`**(428ad)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/428adea)
  - Broken prerendering for index.md - by @harlan-zw [`**(3ff4c)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/3ff4cb9) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.12.0...v0.12.1)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)2 months agov0.7.6

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.7.5...v0.7.6)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)2 months agov0.12.0 ### 🚀 Features
  - Add Vercel Edge & Neon Postgres support with Drizzle ORM - by @harlan-zw in [**~~https://github.com/nuxt-seo-pro/nuxt-ai-ready/issues/11~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/issues/11) [`**(f21ab)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/f21aba8) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.11.0...v0.12.0)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)2 months agov5.7.1 ### 🐞 Bug Fixes
  - Support nuxt 4 with compatibility version >= 4 - by @lumirelle in [**~~https://github.com/nuxt-modules/robots/issues/272~~**](https://github.com/nuxt-modules/robots/issues/272) [`**(1bf24)**`](https://github.com/nuxt-modules/robots/commit/1bf2418)
  - **devtools**: Broken indexable status - by @harlan-zw [`**(b0030)**`](https://github.com/nuxt-modules/robots/commit/b003020) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.7.0...v5.7.1)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)3 months agov3.2.21 ### 🐞 Bug Fixes
  - Don't force https protocol in dev mode - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-site-config/issues/79~~**](https://github.com/harlan-zw/nuxt-site-config/issues/79) [`**(6788d)**`](https://github.com/harlan-zw/nuxt-site-config/commit/6788d81)
  - Strip port from host when matching multi-tenancy config - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-site-config/issues/80~~**](https://github.com/harlan-zw/nuxt-site-config/issues/80) [`**(863a8)**`](https://github.com/harlan-zw/nuxt-site-config/commit/863a8b3) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.20...v3.2.21)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)3 months agov3.2.20 ### 🐞 Bug Fixes
  - Broken ipv6 loopback handling - by @harlan-zw [`**(e5e09)**`](https://github.com/harlan-zw/nuxt-site-config/commit/e5e09da) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.19...v3.2.20)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)3 months agov0.11.0

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.12...v0.11.0)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)3 months agov3.4.0

  This release brings major updates to Robots and Sitemap with `**definePageMeta()**` integration, a new `**zeroRuntime**` sitemap mode, a redesigned sitemap.xsl, and improved i18n support across modules, plus stability fixes throughout.

  Highlights:
  - **Robots**: New [`**definePageMeta()**`**~~ integration~~**](https://nuxtseo.com/docs/robots/guides/define-page-meta) for per-page robot rules and improved [**~~i18n custom route path~~**](https://nuxtseo.com/docs/robots/guides/i18n) support
  - **Sitemap**: New [`**zeroRuntime**`**~~ mode~~**](https://nuxtseo.com/docs/sitemap/guides/zero-runtime), [`**definePageMeta()**`**~~ integration~~**](https://nuxtseo.com/docs/sitemap/guides/define-page-meta), [**~~redesigned~~****~~ sitemap.xsl~~**](https://nuxtseo.com/docs/sitemap/guides/xsl) with light/dark mode, and [**~~Nuxt Content collection filters~~**](https://nuxtseo.com/docs/sitemap/integrations/content)
  - **OG Image**: v6 beta opt-in now supported ## ✅ Upgrading

  Our recommendation for upgrading is to run:

  ```
  npx nuxt upgrade --dedupe
  ```

  This will deduplicate your lockfile as well, and help ensure that you pull in updates from other dependencies that Nuxt relies on, particularly in the unjs ecosystem. ## 📦 Module Updates

  Nuxt Robots (v5.6.4 → v5.7.0)
  - ✨ Robots `**definePageMeta**` integration
  - ✨ i18n support for custom route paths in allow/disallow expansion
  - 🐛 Fix runtime resolution bug on `**@nuxtjs/robots/util**`
  - 🐛 Fix `**useBotDetection()**` empty when ran client-side only
  - 🐛 Fix broken route rules for Nuxt v3
  - 🐛 Fix type augmentation / definitions rework
  - 🐛 Fix Content-Usage/Content-Signal parsing with spaces after commas
  - 🐛 Fix broken `**useRobotsRule**` type, prevent `**_robots.txt**` in final bundle

  Nuxt Sitemap (v7.4.9 → v7.6.0)
  - ✨ `**zeroRuntime**` mode for fully static sitemap generation
  - ✨ Build-time hook `**sitemap:prerender:done**`
  - ✨ Support sitemap on `**definePageMeta**`
  - ✨ Sitemap.xsl redesign with light/dark mode and validation warnings
  - ✨ Nuxt Content collection filters and `**onUrl**` function
  - ✨ DevTools UI refresh
  - ✨ `**parseSitemapIndex()**` utility
  - ⚡ Optimized XML generation, faster entry resolution, precomputed filter functions
  - 🐛 Fix memory leak on recursive sitemap requests
  - 🐛 Fix discoverImages missing body
  - 🐛 Fix chunked sitemaps with sitemapsPathPrefix `**/**`
  - 🐛 Fix i18n custom route paths, don't extract alternatives when autoI18n enabled
  - 🐛 Fix h3 v2 resolution, sitemaps with slash in name
  - 🐛 Fix type augments / overrides rework

  Nuxt Site Config (v3.2.11 → v3.2.19)
  - 🐛 Fix env support for internal origin URL resolution
  - 🐛 Fix `**getNitroOrigin**` resolution rework
  - 🐛 Fix DevTools broken build and 500 error
  - 🐛 Fix respect `**devServer.host**`
  - 🐛 Fix i18n possible memory leak
  - 🐛 Fix handle undefined `**import.meta.env**`[**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v3.3.0...v3.4.0)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)3 months agov5.7.0 ### 🚀 Features
  - Robots definePageMeta - by @harlan-zw [`**(d696a)**`](https://github.com/nuxt-modules/robots/commit/d696aea)
  - **i18n**: Support custom route paths in allow/disallow expansion - by @harlan-zw [`**(13294)**`](https://github.com/nuxt-modules/robots/commit/13294fc) ### 🐞 Bug Fixes
  - Rework type augmentation / definitions - by @harlan-zw [`**(a8294)**`](https://github.com/nuxt-modules/robots/commit/a829485)
  - Prevent _robots.txt from being emitted in final bundle - by @harlan-zw [`**(3c6b1)**`](https://github.com/nuxt-modules/robots/commit/3c6b13f)
  - Broken type for useRobotsRule - by @harlan-zw [`**(b236d)**`](https://github.com/nuxt-modules/robots/commit/b236d7e)
  - Broken type for useRobotsRule - by @harlan-zw [`**(439c6)**`](https://github.com/nuxt-modules/robots/commit/439c6db)
  - **validator**:
    - Handle Content-Usage/Content-Signal with spaces after commas - by @harlan-zw [`**(277a0)**`](https://github.com/nuxt-modules/robots/commit/277a0d6)
    - Handle Content-Usage/Content-Signal with spaces after commas - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/261~~**](https://github.com/nuxt-modules/robots/issues/261) [`**(3958a)**`](https://github.com/nuxt-modules/robots/commit/3958a19) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.6.8...v5.7.0)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)3 months agov3.2.19 ### 🐞 Bug Fixes
  - Handle undefined `**import.meta.env**` - by @harlan-zw [`**(7190f)**`](https://github.com/harlan-zw/nuxt-site-config/commit/7190fe1) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.18...v3.2.19)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)3 months agov7.6.0 ### 🚀 Features
  - Support sitemap on `**definePageMeta**` - by @harlan-zw [`**(b61c5)**`](https://github.com/nuxt-modules/sitemap/commit/b61c5c2)
  - Expose sitemap validation warnings on XSL - by @harlan-zw [`**(d5d84)**`](https://github.com/nuxt-modules/sitemap/commit/d5d8466)
  - Sitemap.xsl redesign, light/dark mode - by @harlan-zw [`**(acc20)**`](https://github.com/nuxt-modules/sitemap/commit/acc2064)
  - **content**:
    - Collection filters - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/520~~**](https://github.com/nuxt-modules/sitemap/issues/520) [`**(ae9cc)**`](https://github.com/nuxt-modules/sitemap/commit/ae9cc3b)
    - `**onUrl**` function - by @harlan-zw [`**(0eebd)**`](https://github.com/nuxt-modules/sitemap/commit/0eebd70)
  - **devtools**:
    - UI refresh - by @harlan-zw [`**(94d01)**`](https://github.com/nuxt-modules/sitemap/commit/94d0109)
  - **utils**:
    - `**parseSitemapIndex()**` - by @harlan-zw [`**(6001c)**`](https://github.com/nuxt-modules/sitemap/commit/6001c52) ### 🐞 Bug Fixes
  - Dev tip for sitemaps that don't produce URLs - by @harlan-zw [`**(ac22c)**`](https://github.com/nuxt-modules/sitemap/commit/ac22c95)
  - Rework type augments / overrides - by @harlan-zw [`**(895a7)**`](https://github.com/nuxt-modules/sitemap/commit/895a746)
  - Generating sitemaps with a slash (/) in the name #467 - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/467~~**](https://github.com/nuxt-modules/sitemap/issues/467) [`**(bded4)**`](https://github.com/nuxt-modules/sitemap/commit/bded44e)
  - Warn on missing sitemaps - by @harlan-zw [`**(bd610)**`](https://github.com/nuxt-modules/sitemap/commit/bd6100f)
  - Throw error when prerendering empty sitemap sources - by @harlan-zw [`**(52ea7)**`](https://github.com/nuxt-modules/sitemap/commit/52ea7f2)
  - Avoid external API requests for internal - by @harlan-zw [`**(22739)**`](https://github.com/nuxt-modules/sitemap/commit/227399a) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.5.2...v7.6.0)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.12 ### 🚀 Features
  - Implement proper database connection lifecycle and cleanup - by @harlan-zw [`**(63b45)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/63b45e6) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.11...v0.10.12)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.11 ### 🚀 Features
  - **prerender**: Add concurrency option and use KB for file size logs - by @harlan-zw [`**(9e178)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/9e178eb) ### 🐞 Bug Fixes
  - **module**: Silence node:sqlite rollup warning in virtual module - by @harlan-zw [`**(8e046)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/8e046f5) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.10...v0.10.11)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.10 ### 🐞 Bug Fixes
  - **cloudflare-worker**: Not rechecking sitemap - by @harlan-zw [`**(42619)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/42619f4) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.9...v0.10.10)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)4 months agov3.2.18 ### 🐞 Bug Fixes
  - **i18n**: Possible memory leak - by @harlan-zw [`**(32ba8)**`](https://github.com/harlan-zw/nuxt-site-config/commit/32ba8d2) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.17...v3.2.18)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.9 ### 🐞 Bug Fixes
  - **cloudflare-worker**: Rework bulk work - by @harlan-zw [`**(cce54)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/cce54ec) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.8...v0.10.9)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.8 ### 🐞 Bug Fixes
  - **cloudflare-workers**: Indexnow 500 error - by @harlan-zw [`**(1950e)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/1950ed2) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.7...v0.10.8)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.7 ### 🐞 Bug Fixes
  - Maybe cron sitemap bug - by @harlan-zw [`**(52668)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/52668ec) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.6...v0.10.7)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.6 ### 🐞 Bug Fixes
  - **cloudflare-workers**: Broken sitemap fetching - by @harlan-zw [`**(5ae3c)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/5ae3c22) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.5...v0.10.6)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.5 ### 🐞 Bug Fixes
  - Expose indexing status - by @harlan-zw [`**(97fac)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/97fac9e) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.4...v0.10.5)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.4 ### 🏎 Performance
  - Optimize cron - by @harlan-zw [`**(e21f5)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/e21f5ce)
  - Optimize cron - by @harlan-zw [`**(af456)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/af45652) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.3...v0.10.4)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.3 ### 🏎 Performance
  - Optimize cron - by @harlan-zw [`**(0b35b)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/0b35ba6) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.2...v0.10.3)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.2 ### 🐞 Bug Fixes
  - Misc cron bugs - by @harlan-zw [`**(075c5)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/075c5ce) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.1...v0.10.2)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.1 ### 🐞 Bug Fixes
  - Safer cron usage - by @harlan-zw [`**(c446b)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/c446b77) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.10.0...v0.10.1)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)4 months agov0.7.5

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.7.4...v0.7.5)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)4 months agov0.10.0 ### 🚀 Features
  - `**debugCron**` - by @harlan-zw [`**(394c2)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/394c2be) ### 🐞 Bug Fixes
  - Debug changed pages between builds - by @harlan-zw [`**(9e122)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/9e1226b)
  - Better runtime debug logs - by @harlan-zw [`**(e6c51)**`](https://github.com/nuxt-seo-pro/nuxt-ai-ready/commit/e6c51ef) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-ai-ready/compare/v0.9.4...v0.10.0)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)4 months agov0.7.4 ### 🐞 Bug Fixes
  - Module telementry - by @harlan-zw [`**(e92bb)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/e92bb4d) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.7.3...v0.7.4)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)4 months agov0.7.3 ### 🐞 Bug Fixes
  - Broken latest.json manifest when previewing - by @harlan-zw [`**(b3a99)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/b3a99ee) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.7.2...v0.7.3)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)4 months agov5.6.8 ### 🐞 Bug Fixes
  - Broken route rules for nuxt v3 - by @harlan-zw [`**(dd853)**`](https://github.com/nuxt-modules/robots/commit/dd8532c) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.6.7...v5.6.8)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)4 months agov3.2.17 ### 🐞 Bug Fixes
  - Respect `**devServer.host**` - by @harlan-zw [`**(4f22a)**`](https://github.com/harlan-zw/nuxt-site-config/commit/4f22a71) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.16...v3.2.17)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)4 months agov7.5.2 ### 🐞 Bug Fixes
  - H3 v2 resolution bug - by @harlan-zw [`**(d1cc3)**`](https://github.com/nuxt-modules/sitemap/commit/d1cc3c8) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.5.1...v7.5.2)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)4 months agov3.2.16

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.15...v3.2.16)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)4 months agov3.2.15 ### 🐞 Bug Fixes
  - Lock `**h3**` to v1 - by @harlan-zw [`**(e1397)**`](https://github.com/harlan-zw/nuxt-site-config/commit/e139793) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.14...v3.2.15)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)4 months agov0.7.2 ### 🐞 Bug Fixes
  - Avoid running in prerender context - by @harlan-zw [`**(a2ab4)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/a2ab4b4) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.7.1...v0.7.2)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)4 months agov0.7.1 ### 🐞 Bug Fixes
  - **cloudflare-durable**: Stats not working - by @harlan-zw [`**(e5ff0)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/e5ff050) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.7.0...v0.7.1)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)4 months agov0.7.0 ### 🚨 Breaking Changes
  - Authorized stats and live connection routes - by @harlan-zw and **Claude Opus 4.5** in [**~~https://github.com/nuxt-seo-pro/nuxt-skew-protection/issues/8~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/issues/8) [`**(75c52)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/75c52cd) ### 🐞 Bug Fixes
  - Disable websocket heartbeat - by @harlan-zw [`**(73d37)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/73d372f)
  - Possible memory leak on SSE - by @harlan-zw [`**(6938c)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/6938c2e) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.6.0...v0.7.0)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)4 months agov7.5.1 ### 🐞 Bug Fixes
  - Normalize `**sitemap:sources**` hook - by @harlan-zw [`**(a021e)**`](https://github.com/nuxt-modules/sitemap/commit/a021e4d)
  - **i18n**: Support custom route paths - by @harlan-zw [`**(785ce)**`](https://github.com/nuxt-modules/sitemap/commit/785ce93) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.5.0...v7.5.1)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)5 months agov7.5.0 ### 🚀 Features
  - `**zeroRuntime**` mode - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/532~~**](https://github.com/nuxt-modules/sitemap/issues/532) [`**(1fa92)**`](https://github.com/nuxt-modules/sitemap/commit/1fa92ee)
  - Build-time hook `**sitemap:prerender:done**` - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/534~~**](https://github.com/nuxt-modules/sitemap/issues/534) [`**(a4051)**`](https://github.com/nuxt-modules/sitemap/commit/a405106)
  - Mark entries as pre-encoded `**_encoded: true**` - by @harlan-zw [`**(b1b17)**`](https://github.com/nuxt-modules/sitemap/commit/b1b1777) ### 🐞 Bug Fixes
  - Don't extract alternatives from HTML when autoI18n is enabled - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/537~~**](https://github.com/nuxt-modules/sitemap/issues/537) [`**(018de)**`](https://github.com/nuxt-modules/sitemap/commit/018de0f)
  - Chunked sitemaps with sitemapsPathPrefix '/' - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/536~~**](https://github.com/nuxt-modules/sitemap/issues/536) [`**(2d7db)**`](https://github.com/nuxt-modules/sitemap/commit/2d7db5a)
  - Priority `**1**` -> `**1.0**` - by @harlan-zw [`**(f6b9c)**`](https://github.com/nuxt-modules/sitemap/commit/f6b9cb7) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.4.11...v7.5.0)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)5 months agov7.4.11 ### 🐞 Bug Fixes
  - Memory leak on recursive sitemap requests - by @harlan-zw [`**(09957)**`](https://github.com/nuxt-modules/sitemap/commit/099578a) ### 🏎 Performance
  - Precompute filter functions - by @harlan-zw [`**(117eb)**`](https://github.com/nuxt-modules/sitemap/commit/117ebb6) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.4.10...v7.4.11)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)5 months agov7.4.10 ### 🐞 Bug Fixes
  - **discoverImages**: Missing body - by @farnabaz and @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/531~~**](https://github.com/nuxt-modules/sitemap/issues/531) [`**(b9582)**`](https://github.com/nuxt-modules/sitemap/commit/b95823d) ### 🏎 Performance
  - Optimize xml generation - by @harlan-zw [`**(690f4)**`](https://github.com/nuxt-modules/sitemap/commit/690f414)
  - Faster resolutions of entries - by @harlan-zw [`**(0f2df)**`](https://github.com/nuxt-modules/sitemap/commit/0f2dfef) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.4.9...v7.4.10)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.6.0 ### 🚨 Breaking Changes
  - Require @nuxtjs/robots v5.6.7+ - by @harlan-zw [`**(60eae)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/60eae7e)
  - Standardize message ids and buildId access - by @harlan-zw [`**(232ee)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/232ee21)
  - Initialize connections only with explicit usage - by @harlan-zw [`**(47a8f)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/47a8f50)
  - Clean up - by @harlan-zw [`**(f852d)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/f852d37) ### 🚀 Features
  - Block bots from ws/SSE update checks - by @harlan-zw [`**(427fb)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/427fbaa)
  - `**useSkewProtection()**` lazy mode - by @harlan-zw [`**(f3179)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/f3179f3) ### 🐞 Bug Fixes
  - **cloudflare-durable**: Safer live tracking - by @harlan-zw [`**(e48a9)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/e48a92e) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.5.0...v0.6.0)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)5 months agov5.6.7 ### 🐞 Bug Fixes
  - `**useBotDetection()**` empty when ran client side only - by @harlan-zw [`**(7aba3)**`](https://github.com/nuxt-modules/robots/commit/7aba38f) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.6.6...v5.6.7)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.5.0 ### 🚀 Features
  - View active connections - by @harlan-zw in [**~~https://github.com/nuxt-seo-pro/nuxt-skew-protection/issues/6~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/issues/6) [`**(b03f3)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/b03f369) ### 🐞 Bug Fixes
  - Broken public path resolution - by @harlan-zw [`**(b6c34)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/b6c34cf)
  - Dispose storage connections - by @harlan-zw [`**(b22f0)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/b22f0ef)
  - Nicer errors for storage connection issues - by @harlan-zw [`**(6ad50)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/6ad50f3) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.4.3...v0.5.0)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)5 months agov3.2.14 ### 🐞 Bug Fixes
  - **devtools**: Incorrect property leads to 500 error - by @canstand in [**~~https://github.com/harlan-zw/nuxt-site-config/issues/70~~**](https://github.com/harlan-zw/nuxt-site-config/issues/70) [`**(63ad0)**`](https://github.com/harlan-zw/nuxt-site-config/commit/63ad059) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.13...v3.2.14)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)5 months agov3.2.13 ### 🐞 Bug Fixes
  - **devtools**: Broken build - by @harlan-zw [`**(21d9d)**`](https://github.com/harlan-zw/nuxt-site-config/commit/21d9d38) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.12...v3.2.13)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.4.3 ### 🐞 Bug Fixes
  - **perf**: Less fs operations - by @harlan-zw [`**(f5898)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/f58980b) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.4.2...v0.4.3)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)5 months agov5.6.6 ### 🐞 Bug Fixes
  - Runtime resolution bug on `**@nuxtjs/robots/util**`" - by @harlan-zw [`**(4c64e)**`](https://github.com/nuxt-modules/robots/commit/4c64e4e) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.6.5...v5.6.6)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)5 months agov5.6.5 ### 🐞 Bug Fixes
  - Runtime resolution bug on `**@nuxtjs/robots/util**` - by @harlan-zw [`**(6c9ad)**`](https://github.com/nuxt-modules/robots/commit/6c9ade8) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.6.4...v5.6.5)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.4.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.4.1...v0.4.2)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)5 months agov3.3.0

  This release brings significant updates across all Nuxt SEO modules with new features for robots and sitemap, plus numerous stability improvements throughout the ecosystem.

  Highlights:
  - **Robots**: Improved work on [`**Content-Signal**`**~~ directive~~**](https://nuxtseo.com/docs/robots/guides/ai-directives) support and [**~~Bot Detection~~**](https://nuxtseo.com/docs/robots/guides/bot-detection)
  - **Nuxt Content**: Improved Zod peer dependency handling ## ✅ Upgrading

  Our recommendation for upgrading is to run:

  ```
  npx nuxt upgrade --dedupe
  ```

  This will deduplicate your lockfile as well, and help ensure that you pull in updates from other dependencies that Nuxt relies on, particularly in the unjs ecosystem. ## 📦 Module Updates

  **Nuxt Robots**

  [**~~https://github.com/nuxt-modules/robots/releases/tag/v5.5.5~~**](https://github.com/nuxt-modules/robots/releases/tag/v5.5.5) → [**~~https://github.com/nuxt-modules/robots/releases/tag/v5.6.4~~**](https://github.com/nuxt-modules/robots/releases/tag/v5.6.4)
  - ✨ Improved Content-Signal support ([**~~https://github.com/nuxt-modules/robots/pull/226~~**](https://github.com/nuxt-modules/robots/pull/226))
  - ✨ Bot Detection ([**~~https://github.com/nuxt-modules/robots/pull/210~~**](https://github.com/nuxt-modules/robots/pull/210))
  - 🐛 Fix broken utility imports, missing zod peer dep, mock composables, disabled module handling

  **Nuxt Sitemap**

  [**~~https://github.com/nuxt-modules/sitemap/releases/tag/v7.4.7~~**](https://github.com/nuxt-modules/sitemap/releases/tag/v7.4.7) → [**~~https://github.com/nuxt-modules/sitemap/releases/tag/v7.4.9~~**](https://github.com/nuxt-modules/sitemap/releases/tag/v7.4.9)
  - ✨ Chunking support with URL filtering
  - 🐛 Fix Windows unicode escape errors when reading sources
  - 🐛 Fix prerendering pages not consistently appearing in sources
  - 🐛 Fix robots meta rules respected during prerendering
  - 🐛 Fix XML spec compliance (snake_case for geo_location)

  **Nuxt Link Checker**

  [**~~https://github.com/harlan-zw/nuxt-link-checker/releases/tag/v4.3.2~~**](https://github.com/harlan-zw/nuxt-link-checker/releases/tag/v4.3.2) → [**~~https://github.com/harlan-zw/nuxt-link-checker/releases/tag/v4.3.9~~**](https://github.com/harlan-zw/nuxt-link-checker/releases/tag/v4.3.9)
  - 🐛 Fix ignore all /_* paths
  - 🐛 Fix pages hang edge case
  - 🐛 Fix hanging when pages dir is missing
  - 🐛 JSON report only shows failing results
  - 🐛 Tree sort for markdown reports

  **Nuxt OG Image**

  [**~~https://github.com/harlan-zw/nuxt-og-image/releases/tag/v5.1.11~~**](https://github.com/harlan-zw/nuxt-og-image/releases/tag/v5.1.11) → [**~~https://github.com/harlan-zw/nuxt-og-image/releases/tag/v5.1.13~~**](https://github.com/harlan-zw/nuxt-og-image/releases/tag/v5.1.13)
  - 🐛 Fix broken Google font mirror
  - 🐛 Fix WASM Satori API compatibility
  - 🐛 Fix _query params disrupting render path

  **Nuxt Schema.org**

  [**~~https://github.com/harlan-zw/nuxt-schema-org/releases/tag/v5.0.9~~**](https://github.com/harlan-zw/nuxt-schema-org/releases/tag/v5.0.9) → [**~~https://github.com/harlan-zw/nuxt-schema-org/releases/tag/v5.0.10~~**](https://github.com/harlan-zw/nuxt-schema-org/releases/tag/v5.0.10)
  - 🐛 Fix zod as optional peer dep

  **Nuxt SEO Utils**

  [**~~https://github.com/harlan-zw/nuxt-seo-utils/releases/tag/v7.0.16~~**](https://github.com/harlan-zw/nuxt-seo-utils/releases/tag/v7.0.16) → [**~~https://github.com/harlan-zw/nuxt-seo-utils/releases/tag/v7.0.19~~**](https://github.com/harlan-zw/nuxt-seo-utils/releases/tag/v7.0.19)
  - 🐛 Fix Vite plugin ordering
  - 🐛 Fix normalize incorrect BCP 47 locales

  **Nuxt Site Config**

  [**~~https://github.com/harlan-zw/nuxt-site-config/releases/tag/v3.2.7~~**](https://github.com/harlan-zw/nuxt-site-config/releases/tag/v3.2.7) → [**~~https://github.com/harlan-zw/nuxt-site-config/releases/tag/v3.2.11~~**](https://github.com/harlan-zw/nuxt-site-config/releases/tag/v3.2.11)
  - 🐛 Fix redundant baseUrl warning in development
  - 🐛 Fix IPv6 address support in host parsing
  - 🐛 Fix safe runtime type generation [**~~https://github.com/harlan-zw/nuxt-seo/compare/v3.2.0...v3.3.0~~**](https://github.com/harlan-zw/nuxt-seo/compare/v3.2.0...v3.3.0)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)5 months agov3.2.12 ### 🐞 Bug Fixes
  - Support env for internal origin URL resolutions - by @JackTYM [`**(55ee0)**`](https://github.com/harlan-zw/nuxt-site-config/commit/55ee019)
  - Rework `**getNitroOrigin**` resolution - by @harlan-zw [`**(8f2a5)**`](https://github.com/harlan-zw/nuxt-site-config/commit/8f2a5a7) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.11...v3.2.12)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)5 months agov5.0.10 ### 🐞 Bug Fixes
  - **content**: Optional `**zod**` peer dependency - by @harlan-zw [`**(b9987)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/b9987d7) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v5.0.9...v5.0.10)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)5 months agov5.6.4 ### 🐞 Bug Fixes
  - Broken util imports - by @harlan-zw [`**(99d50)**`](https://github.com/nuxt-modules/robots/commit/99d5060)
  - **content**: Missing `**zod**` optional peer dependency - by @harlan-zw [`**(29fef)**`](https://github.com/nuxt-modules/robots/commit/29fef22) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.6.3...v5.6.4)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.4.1 ### 🚀 Features
  - Third-party adapters - by @harlan-zw in [**~~https://github.com/nuxt-seo-pro/nuxt-skew-protection/issues/5~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/issues/5) [`**(1487e)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/1487e07) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.3.11...v0.4.1)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.4.0 ### 🚀 Features
  - Third-party adapters - by @harlan-zw [`**(924f3)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/924f341) ### 🐞 Bug Fixes
  - Broken debug logs - by @harlan-zw [`**(eadd0)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/eadd041)
  - Drop reverb - by @harlan-zw [`**(10059)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/1005919)
  - Drop reverb - by @harlan-zw [`**(c5ed3)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/c5ed3b6) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.3.11...v0.4.0)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.3.11 ### 🐞 Bug Fixes
  - More debug logs for version restoration - by @harlan-zw [`**(8dcf4)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/8dcf41c)
  - Warn when falling back from static mode - by @harlan-zw [`**(ad7ab)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/ad7ab6d)
  - Show number of files restored per release - by @harlan-zw [`**(1cd18)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/1cd18ab) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.3.10...v0.3.11)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.3.10 ### 🐞 Bug Fixes
  - Add warning when there may be a misconfiguration - by @harlan-zw [`**(cfb62)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/cfb6279) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.3.9...v0.3.10)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.3.9 ### 🐞 Bug Fixes
  - Broken hash restore keys - by @harlan-zw [`**(6d173)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/6d17325) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.3.8...v0.3.9)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.3.8 ### 🐞 Bug Fixes
  - Validate Nuxt SEO Pro license - by @harlan-zw [`**(7e868)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/7e86822) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.3.7...v0.3.8)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.3.7

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.3.6...v0.3.7)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)5 months agov5.6.3 ### 🐞 Bug Fixes
  - Mock composables for legacy integrations - by @harlan-zw [`**(0f8ab)**`](https://github.com/nuxt-modules/robots/commit/0f8abc2) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.6.2...v5.6.3)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)5 months agov5.6.2 ### 🐞 Bug Fixes
  - Broken internal alias when `**enabled: false**` - by @harlan-zw [`**(f9577)**`](https://github.com/nuxt-modules/robots/commit/f957793) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.6.1...v5.6.2)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)5 months agov7.4.9 ### 🐞 Bug Fixes
  - Chunking support with URL filtering - by @JackTYM [`**(6593d)**`](https://github.com/nuxt-modules/sitemap/commit/6593dbe)
  - ReadSourcesFromFilesystem unicode escape error on windows - by @yamachi4416 in [**~~https://github.com/nuxt-modules/sitemap/issues/523~~**](https://github.com/nuxt-modules/sitemap/issues/523) [`**(ae7d3)**`](https://github.com/nuxt-modules/sitemap/commit/ae7d3af)
  - Check for undefined data in sitemap prerender - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/525~~**](https://github.com/nuxt-modules/sitemap/issues/525) [`**(853e5)**`](https://github.com/nuxt-modules/sitemap/commit/853e5b0)
  - Add null safety checks in nuxt page sitemap processing - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/526~~**](https://github.com/nuxt-modules/sitemap/issues/526) [`**(0589b)**`](https://github.com/nuxt-modules/sitemap/commit/0589bf2)
  - Use snake_case for ImageEntry.geo_location to match XML spec - by @harlan-zw [**~~https://github.com/nuxt-modules/sitemap/issues/527~~**](https://github.com/nuxt-modules/sitemap/issues/527) [`**(f3e5d)**`](https://github.com/nuxt-modules/sitemap/commit/f3e5dd6)
  - **content**: `**zod**` peer dependency for schema merge - by @harlan-zw [`**(9fca6)**`](https://github.com/nuxt-modules/sitemap/commit/9fca62d) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.4.8...v7.4.9)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.3.6 ### 🐞 Bug Fixes
  - Don't check for updates while offline - by @harlan-zw [`**(1a61f)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/1a61f53)
  - Change default storage path for reusability - by @harlan-zw [`**(cfc6f)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/cfc6f2a) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.3.5...v0.3.6)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)5 months agov7.0.19

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.18...v7.0.19)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)5 months agov5.6.1 ### 🐞 Bug Fixes
  - Handle `**enabled: false**` mocks properly - by @harlan-zw [`**(77676)**`](https://github.com/nuxt-modules/robots/commit/7767661) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.6.0...v5.6.1)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)5 months agov4.3.9 ### 🐞 Bug Fixes
  - Ignore all `**/_***` paths - by @harlan-zw [`**(1e5dd)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/1e5dd5e) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.3.8...v4.3.9)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)5 months agov7.4.8 ### 🐞 Bug Fixes
  - Expose site config on debug endpoint - by @silverbackdan [`**(02b72)**`](https://github.com/nuxt-modules/sitemap/commit/02b72f6)
  - Prerendering pages not always in source - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/506~~**](https://github.com/nuxt-modules/sitemap/issues/506) [`**(c098f)**`](https://github.com/nuxt-modules/sitemap/commit/c098f38)
  - Respect robots meta rule when prerendering - by @harlan-zw in [**~~https://github.com/nuxt-modules/sitemap/issues/507~~**](https://github.com/nuxt-modules/sitemap/issues/507) [`**(77f7e)**`](https://github.com/nuxt-modules/sitemap/commit/77f7e07) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.4.7...v7.4.8)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)5 months agov4.3.8 ### 🐞 Bug Fixes
  - Ignore # hrefs for some rules - by @harlan-zw [`**(dace5)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/dace59d)
  - **reports**: Only show failing results in json - by @harlan-zw [`**(70306)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/703064a) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.3.7...v4.3.8)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)5 months agov4.3.7 ### 🐞 Bug Fixes
  - Use tree sort for markdown report - by @harlan-zw [`**(10a35)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/10a3583) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.3.6...v4.3.7)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.3.5 ### 🐞 Bug Fixes
  - Misc memory leak fixes - by @harlan-zw [`**(16233)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/1623380)
  - **perf**: Avoid memory spikes when restoring - by @harlan-zw [`**(0446a)**`](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/0446a54) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.3.4...v0.3.5)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)5 months agov0.3.4

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-seo-pro/nuxt-skew-protection/compare/v0.3.3...v0.3.4)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)5 months agov5.6.0 ### 🚀 Features
  - Improved `**Content-Signal**` support - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/251~~**](https://github.com/nuxt-modules/robots/issues/251) [`**(93d52)**`](https://github.com/nuxt-modules/robots/commit/93d525f) ### 🐞 Bug Fixes
  - **devtools**: Show better production hints - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/252~~**](https://github.com/nuxt-modules/robots/issues/252) [`**(0a3ce)**`](https://github.com/nuxt-modules/robots/commit/0a3ce43) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.5.6...v5.6.0)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)7 months agov3.2.11 ### 🐞 Bug Fixes
  - Redundant baseUrl warning for development - by @harlan-zw [`**(fea63)**`](https://github.com/harlan-zw/nuxt-site-config/commit/fea63c8) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.10...v3.2.11)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)7 months agov7.0.18 ### 🐞 Bug Fixes
  - Normalize incorrect BCP 47 locales - by @harlan-zw [`**(e5a28)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/e5a286e) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.17...v7.0.18)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)7 months agov5.5.6 ### 🐞 Bug Fixes
  - Broken `**robots:config**` normalizing - by @harlan-zw in [**~~https://github.com/nuxt-modules/robots/issues/234~~**](https://github.com/nuxt-modules/robots/issues/234) [`**(59c44)**`](https://github.com/nuxt-modules/robots/commit/59c4454)
  - Support `**Content-Signal**` - by @harlan-zw [`**(092c3)**`](https://github.com/nuxt-modules/robots/commit/092c3b9) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.5.5...v5.5.6)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)7 months agov3.2.10 ### 🐞 Bug Fixes
  - Support IPv6 addresses in getNitroOrigin host parsing - by @Eazash in [**~~https://github.com/harlan-zw/nuxt-site-config/issues/66~~**](https://github.com/harlan-zw/nuxt-site-config/issues/66) [`**(25eb3)**`](https://github.com/harlan-zw/nuxt-site-config/commit/25eb3cc) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.9...v3.2.10)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)7 months agov4.3.6 ### 🐞 Bug Fixes
  - Pages hang issue edge case - by @harlan-zw [`**(ad8ad)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/ad8adee) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.3.5...v4.3.6)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)7 months agov4.3.5 ### 🐞 Bug Fixes
  - Hanging when `**pages**` dir is missing - by @harlan-zw [`**(05602)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/0560236) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.3.4...v4.3.5)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)7 months agov4.3.4

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.3.3...v4.3.4)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)7 months agov4.3.3 ### 🐞 Bug Fixes
  - Safer runtime remote URL compat check - by @harlan-zw [`**(2cbf1)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/2cbf127) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.3.2...v4.3.3)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)8 months agov3.2.9 ### 🐞 Bug Fixes
  - Safe runtime type generation - by @harlan-zw [`**(8a7f2)**`](https://github.com/harlan-zw/nuxt-site-config/commit/8a7f2dd) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.8...v3.2.9)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)8 months agov3.2.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v3.2.1...v3.2.2)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)8 months agov7.0.17 ### 🐞 Bug Fixes
  - Broken vite plugin ordering - by @harlan-zw [`**(a4dce)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/a4dce75) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.16...v7.0.17)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)8 months agov3.2.1

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v3.2.0...v3.2.1)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)8 months agov3.2.0

  This version implements [**~~module dependencies~~**](https://nuxt.com/blog/v4-1#module-development-enhancements) that are available with Nuxt v4.1, and improved [**~~Nuxt Content v3.7 compatibility~~**](https://github.com/nuxt/content/releases/tag/v3.7.0) and [**~~NPM trusted publishing~~**](https://docs.npmjs.com/trusted-publishers) for all modules for improved security.

  It bumps the Nuxt Robots versions, which include the new features:
  - `**Content-Usage**` directive [**~~https://github.com/nuxt-modules/robots/pull/226~~**](https://github.com/nuxt-modules/robots/pull/226)
  - Bot Detection [**~~https://github.com/nuxt-modules/robots/pull/210~~**](https://github.com/nuxt-modules/robots/pull/210) ### 🐞 Bug Fixes
  - Nuxt Content v3.7 compatibility - by @harlan-zw [`**(90214)**`](https://github.com/harlan-zw/nuxt-seo/commit/9021496)
  - Explicit `**moduleDependencies**` - by @harlan-zw [`**(73fd6)**`](https://github.com/harlan-zw/nuxt-seo/commit/73fd636)
  - NPM Trusted Publishing - by @harlan-zw [`**(ed173)**`](https://github.com/harlan-zw/nuxt-seo/commit/ed17362) ### 📦 Dependencies

  Updated SEO related packages:
  - [**~~@nuxtjs/robots~~**](https://github.com/nuxt-modules/robots): 5.2.11 → 5.5.5
  - [**~~@nuxtjs/sitemap~~**](https://github.com/nuxt-modules/sitemap): 7.4.2 → 7.4.7
  - [**~~nuxt-link-checker~~**](https://github.com/harlan-zw/nuxt-link-checker): 4.3.1 → 4.3.2
  - [**~~nuxt-og-image~~**](https://github.com/harlan-zw/nuxt-og-image): 5.1.8 → 5.1.11
  - [**~~nuxt-schema-org~~**](https://github.com/harlan-zw/nuxt-schema-org): 5.0.6 → 5.0.9
  - [**~~nuxt-seo-utils~~**](https://github.com/harlan-zw/nuxt-seo-utils): 7.0.12 → 7.0.16
  - [**~~nuxt-site-config~~**](https://github.com/harlan-zw/nuxt-site-config): 3.2.2 → 3.2.7

  These updates bring the latest bug fixes and improvements from the Nuxt SEO ecosystem. ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v3.1.0...v3.2.0)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)8 months agov3.2.8 ### 🐞 Bug Fixes
  - Broken `**dist**` publishing - by @harlan-zw [`**(74464)**`](https://github.com/harlan-zw/nuxt-site-config/commit/744648c) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.7...v3.2.8)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)8 months agov3.2.7

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.6...v3.2.7)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)8 months agov3.2.6 ### 🐞 Bug Fixes
  - NPM Trusted Publishing - by @harlan-zw [`**(f4948)**`](https://github.com/harlan-zw/nuxt-site-config/commit/f494873) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.5...v3.2.6)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)8 months agov4.3.2 ### 🐞 Bug Fixes
  - Explicit `**moduleDependencies**` - by @harlan-zw [`**(9a380)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/9a38054)
  - NPM trusted publishing - by @harlan-zw [`**(46335)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/463353b) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.3.1...v4.3.2)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)8 months agov7.0.16 ### 🐞 Bug Fixes
  - Broken `**dist**` publishing - by @harlan-zw [`**(bfc4d)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/bfc4d16) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.15...v7.0.16)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)8 months agov5.0.9

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v5.0.8...v5.0.9)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)8 months agov5.5.5

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.5.4...v5.5.5)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)8 months agov7.4.7

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.4.6...v7.4.7)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)8 months agov5.0.8 ### 🐞 Bug Fixes
  - Broken `**dist**` publishing - by @harlan-zw [`**(506a4)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/506a4df) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v5.0.7...v5.0.8)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)8 months agov7.4.6 ### 🐞 Bug Fixes
  - Broken `**dist**` publishing - by @harlan-zw [`**(b77e1)**`](https://github.com/nuxt-modules/sitemap/commit/b77e1ae)
  - Broken `**dist**` publishing - by @harlan-zw [`**(6218d)**`](https://github.com/nuxt-modules/sitemap/commit/6218d32)
  - Add `**@nuxtjs/robots**` as optional dependency - by @harlan-zw [`**(da80a)**`](https://github.com/nuxt-modules/sitemap/commit/da80ab9) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.4.5...v7.4.6)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)8 months agov5.5.4 ### 🐞 Bug Fixes
  - Broken `**dist**` publishing - by @harlan-zw [`**(99216)**`](https://github.com/nuxt-modules/robots/commit/99216f4) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.5.3...v5.5.4)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)8 months agov7.0.15 ### 🐞 Bug Fixes
  - NPM Trusted Publishing - by @harlan-zw [`**(6e225)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/6e2257b)
  - Explicit `**moduleDependencies**` - by @harlan-zw [`**(06f02)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/06f027c) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.14...v7.0.15)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)8 months agov5.0.7 ### 🐞 Bug Fixes
  - NPM trusted publishing - by @harlan-zw [`**(8885d)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/8885d9b)
  - Explicit `**moduleDependencies**` - by @harlan-zw [`**(3d5ba)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/3d5ba02)
  - Nuxt Content v3.7 compatibility - by @harlan-zw [`**(2f845)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/2f8455b) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v5.0.6...v5.0.7)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)8 months agov5.5.3 ### 🐞 Bug Fixes
  - **i18n**: V10 route rule incompatibility - by @harlan-zw [`**(1ece8)**`](https://github.com/nuxt-modules/robots/commit/1ece81b) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.5.2...v5.5.3)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)8 months agov7.4.5 ### 🐞 Bug Fixes
  - NPM trusted publishing - by @harlan-zw [`**(50c10)**`](https://github.com/nuxt-modules/sitemap/commit/50c1091) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.4.4...v7.4.5)
- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)8 months agov5.5.2 ### 🐞 Bug Fixes
  - `**@nuxt/content**` v3.7 compatibility - by @harlan-zw [`**(dd4ff)**`](https://github.com/nuxt-modules/robots/commit/dd4ff2f)
  - Specify `**moduleDependencies**` - by @harlan-zw [`**(135dd)**`](https://github.com/nuxt-modules/robots/commit/135dd30)
  - NPM trusted publishing (test) - by @harlan-zw [`**(e974f)**`](https://github.com/nuxt-modules/robots/commit/e974f32) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/robots/compare/v5.5.1...v5.5.2)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)8 months agov7.4.4 ### 🐞 Bug Fixes
  - Hotfix mdc module to support nuxt-nightly - by @danielroe in [**~~https://github.com/nuxt-modules/sitemap/issues/471~~**](https://github.com/nuxt-modules/sitemap/issues/471) [`**(36d01)**`](https://github.com/nuxt-modules/sitemap/commit/36d0127)
  - Nuxt-content 3.7 compatibility - by @dword-design in [**~~https://github.com/nuxt-modules/sitemap/issues/490~~**](https://github.com/nuxt-modules/sitemap/issues/490) [`**(1f83b)**`](https://github.com/nuxt-modules/sitemap/commit/1f83bf0)
  - Add `**moduleDependencies**` - by @harlan-zw [`**(03ef4)**`](https://github.com/nuxt-modules/sitemap/commit/03ef426)
  - Allow paths with `**.**` to be included in sitemap - by @harlan-zw [`**(947d1)**`](https://github.com/nuxt-modules/sitemap/commit/947d17c) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.4.3...v7.4.4)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)8 months agov3.2.5

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.4...v3.2.5)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)8 months agov3.2.4 ### 🐞 Bug Fixes
  - Broken export paths - by @harlan-zw [`**(1f131)**`](https://github.com/harlan-zw/nuxt-site-config/commit/1f1312c) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.3...v3.2.4)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)8 months agov3.2.3 ### 🐞 Bug Fixes
  - Explicit `**moduleDependencies**` for i18n integrations - by @harlan-zw [`**(0ea8e)**`](https://github.com/harlan-zw/nuxt-site-config/commit/0ea8e25)
  - Peer dependency on h3 v1 - by @harlan-zw [`**(7c6e9)**`](https://github.com/harlan-zw/nuxt-site-config/commit/7c6e927)
  - **nitro**: Prefer `**get***` function names over `**use***` - by @harlan-zw [`**(94342)**`](https://github.com/harlan-zw/nuxt-site-config/commit/9434288) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.2...v3.2.3)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)10 months agov7.0.14 ### 🐞 Bug Fixes
  - **useBreadcrumbItems**: Ensure overrides take precedence over route.meta.breadcrumb - by @Vincentdevreede in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/69~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/69) [`**(967d0)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/967d079) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.13...v7.0.14)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)10 months agov7.0.13 ### 🐞 Bug Fixes
  - Get latest match for nested routes - by @maartenvanhunsel [`**(29bcc)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/29bcc9d) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.12...v7.0.13)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)11 months agov7.4.3 ### 🐞 Bug Fixes
  - Drop remaining `**#import**` usage - by @harlan-zw [`**(cb336)**`](https://github.com/nuxt-modules/sitemap/commit/cb336fc) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.4.2...v7.4.3)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)11 months agov3.1.0 ## 📦 Dependencies

  Updated SEO related packages:
  - [**~~@nuxtjs/robots~~**](https://github.com/nuxt-modules/robots): 5.2.10 → 5.2.11
  - [**~~@nuxtjs/sitemap~~**](https://github.com/nuxt-modules/sitemap): 7.2.10 → 7.4.2 (minor version bump)
  - [**~~nuxt-link-checker~~**](https://github.com/harlan-zw/nuxt-link-checker): 4.3.0 → 4.3.1
  - [**~~nuxt-og-image~~**](https://github.com/harlan-zw/nuxt-og-image): 5.1.2 → 5.1.8
  - [**~~nuxt-schema-org~~**](https://github.com/harlan-zw/nuxt-schema-org): 5.0.5 → 5.0.6
  - [**~~nuxt-seo-utils~~**](https://github.com/harlan-zw/nuxt-seo-utils): 7.0.9 → 7.0.12
  - [**~~nuxt-site-config~~**](https://github.com/harlan-zw/nuxt-site-config): 3.1.9 → 3.2.2 (minor version bump)

  These updates bring the latest bug fixes and improvements from the Nuxt SEO ecosystem, namely:
  - 🐛 Improved stability for I18n integration
  - 🐛 Nuxt Content v3.6.0 compatibility
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)11 months agov5.0.6 ### 🐞 Bug Fixes
  - **content**: Support schema augmentation - by @harlan-zw [`**(e8a11)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/e8a11db) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v5.0.5...v5.0.6)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)11 months agov3.2.2 ### 🐞 Bug Fixes
  - Prefer `**#app**` imports over `**nuxt/app**` - by @harlan-zw [`**(2bfab)**`](https://github.com/harlan-zw/nuxt-site-config/commit/2bfab42) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.1...v3.2.2)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)11 months agov7.4.2 ### 🐞 Bug Fixes
  - `**fast-xml-parser**` side effects - by @harlan-zw [`**(f2a75)**`](https://github.com/nuxt-modules/sitemap/commit/f2a75b9) ##### [**~~View changes on GitHub~~**](https://github.com/nuxt-modules/sitemap/compare/v7.4.1...v7.4.2)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)11 months agov3.2.1 ### 🐞 Bug Fixes
  - `**h3**` v2 compat - by @harlan-zw [`**(5842d)**`](https://github.com/harlan-zw/nuxt-site-config/commit/5842d43) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-site-config/compare/v3.2.0...v3.2.1)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last yearv4.3.1 ### 🐞 Bug Fixes
  - Prefer `**nitro.static**` over `**_generate**` - by @danielroe in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/62~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/62) [`**(a1953)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/a195394)
  - **deps**: Upgrade to content v3.6 - by @dargmuesli in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/63~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/63) [`**(13347)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/13347e2) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.3.0...v4.3.1)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)last yearv7.0.12 ### 🐞 Bug Fixes
  - Honour site config `**defaultLocale**`, fallback to `**en**` - by @harlan-zw [`**(86f02)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/86f0296)
  - **useBreadcrumbItems**: Switch `**watch**` to sync mode - by @zumm in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/63~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/63) [`**(75faa)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/75faae6) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.11...v7.0.12)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)last yearv7.0.11 ### 🚀 Features
  - Add option to hide breadcrumbs with non-existing path - by @zumm in [**~~https://github.com/harlan-zw/nuxt-seo-utils/issues/61~~**](https://github.com/harlan-zw/nuxt-seo-utils/issues/61) [`**(dd88b)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/dd88b56) ### 🐞 Bug Fixes
  - **App Icons**: Support multiple apple touch icons - by @harlan-zw [`**(dc044)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/dc044f4) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.10...v7.0.11)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)last yearv7.0.10 ### 🐞 Bug Fixes
  - **useBreadcrumbItems**: Hydration mismatch - by @harlan-zw [`**(00646)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/00646d5) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.9...v7.0.10)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)last yearv7.0.9 ### 🐞 Bug Fixes
  - Reactive `` attribute - by @harlan-zw [`**(08ad4)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/08ad4d6) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.8...v7.0.9)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv3.0.3 ## 📦 Dependencies

  Updated SEO related packages:
  - `**@nuxtjs/robots**`: ^5.2.8 → ^5.2.10
  - `**@nuxtjs/sitemap**`: ^7.2.9 → ^7.2.10
  - `**nuxt-og-image**`: ^5.1.1 → ^5.1.2
  - `**nuxt-schema-org**`: ^5.0.4 → ^5.0.5
  - `**nuxt-seo-utils**`: ^7.0.5 → ^7.0.8
  - `**nuxt-site-config**`: ^3.1.7 → ^3.1.9

  These updates bring the latest bug fixes and improvements from the Nuxt SEO ecosystem.

  When using PNPM please run `**pnpm dedupe**` after upgrade. ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v3.0.2...v3.0.3)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv5.0.5 ### 🐞 Bug Fixes
  - **docs**: Fixed broken links to nodes and recipes for schema docs - by @ThomasWT in [**~~https://github.com/harlan-zw/nuxt-schema-org/issues/83~~**](https://github.com/harlan-zw/nuxt-schema-org/issues/83) [`**(46d03)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/46d033f) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v5.0.4...v5.0.5)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)last yearv7.0.8 ### 🐞 Bug Fixes
  - **redirectToCanonicalSiteUrl**: Disable for prerendering and non-production environments - by @harlan-zw [`**(132d7)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/132d72e)
  - **useBreadcrumbItems**: Broken display when conditionally rendered - by @harlan-zw [`**(78e72)**`](https://github.com/harlan-zw/nuxt-seo-utils/commit/78e7220) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo-utils/compare/v7.0.7...v7.0.8)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv3.0.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v3.0.1...v3.0.2)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last yearv4.3.0 ### 🚀 Features
  - **prerender**: Re-enable default 404 link checking - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/56~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/56) [`**(da0a2)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/da0a23d) ### 🐞 Bug Fixes
  - **prerender**: Add issue summary to HTML report - by @harlan-zw [`**(b089b)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/b089b83) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.2.0...v4.3.0)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last yearv4.2.0 #### New Publishable Reports

  The markdown and HTML reports have been reworked for improved usability. Reports are now also publically publishable. Check a live example here: /**link-checker**/link-checker-report. ### 🚀 Features
  - New `**html**` and `**markdown**` report templates - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/54~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/54) [`**(ebd40)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/ebd40c6)
  - Publishable reports - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/55~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/55) [`**(95e5b)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/95e5b80) ### 🐞 Bug Fixes
  - Report emitted reports from cwd - by @harlan-zw [`**(9fa91)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/9fa916b)
  - Only show stdout logs if reports are disabled - by @harlan-zw [`**(8f222)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/8f222ae)
  - False positives from nuxt content hashes - by @harlan-zw [`**(0c00f)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/0c00f7e) ### 🏎 Performance
  - `**ultrahtml**` for link parsing - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/53~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/53) [`**(270ae)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/270aec7)
  - **prerendering**: Batch processing for reduced memory usage - by @harlan-zw [`**(63f49)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/63f49fa) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.1.1...v4.2.0)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv3.0.1

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v3.0.0...v3.0.1)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv3.0.0** Major **### 🚨 Breaking Changes
  - Bump modules to 3.16 compatibility - by @harlan-zw [`**(70963)**`](https://github.com/harlan-zw/nuxt-seo/commit/7096323) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v2.2.0...v3.0.0)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv5.0.4 ### 🐞 Bug Fixes
  - Don't depend on `**@unhead/schema**` implicitly - by @harlan-zw [`**(549b7)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/549b723)
  - Disable schema.org on error pages - by @harlan-zw [`**(1f1cf)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/1f1cf9e)
  - **devtools**:
    - Disable code lines - by @harlan-zw [`**(b7b73)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/b7b73a0)
    - Runtime config not coming through - by @harlan-zw [`**(7d93e)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/7d93e2a)
    - Reactive schema.org - by @harlan-zw [`**(ce58d)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/ce58dad) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v5.0.3...v5.0.4)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv3.0.0-beta.3

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v3.0.0-beta.2...v3.0.0-beta.3)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv5.0.3 ### 🐞 Bug Fixes
  - Maybe resolve unref'd inLanguage - by @harlan-zw [`**(7a1ef)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/7a1efaa)
  - Non explicit peer dependency - by @harlan-zw [`**(f02db)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/f02dbcb) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v5.0.2...v5.0.3)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv3.0.0-beta.2 ### 🚨 Breaking Changes
  - Bump modules to 3.16 compatibility - by @harlan-zw [`**(24070)**`](https://github.com/harlan-zw/nuxt-seo/commit/2407033) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v3.0.0-beta.1...v3.0.0-beta.2)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv5.0.2 ### 🐞 Bug Fixes
  - Ensure `**host**` has trailing slash - by @harlan-zw [`**(c932f)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/c932f37)
  - Resolve `**inLanguage**` ref - by @harlan-zw [`**(8bfe7)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/8bfe747) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v5.0.1...v5.0.2)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv3.0.0-beta.1 ### 🚨 Breaking Changes
  - Bump modules to 3.16 compatibility - by @harlan-zw [`**(70963)**`](https://github.com/harlan-zw/nuxt-seo/commit/7096323) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v2.2.0...v3.0.0-beta.1)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv5.0.1 ### 🐞 Bug Fixes
  - Reactive options not unref'd - by @harlan-zw [`**(fe9a0)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/fe9a02f) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v5.0.0...v5.0.1)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv5.0.0** Major **### 🚨 Breaking Changes
  - Require Nuxt v3.16 - by @harlan-zw [`**(f3477)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/f34770c) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v4.1.3...v5.0.0)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv4.1.3 ### 🐞 Bug Fixes
  - Correct translationOfWork reference - by @okj579 in [**~~https://github.com/harlan-zw/nuxt-schema-org/issues/77~~**](https://github.com/harlan-zw/nuxt-schema-org/issues/77) [`**(1ca3b)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/1ca3bfc) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v4.1.2...v4.1.3)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv2.2.0
  - perf(devtools): optimize `**shiki**` bundles
  - feat(i18n): reactive site config [**~~https://github.com/harlan-zw/nuxt-site-config/pull/39~~**](https://github.com/harlan-zw/nuxt-site-config/pull/39)
  - feat: `**multiTenancy**` site config [**~~https://github.com/harlan-zw/nuxt-site-config/pull/40~~**](https://github.com/harlan-zw/nuxt-site-config/pull/40) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v2.1.1...v2.2.0)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv4.1.2 ### 🏎 Performance
  - **devtools**: Optimize `**shiki**` bundle - by @harlan-zw [`**(73fe9)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/73fe96f) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v4.1.1...v4.1.2)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last yearv4.1.1 ### 🏎 Performance
  - **devtools**: Optimize shiki bundle - by @harlan-zw [`**(9b4ce)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/9b4ce02) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.1.0...v4.1.1)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv2.1.1 ### 🐞 Bug Fixes
  - Resolve sub modules as explicit imports - by @harlan-zw [`**(465b6)**`](https://github.com/harlan-zw/nuxt-seo/commit/465b6b8) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v2.1.0...v2.1.1)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv2.1.0 ### 🚀 Features ### Nuxt Content v3

  All modules now support Nuxt Content v3 including Robots, Sitemap, OG Image, Schema.org and Link Checker.

  You can either install them manually by following the individual module instructions or use the Nuxt SEO [`**asSeoCollection()**`](https://nuxtseo.com/docs/nuxt-seo/guides/nuxt-content#setup-nuxt-content-v3) to register them all at once.
  - Nuxt Robots: robots ([**~~docs~~**](https://nuxtseo.com/docs/robots/guides/content))
  - Nuxt Sitemap: sitemap ([**~~docs~~**](https://nuxtseo.com/docs/sitemap/guides/content))
  - Nuxt OG Image: ogImage ([**~~docs~~**](https://nuxtseo.com/docs/og-image/integrations/content))
  - Nuxt Schema.org: schemaOrg ([**~~docs~~**](https://nuxtseo.com/docs/schema-org/guides/content)) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v2.0.3...v2.1.0)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv4.1.1

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v4.1.0...v4.1.1)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last yearv4.1.0 ### 🚀 Features
  - Nuxt Content v3 - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/52~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/52) [`**(ecf35)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/ecf35eb) ### 🐞 Bug Fixes
  - **client**: Add current node as possible component path - by @harlan-zw [`**(84a58)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/84a58da) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.0.4...v4.1.0)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv4.1.0 ### 🚀 Features
  - Nuxt Content v3 integration - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-schema-org/issues/75~~**](https://github.com/harlan-zw/nuxt-schema-org/issues/75) [`**(2cccd)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/2cccdf8) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v4.0.4...v4.1.0)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv2.0.3

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v2.0.2...v2.0.3)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last yearv4.0.4 ### 🐞 Bug Fixes
  - Treat links with non-http protocol as external - by @manniL in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/51~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/51) [`**(99404)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/994045d) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.0.3...v4.0.4)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last yearv4.0.3 ### 🐞 Bug Fixes
  - Ignore fragment-only links - by @manniL in [**~~https://github.com/harlan-zw/nuxt-link-checker/issues/49~~**](https://github.com/harlan-zw/nuxt-link-checker/issues/49) [`**(64c44)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/64c44db) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.0.2...v4.0.3)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv4.0.4 ### 🐞 Bug Fixes
  - Render schema.org when indexing is disabled - by @harlan-zw [`**(3d3d9)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/3d3d9d6) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v4.0.3...v4.0.4)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last yearv4.0.2 ### 🐞 Bug Fixes
  - Nuxt context `**#link-checker**` alias - by @harlan-zw [`**(04fde)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/04fde70)
  - Manual opt-in for checking external links - by @harlan-zw [`**(44ec3)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/44ec341) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.0.1...v4.0.2)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv4.0.3 ### 🐞 Bug Fixes
  - Prefer explicit imports over `**#imports**` - by @harlan-zw [`**(4225e)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/4225ed2) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v4.0.2...v4.0.3)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last yearv4.0.1 ### 🐞 Bug Fixes
  - Enable devtools by default if not disabled - by @harlan-zw [`**(dc0f1)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/dc0f11d) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v4.0.0...v4.0.1)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv4.0.2 ### 🐞 Bug Fixes
  - Avoid using default `**id**` - by @harlan-zw [`**(f5be8)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/f5be801) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v4.0.1...v4.0.2)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv4.0.1 ### 🐞 Bug Fixes
  - Avoid duplicate tags and `**node**` prop being exposed - by @harlan-zw [`**(84895)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/8489595)
  - **devtools**: Show a warning if no schema.org is configured - by @harlan-zw [`**(c1baa)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/c1baa1e) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v4.0.0...v4.0.1)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv2.0.2

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v2.0.1...v2.0.2)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv2.0.1

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v2.0.0...v2.0.1)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)last yearv2.0.0** Major **# **Nuxt SEO v2 Stable 🎉**

  This release has been almost two years in the making. Please read the [**~~Announcing Nuxt SEO Stable~~**](https://nuxtseo.com/announcement) post to learn about the history of Nuxt SEO, what the stable means and what is planned for the module.

  Ready to upgrade? Check out the migration guides:
  - [**~~Nuxt SEO RC to Stable~~**](https://nuxtseo.com/docs/nuxt-seo/migration-guide/rc-to-stable)
  - [**~~Nuxt SEO Beta to RC~~**](https://nuxtseo.com/docs/nuxt-seo/migration-guide/beta-to-rc)
  - [**~~Nuxt SEO Kit to Nuxt SEO Beta~~**](https://nuxtseo.com/docs/nuxt-seo/migration-guide/nuxt-seo-kit) ## Changelog ### 🚨 Breaking Changes
  - No longer render default og:image, requires `**defineOgImage()**` - by @harlan-zw [`**(f50ec)**`](https://github.com/harlan-zw/nuxt-seo/commit/f50ec72)
  - No longer render default og:image, requires `**defineOgImage()**` - by @harlan-zw [`**(5eac2)**`](https://github.com/harlan-zw/nuxt-seo/commit/5eac2bb)
  - Drop `**nuxt-seo-ui**` module - by @harlan-zw [`**(cc7c5)**`](https://github.com/harlan-zw/nuxt-seo/commit/cc7c53d)
  - Migrate to `**@nuxtjs/robots**` - by @harlan-zw [`**(991bf)**`](https://github.com/harlan-zw/nuxt-seo/commit/991bfda)
  - Bump `**@nuxtjs/sitemap**` v6 beta - by @harlan-zw [`**(a6204)**`](https://github.com/harlan-zw/nuxt-seo/commit/a620429)
  - Migrate core features to `**nuxt-seo-utils**` - by @harlan-zw [`**(dd466)**`](https://github.com/harlan-zw/nuxt-seo/commit/dd466d4) ### 🚀 Features
  - Nuxt-seo-experiments - by @harlan-zw [`**(2de57)**`](https://github.com/harlan-zw/nuxt-seo/commit/2de579d)
  - Add `**canonicalDomain**` config - by @harlan-zw [`**(1a6ce)**`](https://github.com/harlan-zw/nuxt-seo/commit/1a6ce7b)
  - Support `**identity**` site config - by @harlan-zw [`**(5a90e)**`](https://github.com/harlan-zw/nuxt-seo/commit/5a90e83)
  - Support `**twitter**` site config - by @harlan-zw [`**(807f7)**`](https://github.com/harlan-zw/nuxt-seo/commit/807f774)
  - Support `**currentLocale**` site config - by @harlan-zw [`**(47b2f)**`](https://github.com/harlan-zw/nuxt-seo/commit/47b2fc5)
  - Nuxt Simple Sitemap v4 - by @harlan-zw [`**(578e5)**`](https://github.com/harlan-zw/nuxt-seo/commit/578e584)
  - Implement `**fallbackTitle**` as separate plugin - by @harlan-zw [`**(eb3bc)**`](https://github.com/harlan-zw/nuxt-seo/commit/eb3bc37)
  - `**useBreadcrumbItems()**` - by @harlan-zw [`**(1b5d8)**`](https://github.com/harlan-zw/nuxt-seo/commit/1b5d87d)
  - Nuxt Sitemap v5 - by @harlan-zw [`**(b1e43)**`](https://github.com/harlan-zw/nuxt-seo/commit/b1e4374)
  - `**canonicalQueryWhitelist**` - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo/issues/282~~**](https://github.com/harlan-zw/nuxt-seo/issues/282) [`**(568c2)**`](https://github.com/harlan-zw/nuxt-seo/commit/568c2b7)
  - Docs for v2 stable - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-seo/issues/338~~**](https://github.com/harlan-zw/nuxt-seo/issues/338) [`**(5ed69)**`](https://github.com/harlan-zw/nuxt-seo/commit/5ed69d9) ### 🐞 Bug Fixes
  - Nav re-order - by @harlan-zw [`**(5dae2)**`](https://github.com/harlan-zw/nuxt-seo/commit/5dae282)
  - Misc kit bugs - by @harlan-zw [`**(a1e98)**`](https://github.com/harlan-zw/nuxt-seo/commit/a1e9832)
  - Redirect to canonical domain in production by default - by @harlan-zw [`**(ccbab)**`](https://github.com/harlan-zw/nuxt-seo/commit/ccbabf6)
  - Prefer `**useServerHead**` for static head data - by @harlan-zw [`**(ba518)**`](https://github.com/harlan-zw/nuxt-seo/commit/ba51818)
  - Drop fallback title support - by @harlan-zw [`**(185b8)**`](https://github.com/harlan-zw/nuxt-seo/commit/185b8c8)
  - Only expose name and url from site config - by @harlan-zw [`**(0585c)**`](https://github.com/harlan-zw/nuxt-seo/commit/0585cee)
  - Drop fallback title support" - by @harlan-zw [`**(6d00c)**`](https://github.com/harlan-zw/nuxt-seo/commit/6d00cdd)
  - Use lower priority for nuxtseo defaults - by @harlan-zw [`**(6fcf8)**`](https://github.com/harlan-zw/nuxt-seo/commit/6fcf891)
  - Only set description if set - by @harlan-zw [`**(164a2)**`](https://github.com/harlan-zw/nuxt-seo/commit/164a251)
  - Tag priorities for nuxt.config overrides - by @harlan-zw [`**(0f309)**`](https://github.com/harlan-zw/nuxt-seo/commit/0f3095b)
  - Tag priorities for nuxt.config overrides - by @harlan-zw [`**(1cda3)**`](https://github.com/harlan-zw/nuxt-seo/commit/1cda345)
  - Support `**%siteName**` param - by @harlan-zw [`**(fb23e)**`](https://github.com/harlan-zw/nuxt-seo/commit/fb23ea9)
  - Give `` higher priority than nuxt.config - by @harlan-zw [`**(c306a)**`](https://github.com/harlan-zw/nuxt-seo/commit/c306a9d)
  - Provide all site config as template params and render client-side - by @harlan-zw [`**(9560a)**`](https://github.com/harlan-zw/nuxt-seo/commit/9560a65)
  - Update splash for beta - by @harlan-zw [`**(8cd22)**`](https://github.com/harlan-zw/nuxt-seo/commit/8cd229f)
  - Nuxt-og-image 2.1.0 beta - by @harlan-zw [`**(a7edb)**`](https://github.com/harlan-zw/nuxt-seo/commit/a7edbc3)
  - Fallback to defaultLocale for `**lang**` attribute - by @harlan-zw [`**(ce573)**`](https://github.com/harlan-zw/nuxt-seo/commit/ce5737a)
  - Redirect canonical site url requires opt-in - by @harlan-zw [`**(f0387)**`](https://github.com/harlan-zw/nuxt-seo/commit/f038733)
  - Remove Schema.org defaults, moved to `**nuxt-schema-org**` - by @harlan-zw [`**(38514)**`](https://github.com/harlan-zw/nuxt-seo/commit/3851490)
  - Enable `**fallbackTitle**` by default - by @harlan-zw [`**(9e0a0)**`](https://github.com/harlan-zw/nuxt-seo/commit/9e0a0de)
  - Module exports - by @harlan-zw [`**(44830)**`](https://github.com/harlan-zw/nuxt-seo/commit/44830c4)
  - Safer version resolving - by @harlan-zw [`**(66929)**`](https://github.com/harlan-zw/nuxt-seo/commit/66929e4)
  - Redirect logic - by @harlan-zw [`**(75ddb)**`](https://github.com/harlan-zw/nuxt-seo/commit/75ddb0f)
  - Add `**og:type**` back in - by @harlan-zw [`**(9dae0)**`](https://github.com/harlan-zw/nuxt-seo/commit/9dae098)
  - Apply trailingSlash config to `**NuxtLink**` component - by @harlan-zw [`**(18793)**`](https://github.com/harlan-zw/nuxt-seo/commit/1879310)
  - Don't apply default trailing slashes while upstream bug - by @harlan-zw [`**(79d42)**`](https://github.com/harlan-zw/nuxt-seo/commit/79d42b6)
  - 2s timeout on update check, allow failure - by @harlan-zw [`**(c34fe)**`](https://github.com/harlan-zw/nuxt-seo/commit/c34fe82)
  - Avoid using nuxt/ui types for breadcrumb item - by @harlan-zw [`**(534f5)**`](https://github.com/harlan-zw/nuxt-seo/commit/534f5f2)
  - Explicitly import $fetch - by @harlan-zw [`**(ca435)**`](https://github.com/harlan-zw/nuxt-seo/commit/ca435c7)
  - Only run version check in dev on stable branch - by @harlan-zw [`**(b0dcd)**`](https://github.com/harlan-zw/nuxt-seo/commit/b0dcdc8)
  - Breadcrumb `**to**` optional - by @harlan-zw [`**(48353)**`](https://github.com/harlan-zw/nuxt-seo/commit/48353f7)
  - Avoid running plugins in server components - by @harlan-zw [`**(5c0c9)**`](https://github.com/harlan-zw/nuxt-seo/commit/5c0c90b)
  - Ensure defaults are applied after i18n site config - by @harlan-zw [`**(31f0d)**`](https://github.com/harlan-zw/nuxt-seo/commit/31f0d70)
  - Ensure breadcrumb schema.org paths are fully resolved - by @harlan-zw [`**(09a4c)**`](https://github.com/harlan-zw/nuxt-seo/commit/09a4c6e)
  - Opt in to `**import.meta.***` properties - by @danielroe in [**~~https://github.com/harlan-zw/nuxt-seo/issues/211~~**](https://github.com/harlan-zw/nuxt-seo/issues/211) [`**(0fad0)**`](https://github.com/harlan-zw/nuxt-seo/commit/0fad027)
  - Redirect using url config key - by @94726 in [**~~https://github.com/harlan-zw/nuxt-seo/issues/256~~**](https://github.com/harlan-zw/nuxt-seo/issues/256) [`**(2f195)**`](https://github.com/harlan-zw/nuxt-seo/commit/2f195e4)
  - Disable splash by default - by @harlan-zw [`**(840cf)**`](https://github.com/harlan-zw/nuxt-seo/commit/840cf49)
  - Avoid infinite redirects with `**redirectToCanonicalSiteUrl**` redirects - by @harlan-zw [`**(bac31)**`](https://github.com/harlan-zw/nuxt-seo/commit/bac31a9)
  - `**useBreadcrumbItems**` generating invalid schema.org - by @harlan-zw [`**(e321b)**`](https://github.com/harlan-zw/nuxt-seo/commit/e321b80)
  - Missing nuxt app context when using `**useBreadcrumbItems**` - by @harlan-zw [`**(2005a)**`](https://github.com/harlan-zw/nuxt-seo/commit/2005a29)
  - Reactive `**lang**` when using Nuxt I18n - by @harlan-zw [`**(58e4f)**`](https://github.com/harlan-zw/nuxt-seo/commit/58e4f3e)
  - Wait for i18n plugin, handle fallback - by @harlan-zw [`**(81163)**`](https://github.com/harlan-zw/nuxt-seo/commit/8116353)
  - `**useBreadcrumbItems**` support static meta from dynamic routes - by @terion-name in [**~~https://github.com/harlan-zw/nuxt-seo/issues/323~~**](https://github.com/harlan-zw/nuxt-seo/issues/323) [`**(d3895)**`](https://github.com/harlan-zw/nuxt-seo/commit/d389507)
  - Avoid `**og-image**` and `**sitemap**` version locks - by @harlan-zw [`**(76b7e)**`](https://github.com/harlan-zw/nuxt-seo/commit/76b7e1d)
  - **breadcrumbs**:
    - Support computed overrides - by @thorge in [**~~https://github.com/harlan-zw/nuxt-seo/issues/331~~**](https://github.com/harlan-zw/nuxt-seo/issues/331) [`**(79e4d)**`](https://github.com/harlan-zw/nuxt-seo/commit/79e4d63)
  - **doc**:
    - Broken config key for robot user agents - by @harlan-zw [`**(b76b2)**`](https://github.com/harlan-zw/nuxt-seo/commit/b76b26c)
  - **useBreadcrumbItems**:
    - Avoid infinite recursion - by @harlan-zw [`**(f6fd1)**`](https://github.com/harlan-zw/nuxt-seo/commit/f6fd135)
    - Enable schema.org by default - by @harlan-zw [`**(6b0d7)**`](https://github.com/harlan-zw/nuxt-seo/commit/6b0d7fd)
    - Allow `**overrides**`, `**append**` and `**prepend**` - by @harlan-zw [`**(a1d8b)**`](https://github.com/harlan-zw/nuxt-seo/commit/a1d8b1d)
    - Ensure i18n prefix is correct - by @harlan-zw [`**(919a2)**`](https://github.com/harlan-zw/nuxt-seo/commit/919a243)
    - Nuxt instance in computed - by @harlan-zw [`**(c1696)**`](https://github.com/harlan-zw/nuxt-seo/commit/c1696ea)
    - Avoid route path becoming label - by @harlan-zw [`**(bc1dc)**`](https://github.com/harlan-zw/nuxt-seo/commit/bc1dc0b)
    - Route meta regression - by @harlan-zw [`**(f5a4d)**`](https://github.com/harlan-zw/nuxt-seo/commit/f5a4da6) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v1.3.13...v2.0.0)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last yearv4.0.0** Major **## Introduction

  The v5 major of Nuxt Link Checker is a simple release to remove deprecations and add support for the [**~~Nuxt SEO v2 stable~~**](https://nuxtseo.com/announcement). ## ⚠️ Breaking Features ### Site Config v3

  Nuxt Site Config is a module used internally by Nuxt Link Checker.

  The major update to v3.0.0 shouldn't have any direct effect on your site, however, you may want to double-check the [**~~breaking changes~~**](https://github.com/harlan-zw/nuxt-site-config/releases/tag/v3.0.0). ### 🚨 Breaking Changes
  - Upgrade to nuxt-site-config v3 - by @harlan-zw [`**(5a290)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/5a2902f) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v3.2.0...v4.0.0)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv4.0.0** Major **## Introduction

  The v5 major of Nuxt Schema.org is a simple release to remove deprecations and add support for the [**~~Nuxt SEO v2 stable~~**](https://nuxtseo.com/announcement). ## ⚠️ Breaking Features ### Site Config v3

  Nuxt Site Config is a module used internally by Nuxt Schema.org.

  The major update to v3.0.0 shouldn't have any direct effect on your site, however, you may want to double-check the [**~~breaking changes~~**](https://github.com/harlan-zw/nuxt-site-config/releases/tag/v3.0.0). ## Changelog ### 🚨 Breaking Changes
  - Upgrade to nuxt-site-config v3 - by @harlan-zw [`**(d44e2)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/d44e258) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v3.5.0...v4.0.0)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv3.5.0 ### 🚀 Features
  - Improved identity configuration - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-schema-org/issues/66~~**](https://github.com/harlan-zw/nuxt-schema-org/issues/66) [`**(252a1)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/252a12e)
  - Nuxt Content integration - by @harlan-zw in [**~~https://github.com/harlan-zw/nuxt-schema-org/issues/67~~**](https://github.com/harlan-zw/nuxt-schema-org/issues/67) [`**(6dee1)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/6dee1ca) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v3.4.7...v3.5.0)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)last yearv3.2.0 ### 🚀 Features
  - `**no-missing-href**` rule - by @harlan-zw [`**(e12ab)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/e12ab3d)
  - `**no-double-slashes**` rule - by @harlan-zw [`**(11b8f)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/11b8fa9)
  - `**no-non-ascii-chars**` rule - by @harlan-zw [`**(3d663)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/3d663c3)
  - `**no-duplicate-query-params**` rule - by @harlan-zw [`**(bfe9e)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/bfe9e0f)
  - `**no-whitespace**` rule - by @harlan-zw [`**(ce79e)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/ce79e8a)
  - `**no-uppercase-chars**` rule - by @harlan-zw [`**(7e92d)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/7e92daf) ### 🐞 Bug Fixes
  - Better description for `**no-baseless**` - by @harlan-zw [`**(370aa)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/370aa70)
  - `**skipInspections**` not honoured - by @harlan-zw [`**(2df19)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/2df19ed) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v3.1.3...v3.2.0)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv3.4.7

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v3.4.6...v3.4.7)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv3.4.6

  _No significant changes_##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v3.4.5...v3.4.6)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv3.4.5 ### 🐞 Bug Fixes
  - Broken `**injectHead**` import - by @harlan-zw [`**(9d581)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/9d581a0) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v3.4.4...v3.4.5)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)last yearv3.4.4 ### 🐞 Bug Fixes
  - Pure utils for useSchemaOrgConfig - by @harlan-zw [`**(5ba65)**`](https://github.com/harlan-zw/nuxt-schema-org/commit/5ba6529) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-schema-org/compare/v3.4.3...v3.4.4)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)2 years agov3.1.3 ### 🐞 Bug Fixes
  - Support custom root ids - by @harlan-zw [`**(f1659)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/f1659eb)
  - **link-text**: Expose extracted textContent - by @harlan-zw [`**(53b71)**`](https://github.com/harlan-zw/nuxt-link-checker/commit/53b710a) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-link-checker/compare/v3.1.2...v3.1.3)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)2 years agov2.0.0-rc.23 ### 🐞 Bug Fixes
  - Avoid `**og-image**` and `**sitemap**` version locks - by @harlan-zw [`**(76b7e)**`](https://github.com/harlan-zw/nuxt-seo/commit/76b7e1d) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v2.0.0-rc.22...v2.0.0-rc.23)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)2 years agov2.0.0-rc.22 ### 🐞 Bug Fixes
  - **useBreadcrumbItems**:
    - Avoid route path becoming label - by @harlan-zw [`**(bc1dc)**`](https://github.com/harlan-zw/nuxt-seo/commit/bc1dc0b)
    - Route meta regression - by @harlan-zw [`**(f5a4d)**`](https://github.com/harlan-zw/nuxt-seo/commit/f5a4da6)
    - Support static meta from dynamic routes - by @terion-name in [**~~https://github.com/harlan-zw/nuxt-seo/issues/323~~**](https://github.com/harlan-zw/nuxt-seo/issues/323) [`**(d3895)**`](https://github.com/harlan-zw/nuxt-seo/commit/d389507) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v2.0.0-rc.21...v2.0.0-rc.22)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)2 years agov2.0.0-rc.21 ### 🐞 Bug Fixes
  - **useBreadcrumbItems**: Nuxt instance in computed - by @harlan-zw [`**(c1696)**`](https://github.com/harlan-zw/nuxt-seo/commit/c1696ea) ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v2.0.0-rc.20...v2.0.0-rc.21)
- [Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)2 years agov2.0.0-rc.20 ### 🚨 Breaking Changes
  - Bump `**@nuxtjs/sitemap**` v6 stable - by @harlan-zw [`**(a6204)**`](https://github.com/harlan-zw/nuxt-seo/commit/a620429).

  ⚠️ Please see [**~~https://github.com/nuxt-modules/sitemap/pull/320~~**](https://github.com/nuxt-modules/sitemap/pull/320) if you have submitted multi-sitemap URLS in Google Search Console as the paths have changed.

  ⚠️ Please verify your sitemap output. ##### [**~~View changes on GitHub~~**](https://github.com/harlan-zw/nuxt-seo/compare/v2.0.0-rc.19...v2.0.0-rc.20)

Check GitHub for older releases.