Configuration · Nuxt Skew Protection · Nuxt SEO

[NuxtSEO Pro](https://nuxtseo.com/ "Home")

- [Modules](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [Tools](https://nuxtseo.com/tools)
- [Pro](https://nuxtseo.com/pro)
- [Learn SEO](https://nuxtseo.com/learn-seo/nuxt) [Releases](https://nuxtseo.com/releases)

[Sign In](https://nuxtseo.com/auth/github)

[Nuxt SEO on GitHub](https://github.com/harlan-zw/nuxt-seo)

[User Guides](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)

[API](https://nuxtseo.com/docs/skew-protection/api/use-skew-protection)

[Releases](https://nuxtseo.com/docs/skew-protection/releases/v1)

Skew Protection

- [Switch to Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)
- [Switch to Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [Switch to Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)
- [Switch to Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)
- [Switch to OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)
- [Switch to Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)
- [Switch to Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)
- [Switch to SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)
- [Switch to Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)
- [Switch to AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)

Search…```k`` /`

v1.1.1

- [Discord Support](https://discord.com/invite/275MBUBvgP)

### Nuxt API

- [ `useSkewProtection()`](https://nuxtseo.com/docs/skew-protection/api/use-skew-protection)
- [ `useActiveConnections()`](https://nuxtseo.com/docs/skew-protection/api/use-active-connections)
- [ `<SkewNotification />`](https://nuxtseo.com/docs/skew-protection/api/skew-notification)
- [nuxt.config.ts](https://nuxtseo.com/docs/skew-protection/api/config)
- [Nuxt Hooks](https://nuxtseo.com/docs/skew-protection/api/nuxt-hooks)

### Nitro API

- [ `isClientOutdated()`](https://nuxtseo.com/docs/skew-protection/nitro-api/is-client-outdated)
- [Nitro Hooks](https://nuxtseo.com/docs/skew-protection/nitro-api/nitro-hooks)

Nuxt API

# Configuration

[Copy for LLMs](https://nuxtseo.com/docs/skew-protection/api/config.md)

Complete configuration options for `nuxt.config.ts`.

## [Basic Configuration](#basic-configuration)

nuxt.config.ts

```
export default defineNuxtConfig({
  modules: ['nuxt-skew-protection'],

  skewProtection: {
    // Your configuration here
  }
})
```

## [Options](#options)

### [`enabled: boolean`](#enabled-boolean)

- Default: `true`

Enables or disables the module.

### [`storage: StorageOptions`](#storage-storageoptions)

- Default: `{ driver: 'fs', base: 'node_modules/.cache/nuxt-seo/skew-protection' }`

Storage configuration for version assets and metadata. Required for production.

nuxt.config.ts

```
export default defineNuxtConfig({
  skewProtection: {
    storage: {
      driver: 'fs', // or 'redis', 's3', 'cloudflare-kv-binding', etc.
      // Driver-specific options
    }
  }
})
```

See [Storage Configuration](https://nuxtseo.com/docs/skew-protection/guides/storage-configuration) for all drivers.

### [`updateStrategy'polling' | 'sse' | 'ws'`](#updatestrategy-polling-sse-ws)

- Default: Auto-detected based on platform

Strategy for checking for version updates.

See [Update Strategies](https://nuxtseo.com/docs/skew-protection/guides/update-strategies) for details.

### [`retentionDays: number`](#retentiondays-number)

- Default: `30`

How many days to keep old versions before cleanup.

```
skewProtection: {
  retentionDays: 7 // Keep versions for 7 days
}
```

### [`maxNumberOfVersions: number`](#maxnumberofversions-number)

- Default: `10`

Maximum number of versions to retain.

```
skewProtection: {
  maxNumberOfVersions: 5 // Keep max 5 versions
}
```

Cleanup happens during build. The module removes the oldest versions first.

### [`cookie: CookieOptions`](#cookie-cookieoptions)

- Default: See below

Cookie configuration for storing deployment version.

nuxt.config.ts

```
export default defineNuxtConfig({
  skewProtection: {
    cookie: {
      name: '__nkpv',
      path: '/',
      sameSite: 'lax',
      maxAge: 60 * 60 * 24 * 7 // 7 days
    }
  }
})
```

### [`bundleAssets: boolean`](#bundleassets-boolean)

- Default: `true`

Bundles previous deployment chunks to support users on old versions. The module stores and serves old build assets to users who haven't refreshed.

nuxt.config.ts

```
export default defineNuxtConfig({
  skewProtection: {
    bundleAssets: true
  }
})
```

Automatically disabled when using CDN URL.

### [`connectionTracking: boolean`](#connectiontracking-boolean)

- Default: `false`

Enables real-time connection tracking. When enabled, the server tracks active SSE/WebSocket connections and only sends stats to authorized connections.

nuxt.config.ts

```
export default defineNuxtConfig({
  skewProtection: {
    connectionTracking: true
  }
})
```

Use with the `useActiveConnections()` composable to display live connection stats:

```
const { total, versions, authorized } = useActiveConnections()
```

Only works with `sse` or `ws` update strategies. Does not support polling or external adapters (Pusher/Ably).

Stats require authorization via the `skew:authorize-stats` hook. See [Live Connection Tracking](https://nuxtseo.com/docs/skew-protection/guides/live-connections#authorization) for setup.

See [Live Connection Tracking](https://nuxtseo.com/docs/skew-protection/guides/live-connections) for usage examples.

### [`routeTracking: boolean`](#routetracking-boolean)

- Default: `false`

Tracks which routes users are currently viewing. Requires `connectionTracking: true`.

nuxt.config.ts

```
export default defineNuxtConfig({
  skewProtection: {
    connectionTracking: true,
    routeTracking: true
  }
})
```

When enabled, `useActiveConnections()` includes a `routes` property:

```
const { total, versions, routes } = useActiveConnections()
// routes.value = { "/": 10, "/about": 3, "/blog/post-1": 2 }
```

See [Tracking User Pages](https://nuxtseo.com/docs/skew-protection/guides/route-tracking) for usage examples and targeted invalidation.

### [`ipTracking: boolean`](#iptracking-boolean)

- Default: `false`

Tracks IP addresses of connected users. Requires `connectionTracking: true`.

nuxt.config.ts

```
export default defineNuxtConfig({
  skewProtection: {
    connectionTracking: true,
    ipTracking: true
  }
})
```

When enabled, `useActiveConnections()` includes IP addresses in the `connections` array:

```
const { connections } = useActiveConnections()
// connections.value = [{ id: 'abc', version: '...', route: '/', ip: '192.168.1.1' }]
```

IP tracking requires explicit opt-in due to privacy considerations. The module only stores IPs in memory and exposes them via the stats API. Ensure your `skew:authorize-stats` hook properly restricts access.

The module extracts IP addresses from headers in this order: `cf-connecting-ip` (Cloudflare), `x-forwarded-for` (proxies), `x-real-ip` (nginx).

### [`debug: boolean`](#debug-boolean)

- Default: `false`

Enables debug logging.

nuxt.config.ts

```
export default defineNuxtConfig({
  skewProtection: {
    debug: true
  }
})
```

Logs version changes, asset operations, module invalidations, and storage operations.

[Edit this page](https://github.com/nuxt-seo-pro/nuxt-skew-protection/edit/main/docs/content/3.api/5.config.md)

[Markdown For LLMs](https://nuxtseo.com/docs/skew-protection/api/config.md)

Did this page help you?

[useActiveConnections() Composable for monitoring real-time connection statistics and version distribution.](https://nuxtseo.com/docs/skew-protection/api/use-active-connections) [isClientOutdated() Server-side utility to check if a client's version is outdated.](https://nuxtseo.com/docs/skew-protection/nitro-api/is-client-outdated)

On this page

- [Basic Configuration](#basic-configuration)
- [Options](#options)

[GitHub](https://github.com/harlan-zw/nuxt-seo) [ Discord](https://discord.com/invite/275MBUBvgP)

### [NuxtSEO](https://nuxtseo.com/ "Home")

- [Getting Started](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [MCP](https://nuxtseo.com/docs/nuxt-seo/guides/mcp)

Modules

- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)

### [NuxtSEO Pro](https://nuxtseo.com/pro "Nuxt SEO Pro")

- [Getting Started](https://nuxtseo.com/pro)
- [Dashboard](https://nuxtseo.com/pro/dashboard)
- [Pro MCP](https://nuxtseo.com/pro/docs/getting-started/mcp-setup)

### [Learn SEO](https://nuxtseo.com/learn-seo "Learn SEO")

Nuxt

- [Mastering Meta](https://nuxtseo.com/learn-seo/nuxt/mastering-meta)
- [Controlling Crawlers](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers)
- [Launch & Listen](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen)
- [Routes & Rendering](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering)
- [Staying Secure](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/security)

Vue

- [Vue SEO Guide](https://nuxtseo.com/learn-seo/vue)
- [Mastering Meta](https://nuxtseo.com/learn-seo/vue/mastering-meta)
- [Controlling Crawlers](https://nuxtseo.com/learn-seo/vue/controlling-crawlers)
- [SPA SEO](https://nuxtseo.com/learn-seo/vue/spa)
- [SSR Frameworks](https://nuxtseo.com/learn-seo/vue/ssr-frameworks)
- [SEO Checklist](https://nuxtseo.com/learn-seo/checklist)
- [Pre-Launch Warmup](https://nuxtseo.com/learn-seo/pre-launch-warmup)
- [Backlinks & Authority](https://nuxtseo.com/learn-seo/backlinks)

### [Tools](https://nuxtseo.com/tools "SEO Tools")

- [Social Share Debugger](https://nuxtseo.com/tools/social-share-debugger)
- [Robots.txt Generator](https://nuxtseo.com/tools/robots-txt-generator)
- [Meta Tag Checker](https://nuxtseo.com/tools/meta-tag-checker)
- [HTML to Markdown](https://nuxtseo.com/tools/html-to-markdown)
- [XML Sitemap Validator](https://nuxtseo.com/tools/xml-sitemap-validator)
- [Schema.org Validator](https://nuxtseo.com/tools/schema-validator)
- [Keyword Idea Generator](https://nuxtseo.com/tools/keyword-generator)
- [Keyword Research](https://nuxtseo.com/tools/keyword-research)
- [SERP Analyzer](https://nuxtseo.com/tools/serp-analyzer)
- [Domain Rankings](https://nuxtseo.com/tools/domain-rankings)

Copyright © 2023-2026 Harlan Wilton - [MIT License](https://github.com/harlan-zw/nuxt-seo/blob/main/license) · [mdream](https://mdream.dev)