nuxt-link-checker
Identify and fix link issues for prerendered Nuxt 3 apps.
ℹ️ Looking for a complete SEO solution? Check out Nuxt SEO Kit.
Features
- ✅ Discover broken links - 404s and internal redirects
- 🚩 Warnings for bad practice links - absolute instead of relative and wrong trailing slash
- 🕵️ Fail on build if broken links are found (optional)
Install
npm install --save-dev nuxt-link-checker
yarn add --dev nuxt-link-checker
Setup
nuxt.config.ts
export default defineNuxtConfig({
modules: [
'nuxt-link-checker',
],
})
To have routes scanned for broken links automatically, they need to be pre-rendered by Nitro.
export default defineNuxtConfig({
nitro: {
prerender: {
crawlLinks: true,
routes: [
'/',
'/my-hidden-url'
]
}
}
})
Set host (optional)
You'll need to provide the host of your site so that the crawler can resolve absolute URLs that may be internal.
export default defineNuxtConfig({
runtimeConfig: {
public: {
siteUrl: 'https://example.com',
}
},
linkChecker: {
host: 'https://example.com',
},
})
Exclude URLs from throwing errors
You can exclude URLs from throwing errors by adding them to the exclude
array.
For example, if you have an /admin
route that is a separate application, you can ignore all /admin
links with:
export default defineNuxtConfig({
linkChecker: {
exclude: [
'/admin/**'
],
},
})
Disable errors on broken links
You can disable errors on broken links by setting failOn404
to false
.
export default defineNuxtConfig({
linkChecker: {
failOn404: false,
},
})
Module Config
failOn404
- Type:
boolean
- Default:
true
If set to true
, the build will fail if any broken links are found.
exclude
- Type:
string[]
- Default:
[]
An array of URLs to exclude from the check.
This can be useful if you have a route that is not pre-rendered, but you know it will be valid.
host
- Type:
string
- Default:
runtimeConfig.public.siteUrl || localhost
- Required:
false
The host of your site. This is required to validate absolute URLs which may be internal.
trailingSlash
- Type:
boolean
- Default:
false
Whether internal links should have a trailing slash or not.
License
MIT License © 2023-PRESENT Harlan Wilton