---
title: "v4.0.0 · Nuxt Site Config · Nuxt SEO"
canonical_url: "https://nuxtseo.com/docs/site-config/releases/v4"
last_updated: "2026-08-16T10:10:32.880Z"
meta:
  description: "Release notes for Nuxt Site Config v4.0.0."
  "og:description": "Release notes for Nuxt Site Config v4.0.0."
  "og:title": "v4.0.0 · Nuxt Site Config · Nuxt SEO"
---

Nuxt SEO on GitHub

Switch to Site ConfigSwitch to Nuxt SEOSwitch to RobotsSwitch to SitemapSwitch to OG ImageSwitch to Schema.orgSwitch to Link CheckerSwitch to SEO UtilsSwitch to Skew ProtectionSwitch to AI Ready

**Releases**

# **v4.0.0**

## ⚠️ 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.ts

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

Or via environment variable:

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

If not set, `**site.name**` will be `**undefined**`.

### 🔑 Removed Legacy `**site***` Runtime Config Keys

v4 removes deprecated `**siteUrl**`, `**siteName**`, and `**siteDescription**` runtime config keys.

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

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

v4 removes the server-side `**useSiteConfig()**` composable to resolve auto-import name collisions between client and server composables.

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

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

The client-side `**useSiteConfig()**` composable is unchanged.

### 🗑️ Deprecated `**getSiteIndexable**` Composable

`**getSiteIndexable()**` is deprecated. Prefer checking the `**indexable**` property directly:

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

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

v4 removes the legacy `**#internal/nuxt-site-config**` import path. Use the documented public APIs instead.

### 🏗️ Deprecated `**SiteConfig**` Type Alias

`**SiteConfig**` is deprecated as an alias for `**SiteConfigResolved**`. It still exists, but a future version will remove it. Prefer `**SiteConfigResolved**`:

```diff
-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:

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

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

Available priorities: `**system**`, `**vendor**`, `**nitro**`, `**config**`, `**i18n**`, `**build**`, `**runtime**`.

**Was this page helpful?**

[**Nitro Hooks** Learn how to use Nitro Hooks to customize your site config.](https://nuxtseo.com/docs/site-config/nitro-api/nitro-hooks) [**v3.0.0** Release notes for Nuxt Site Config v3.0.0.](https://nuxtseo.com/docs/site-config/releases/v3)