Check for Update Strategy · 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)

### Getting Started

- [Introduction](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)
- [Installation](https://nuxtseo.com/docs/skew-protection/getting-started/installation)

### Core Concepts

- [Check for Update Strategy](https://nuxtseo.com/docs/skew-protection/guides/update-strategies)
- [Update Notifications](https://nuxtseo.com/docs/skew-protection/guides/immediate-updates)
- [Performance](https://nuxtseo.com/docs/skew-protection/guides/performance)
- [Persistent Storage](https://nuxtseo.com/docs/skew-protection/guides/storage-configuration)
- [Notification UI](https://nuxtseo.com/docs/skew-protection/guides/ui-examples)
- [Cookie Consent](https://nuxtseo.com/docs/skew-protection/guides/cookie-consent)
- [View Active Connections](https://nuxtseo.com/docs/skew-protection/guides/live-connections)
- [Tracking User Pages](https://nuxtseo.com/docs/skew-protection/guides/route-tracking)

### Providers

- [External Providers](https://nuxtseo.com/docs/skew-protection/providers/external)
- [Cloudflare](https://nuxtseo.com/docs/skew-protection/providers/cloudflare)

Core Concepts

# Check for Update Strategy

[Copy for LLMs](https://nuxtseo.com/docs/skew-protection/guides/update-strategies.md)

When you deploy a new version of your Nuxt app we need to notify active users of the new version. By default, Nuxt applies a polling strategy, checking every hour if the build is out of date.

Alternative strategies like Server-Sent Events (SSE), WebSockets, and external providers provide real-time notifications, but have different platform compatibilities and performance trade-offs.

| Strategy | Real-time | Platforms | Server Load | Client Connections |
| --- | --- | --- | --- | --- |
| **[Polling](#polling)** | ❌ Delayed | ✅ All | ✅ Minimal | ✅ None |
| **[SSE](#sse)** | ✅ Instant | ⚠️ Node.js/Bun/Deno | ⚠️ Low | ⚠️ Persistent |
| **[WebSocket](#websocket)** | ✅ Instant | ⚠️ Cloudflare Durable | ⚠️ Moderate | ⚠️ Persistent |
| **[Adapter](#adapter)** | ✅ Instant | ✅ All (incl. Static) | ✅ None (external) | ✅ External provider |

## [Performance Considerations](#performance-considerations)

SSE and [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) strategies maintain persistent connections on your server. For **high-traffic applications** (10,000+ concurrent users), using an [Adapter](#adapter) with external providers like Ably or Pusher may be worthwhile.

The module automatically excludes bot traffic from connections when you install `@nuxtjs/robots`. See [Bot Traffic Filtering](https://nuxtseo.com/docs/skew-protection/guides/performance#bot-traffic-filtering).

See the [Performance Guide](https://nuxtseo.com/docs/skew-protection/guides/performance) for more details.

## [Platform Defaults](#platform-defaults)

The module automatically selects the best strategy based on your deployment platform, but you can override it in your configuration using [`updateStrategy`](https://nuxtseo.com/docs/skew-protection/api/config#updatestrategy-polling--sse--ws).

| Provider | updateStrategy |
| --- | --- |
| **Node.js** | `sse` |
| **Bun** | `sse` |
| **Deno** | `sse` |
| **Vercel** | `sse` |
| **Cloudflare Workers** | `polling` |
| **Cloudflare Durable** | `ws` |
| **Netlify** | `sse` |
| **Static/Prerendered** | `polling` or [adapter](#adapter) |

Note: For `ws` strategy, you must enable `nuxt.options.nitro.experimental.websocket`.

## [Polling](#polling)

The default strategy that works on **all platforms**. Uses Nuxt's built-in `experimental.checkOutdatedBuildInterval` to periodically fetch `builds/latest.json` to determine if a new deployment has occurred.

Update `checkOutdatedBuildInterval` to a quicker polling interval - 1 hour is too slow for most applications.

nuxt.config.ts

```
export default defineNuxtConfig({
  skewProtection: {
    updateStrategy: 'polling'
  },
  experimental: {
    checkOutdatedBuildInterval: 5 * 60 * 1000 // 5 minutes
  }
})
```

## [SSE](#sse)

Real-time updates using **Server-Sent Events**. SSE does keep persistent connections open, be mindful of this if you have a high-traffic site. SSE has less overhead than WebSockets.

nuxt.config.ts

```
export default defineNuxtConfig({
  skewProtection: {
    updateStrategy: 'sse'
  }
})
```

## [WebSocket](#websocket)

Real-time updates using **WebSockets**. These are useless as SSE is more performant however for certain conditions like using Cloudflare Workers and some proxying services, WebSockets may be the best option.

Cloudflare Durable Objects

```
export default defineNuxtConfig({
  nitro: {
    preset: 'cloudflare-durable',
    experimental: {
      websocket: true
    }
  },
  skewProtection: {
    updateStrategy: 'ws'
  }
})
```

## [Adapter](#adapter)

Adapters allow you to use **external WebSocket providers** for real-time update notifications. This is ideal for **static/prerendered sites** or when you want to offload connection management to a third-party service.

Available adapters:

- [Pusher](https://nuxtseo.com/docs/skew-protection/providers/external#pusher)
- [Ably](https://nuxtseo.com/docs/skew-protection/providers/external#ably)
- [Custom](https://nuxtseo.com/docs/skew-protection/providers/external#custom-adapters)

nuxt.config.ts

```
import { pusherAdapter } from 'nuxt-skew-protection/adapters/pusher'

export default defineNuxtConfig({
  skewProtection: {
    updateStrategy: pusherAdapter({
      key: process.env.PUSHER_KEY,
      cluster: process.env.PUSHER_CLUSTER,
      appId: process.env.PUSHER_APP_ID,
      secret: process.env.PUSHER_SECRET,
    })
  }
})
```

See [External Providers](https://nuxtseo.com/docs/skew-protection/providers/external) for detailed setup guides.

[Edit this page](https://github.com/nuxt-seo-pro/nuxt-skew-protection/edit/main/docs/content/2.guides/0.update-strategies.md)

[Markdown For LLMs](https://nuxtseo.com/docs/skew-protection/guides/update-strategies.md)

Did this page help you?

[Installation Get started with Nuxt Skew Protection by installing the dependency to your project.](https://nuxtseo.com/docs/skew-protection/getting-started/installation) [Update Notifications React to version updates using useSkewProtection() composable.](https://nuxtseo.com/docs/skew-protection/guides/immediate-updates)

On this page

- [Performance Considerations](#performance-considerations)
- [Platform Defaults](#platform-defaults)
- [Polling](#polling)
- [SSE](#sse)
- [WebSocket](#websocket)
- [Adapter](#adapter)

[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 "Home")

- [Getting Started](https://nuxtseo.com/pro)
- [Dashboard](https://nuxtseo.com/pro/dashboard)
- [Pro MCP](https://nuxtseo.com/docs/nuxt-seo-pro/mcp/installation)

### [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)