Issue: 3100

[Enhancement] Prevent duplicated content on generated routes

[issue link]


Actually when I let nuxt to generate the routes automatically with my pages folder, it generate all routes without final trailing slash ‘/’ for example news, but still accesible on url with http://localhost:3000/news and http://localhost:3000/news/ (both are the same route), this is a bad practice for SEO, the search engines detect it as duplicated content.

To prevent it, the vue-router allow set pathToRegexpOptions: { strict: true } option on routes that only meet the match if the path are exactly the same that defined on route, if i set the path as /news/ I only can access it with http://localhost:3000/news/ and can’t with http://localhost:3000/news (show 404)

As I read on some SEO guides, the final trailing slash represent a directory for search engines, in other words, have more subpages, applied to nuxt, it can be achieved putting the final slash for each pages subdirectories and without final slash for each vue file.

Example scenario


 |   |-index.vue
 |   |-_slug.vue

Generated routes urls (should match exactly, any diference on path didnt meet the route, except the fourth url that it’s dinamic but still working only without final slash):

This question is available on Nuxt.js community (#c2684)