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,
},
},
],
}