---
title: "Introduction · Nuxt Skew Protection · Nuxt SEO"
meta:
  "og:description": "Eliminate version skew issues in your Nuxt application with intelligent update notifications and long-lived build assets."
  "og:title": "Introduction · Nuxt Skew Protection · Nuxt SEO"
  description: "Eliminate version skew issues in your Nuxt application with intelligent update notifications and long-lived build assets."
---

**Getting Started**

# **Introduction**

Last updated **Dec 14, 2025** by [Harlan Wilton](https://github.com/harlan-zw) in [doc: internal links](https://github.com/nuxt-seo-pro/nuxt-skew-protection/commit/b0a8d3323dc5a3cc926dab76e878dfa4aa8ab630).

[Copy for LLMs

## [Why Nuxt Skew Protection?](#why-nuxt-skew-protection)

**Version skew** is a mismatch between your deployed build and the chunks running in user browsers and crawler sessions. It can lead to several issues:

- 🕷️ **Crawlers 404 on stale chunks** - Googlebot requests `_nuxt/builds/abc123.js` which no longer exists post-deploy, logging 500s and potentially impacting indexing
- 💥 **ChunkLoadError in production** - Users mid-session get `Failed to fetch dynamically imported module` when navigating to routes with invalidated chunks
- 🔄 **Delayed rollout** - Your latest release sits unloaded until users hard refresh, sometimes hours or days later

Nuxt's built-in behavior (hard-reload when a new deployment is detected) helps, but in many cases it's [**not enough**](https://github.com/nuxt/nuxt/issues/29624).

Nuxt Skew Protection does this with proactive update prompts and persistent build assets across deploys.

Ready to get started? Check out the [**installation guide**](https://nuxtseo.com/docs/skew-protection/getting-started/installation).

**License:** Nuxt Skew Protection is a [**Nuxt SEO Pro**](https://nuxtseo.com/pro) module and requires a license.

### [Nuxt Chunk Loading Errors](#nuxt-chunk-loading-errors)

If you've come across any of the following errors in Google Search Console, Sentry, or the browser console, they may be related to chunk loading failures, which the module prevents:

> "Cannot read properties of undefined (reading 'default')"
> "Couldn't resolve component 'default' at /"
> "undefined is not an object (evaluating 'r.default')"
> "Failed to fetch dynamically imported module"
> "Importing a module script failed"

## [Features](#features)

### [🕷️ Persistent Build Assets](#️-persistent-build-assets)

Previous build artifacts remain accessible across deploys, avoiding broken requests from:

- Search engine crawlers hitting stale chunk URLs
- Users on old sessions navigating your app
- Progressive web apps with cached routes

Assets are stored with smart deduplication to minimize storage overhead.

### [⚡ Instant Update Prompts](#instant-update-prompts)

Zero-config real-time notifications when a new version is deployed. Multiple transport strategies available:

- **Polling** - Works everywhere, uses Nuxt's built-in `app:manifest:update` hook
- **SSE** - Server-Sent Events for Node.js/Bun/Deno runtimes
- **WebSocket** - Real-time updates via Cloudflare Durable Objects
- **Adapters** - Third-party providers for any platform (see below)

### [🎯 Chunk-Aware Targeting](#chunk-aware-targeting)

Not every deploy needs to interrupt users. Notifications fire only when the user's **currently loaded chunks** are invalidated by the new build.

A service worker tracks loaded JavaScript modules and detects when they're deleted in subsequent deployments - no false positives for unrelated updates.

### [🎨 Headless UI](#headless-ui)

Drop-in `<SkewNotification>` component with first-class Nuxt UI support:

```
<template>
  <SkewNotification v-slot="{ isCurrentChunksOutdated }">
    <div v-if="isCurrentChunksOutdated">
      New version available
    </div>
  </SkewNotification>
</template>
```

### [📊 Live Connection Monitoring](#live-connection-monitoring)

Track active connections and version distribution across your users in real-time:

- Monitor total connected users
- See which build versions are running
- Track rollout progress as users adopt new deployments

Perfect for admin dashboards and deployment monitoring. See [**View Active Connections**](https://nuxtseo.com/docs/skew-protection/guides/live-connections) for setup.

### [🔌 Third-Party Adapters](#third-party-adapters)

Get real-time update notifications on **any platform** including static sites using external WebSocket providers:

- [**Pusher**](https://pusher.com) - Hosted WebSocket service with generous free tier
- [**Ably**](https://ably.com) - Realtime messaging platform

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

[Edit this page](https://github.com/nuxt-seo-pro/nuxt-skew-protection/edit/main/docs/content/1.getting-started/0.introduction.md)

[Markdown For LLMs](https://nuxtseo.com/docs/skew-protection/getting-started/introduction.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)

**On this page**

- [Why Nuxt Skew Protection?](#why-nuxt-skew-protection)
- [Features](#features)