40 lines
1.2 KiB
Markdown
40 lines
1.2 KiB
Markdown
# Prerendering for SEO
|
|
|
|
If you want to prerender routes that will not significantly change once pushed to production, use this Webpack plugin: [prerender-spa-plugin](https://www.npmjs.com/package/prerender-spa-plugin), which has been tested for use with Vue. For pages that _do_ frequently change, [Prerender.io](https://prerender.io/) and [Netlify](https://www.netlify.com/pricing) both offer plans for regularly re-prerendering your content for search engines.
|
|
|
|
## Using `prerender-spa-plugin`
|
|
|
|
1. Install it as a dev dependency:
|
|
|
|
```bash
|
|
npm install --save-dev prerender-spa-plugin
|
|
```
|
|
|
|
2. Require it in **build/webpack.prod.conf.js**:
|
|
|
|
```js
|
|
// This line should go at the top of the file where other 'imports' live in
|
|
const PrerenderSpaPlugin = require('prerender-spa-plugin')
|
|
```
|
|
|
|
3. Configure it in the `plugins` array (also in **build/webpack.prod.conf.js**):
|
|
|
|
```js
|
|
new PrerenderSpaPlugin(
|
|
// Path to compiled app
|
|
path.join(__dirname, '../dist'),
|
|
// List of endpoints you wish to prerender
|
|
[ '/' ]
|
|
)
|
|
```
|
|
|
|
If you also wanted to prerender `/about` and `/contact`, then that array would be `[ '/', '/about', '/contact' ]`.
|
|
|
|
4. Enable history mode for `vue-router`:
|
|
```js
|
|
const router = new VueRouter({
|
|
mode: 'history',
|
|
routes: [...]
|
|
})
|
|
```
|