Official Plugin
View plugin on GitHubgatsby-plugin-canonical-urls
Add canonical links to HTML pages Gatsby generates.
This implementation is primarily helpful for distinguishing between https/http, www/no-www but could possibly be extended to help with when sites add multiple paths to the same page.
Install
npm install gatsby-plugin-canonical-urls
How to use
// In your gatsby-config.js
plugins: [
{
resolve: `gatsby-plugin-canonical-urls`,
options: {
siteUrl: `https://www.example.com`,
},
},
]
With the above configuration, the plugin will add to the head of every HTML page
a rel=canonical
e.g.
<link rel="canonical" href="https://www.example.com/about-us/" />
Excluding search parameters
URL search parameters are included in the canonical URL by default. If you worry about duplicate content because for example /blog
and /blog?tag=foobar
will be indexed separately, you should set the option stripQueryString
to true
. The latter will then be changed to /blog
.
gatsby-config.js
module.exports = {
plugins: [
{
resolve: `gatsby-plugin-canonical-urls`,
options: {
siteUrl: `https://www.example.com`,
stripQueryString: true,
},
},
],
}