Migrate to Netlify Today

Netlify announces the next evolution of Gatsby Cloud. Learn more

ContactSign Up
Community Plugin
View plugin on GitHub


This can be use as a drop in replacement of gatsby-plugin-canonical-urls.

Add canonical links to HTML pages Gatsby generates using react helmet.

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.


gatsby-plugin-canonical-urls and gatsby-plugin-react-helmet are plugins that do not always play well together. The first one always inserts a default canonical url, but doesn’t allow to override that value in an easy way. When trying to use react helmet to override gatsby-plugin-canonical-urls default url, you will end up with two canonical tags.

This plugin, as writes the default canonical url using react helmet, allows to override default canonical url just using the standard react helmet api.


npm install --save gatsby-plugin-react-helmet gatsby-plugin-react-helmet-canonical-urls

How to use

// In your gatsby-config.js
plugins: [
    resolve: `gatsby-plugin-react-helmet-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="http://www.example.com/about-us/" />

Additional options:

  • exclude (Array of string or RegExp, default undefined): exclude pages from being added a canonical url. Useful when combining with other SEO-related meta tags like noindex. (Urls should be listed without trailing slash)
  • noTrailingSlash (default false): it will remove the trailing slash from canonical link. Use this option if you use gatsby-plugin-remove-trailing-slashes
  • noHash (default false): remove hash from the canonical link.
  • noQueryString (default false): remove query from the canonical link.
© 2023 Gatsby, Inc.