diff --git a/pages/_slug.vue b/pages/_slug.vue
index c94032379ad55092be3a125fdba8119de7b4c054..255e2f92b79a8f9b73763a6469d526bf38e75be3 100644
--- a/pages/_slug.vue
+++ b/pages/_slug.vue
@@ -16,10 +16,13 @@ import { headDocument as head } from '~/libs/helpers'
 
 export default {
   name: 'PageSlug',
-  async asyncData({ $content, params }) {
-    const document = await $content('pages', params.slug).fetch()
-
-    return { document }
+  async asyncData({ $content, params, error }) {
+    try {
+      const document = await $content('pages', params.slug).fetch()
+      return { document }
+    } catch (err) {
+      return error({ statusCode: 404, message: err.message })
+    }
   },
   head,
 }
diff --git a/pages/blog/_slug.vue b/pages/blog/_slug.vue
index b00cf00579377b8832b64e9634e0ecce7e91c0a8..86cdfcfd1559cc6599d4187ec25e3de6fa5da099 100644
--- a/pages/blog/_slug.vue
+++ b/pages/blog/_slug.vue
@@ -41,19 +41,23 @@ import { headDocument as head } from '~/libs/helpers'
 
 export default {
   name: 'BlogSlug',
-  async asyncData({ $content, params }) {
-    const document = await $content('blog', params.slug).fetch()
-
-    const [prev, next] = await $content('blog')
-      .only(['title', 'path'])
-      .sortBy('createdAt', 'asc')
-      .surround(params.slug)
-      .fetch()
-
-    return {
-      document,
-      prev,
-      next,
+  async asyncData({ $content, params, error }) {
+    try {
+      const document = await $content('blog', params.slug).fetch()
+
+      const [prev, next] = await $content('blog')
+        .only(['title', 'path'])
+        .sortBy('createdAt', 'asc')
+        .surround(params.slug)
+        .fetch()
+
+      return {
+        document,
+        prev,
+        next,
+      }
+    } catch (err) {
+      return error({ statusCode: 404, message: err.message })
     }
   },
   head,
diff --git a/pages/faq/_slug.vue b/pages/faq/_slug.vue
index 597b14ab8ebc27d9933450a8738b5c365c60e7ab..27e18e8f02f5d00d79c239177c7bf91c20913d25 100644
--- a/pages/faq/_slug.vue
+++ b/pages/faq/_slug.vue
@@ -23,10 +23,14 @@ import { headDocument as head } from '~/libs/helpers'
 
 export default {
   name: 'FaqSlug',
-  async asyncData({ $content, params }) {
-    const document = await $content('faq', params.slug).fetch()
+  async asyncData({ $content, params, error }) {
+    try {
+      const document = await $content('faq', params.slug).fetch()
 
-    return { document }
+      return { document }
+    } catch (err) {
+      return error({ statusCode: 404, message: err.message })
+    }
   },
   head,
 }
diff --git a/pages/lexique/_slug.vue b/pages/lexique/_slug.vue
index d3e0971178dc1b8a032ee9e9b6b930e8ec19497b..fc42f368e965acf68b9ac3893630fadbf0a17ff0 100644
--- a/pages/lexique/_slug.vue
+++ b/pages/lexique/_slug.vue
@@ -34,25 +34,29 @@ import { reduceResults, headDocument as head } from '~/libs/helpers'
 
 export default {
   name: 'LexiqueSlug',
-  async asyncData({ $content, params }) {
-    const document = await $content('lexique', params.slug).fetch()
-
-    const pagesWithSlot = await $content({ deep: true })
-      .search(`<lexique>${params.slug}</lexique>`)
-      .fetch()
-    const pagesWithProp = await $content({ deep: true })
-      .search(`<lexique title="${params.slug}">`)
-      .fetch()
-
-    // Merge and deduplicate
-    const slugs = new Set(pagesWithSlot.map((item) => item.slug))
-    const results = [
-      ...pagesWithSlot,
-      ...pagesWithProp.filter((item) => !slugs.has(item.slug)),
-    ]
-    const pagesWithTerm = reduceResults(results)
-
-    return { document, pagesWithTerm }
+  async asyncData({ $content, params, error }) {
+    try {
+      const document = await $content('lexique', params.slug).fetch()
+
+      const pagesWithSlot = await $content({ deep: true })
+        .search(`<lexique>${params.slug}</lexique>`)
+        .fetch()
+      const pagesWithProp = await $content({ deep: true })
+        .search(`<lexique title="${params.slug}">`)
+        .fetch()
+
+      // Merge and deduplicate
+      const slugs = new Set(pagesWithSlot.map((item) => item.slug))
+      const results = [
+        ...pagesWithSlot,
+        ...pagesWithProp.filter((item) => !slugs.has(item.slug)),
+      ]
+      const pagesWithTerm = reduceResults(results)
+
+      return { document, pagesWithTerm }
+    } catch (err) {
+      return error({ statusCode: 404, message: err.message })
+    }
   },
   head,
 }