How it works
The same page can often be reached under several addresses: with and without a trailing slash, with tracking parameters such as ?utm_source=newsletter, with sorting or filters in a shop. To search engines these are different pages with the same content.
The canonical tag in the head of the page says which address counts:
<link rel="canonical" href="https://www.example.com/services">
The search engine then merges all variants, shows the named address in results and credits it with the links pointing at the others. The tag is a strong hint, not a command: if signals contradict each other, Google decides for itself.
bytereport checks the tag on the start page: is there exactly one, and does it point to the page itself? A trailing slash makes no difference here.
What matters
- Point to itself. Every page that stands on its own names its own address as canonical. That protects it from copies with parameters.
- Exactly one tag. If a page has several canonical tags, for instance because the theme and a plugin each add one, search engines ignore all of them. bytereport rates this as a failure.
- Full address. Use the complete URL with
https://and the spelling of your main address; see What host variants are. - Another address only on purpose. If the canonical points to a different page, that page is listed and the one checked is not. That is right for true duplicates, but on the start page it is usually a mistake, such as a canonical pointing to a development domain.
- Consistent with redirects. The canonical address is the same one your redirects lead to and the one in your sitemap.
How to set it up
Most CMSs set the canonical tag themselves once the site address is configured correctly. In WordPress, SEO plugins take care of it and let you enter a different address per page. After switching theme or plugin, check the page source to make sure the tag appears only once.
Without a CMS, the tag goes into the page template, inside <head>, with the final address of each page:
<link rel="canonical" href="https://…/">