1.1.0 • Published 2 years ago

get-canonical-url v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

🔗 get-canonical-url

CI npm

Determines the current page's canonical URL and optionally normalizes it via normalize-url for consistency.

Install

npm install get-canonical-url
# or...
yarn add get-canonical-url

Or pull directly from unpkg in-browser:

<script src="https://unpkg.com/get-canonical-url/dist/get-canonical-url.min.js"></script>

Usage

With <link rel="canonical">

<!doctype html>
<html>
<head>
  <link rel="canonical" href="https://www.example.com/this/doesnt/exist.aspx?no=really&it=doesnt#gocheck">
</head>
</html>
import canonicalUrl from "get-canonical-url";

canonicalUrl();
//=> 'https://www.example.com/this/doesnt/exist.aspx?no=really&it=doesnt#gocheck'

canonicalUrl({
  normalize: true,
  normalizeOptions: {
    stripProtocol: true,
    stripWWW: true,
    stripHash: true
  }
})
//=> 'example.com/this/doesnt/exist.aspx?it=doesnt&no=really'

Without <link rel="canonical">

import canonicalUrl from "get-canonical-url";

canonicalUrl({
  guess: true,
  normalize: true
});
//=> Determined via the individual user's window.location.href or other similar browser hints. Normalizing is recommended.

API

canonicalUrl(options?)

options

Type: object

normalize

Type: boolean\ Default: false

Clean-up and normalize the determined canonical URL.

normalizeOptions

Type: NormalizeOptions\ Default:

{
  stripWWW: false,
  stripHash: true,
  removeQueryParameters: true,
  removeTrailingSlash: false
}

Options passed directly to normalize-url.

Requires options.normalize = true.

guess

Type: boolean\ Default: false

Make an educated guess using other clues if canonical isn't explicitly set in the page's <head>.

License

MIT