A campaign link can open the same article as a shorter URL while adding tracking parameters. A canonical link identifies your preferred version for search engines. Before adding one, confirm that the two addresses really represent the same content.
Compare the tracked URL with the clean page
Consider a fictional tea guide shared by a partner:
https://example.com/guides/tea/?utm_source=partner&utm_medium=email&utm_campaign=autumn
https://example.com/guides/tea/
In this example, both addresses show the same brewing-temperature table, instructions and images. The parameters identify the campaign; they do not select another guide. The clean address is a sensible canonical candidate.
Open both versions on your own site before making that decision. Compare the main content, rather than just the page title. Google describes canonicalization as choosing a representative URL among duplicate or very similar pages. Ordinary duplicate URLs do not automatically mean a spam-policy violation.
Keep parameters that change the content
Do not remove every query string by default. A fictional ?tea=green parameter might select a different brewing table. Removing it could point readers and search engines toward a different resource. Check what the parameter actually does.
For this tea-guide example, choose the working, public HTTPS article address, including its normal trailing slash. Avoid a homepage, an unrelated guide or a translated page with different main text. If you are choosing the address for a new article, first settle its readable URL slug.
Draft the canonical line in the Meta Tag Generator
- Open the Meta Tag Generator.
- Enter a page title, such as
Tea brewing temperature guide, and a description that matches the article. The tool requires at least a title or description before it produces output. - In Canonical URL, enter
https://example.com/guides/tea/. Use your actual preferred page address when working on your site. - Leave the optional social-tags checkbox off for this exercise, then press Generate Meta Tags.
- Locate the canonical line in the generated block and compare its address character by character with your chosen target.
<link rel="canonical" href="https://example.com/guides/tea/">
The tool drafts HTML; it does not fetch the target, compare the two pages or publish a setting to your website. Clearing the canonical field removes that line from the generated output. A successful generation therefore does not confirm that the destination exists.
Use the existing page-head mechanism
On a CMS site, inspect the current output first. Your theme or SEO plugin may already produce the correct canonical. Update that existing setting if necessary, instead of pasting another full block containing duplicate titles, descriptions and robots tags.
For a manually maintained HTML page, place the canonical link in its valid <head>. In this example, the tracked version points to the clean guide, and the clean guide points to itself. Google recommends absolute URLs and consistent canonical choices across methods in its canonical URL implementation guidance. Keep ordinary internal links and sitemap entries aligned with that clean address.
Check the published result
- Load the clean URL and confirm that it returns the complete guide without requiring a login.
- Load the tracked URL separately and confirm that it still displays the intended article.
- View each page source and find
rel="canonical"inside the head. Confirm one intended destination and check for conflicting output from another plugin or a response header. - Use Search Console URL Inspection to review the canonical Google selected for the indexed page. Its choice can differ from yours; use Google’s canonicalization troubleshooting guide to investigate unexpected results.
A canonical is a preference signal, so this change cannot guarantee which URL appears in search. It does not itself redirect visitors, erase parameters from their address bar or configure analytics. Keep campaign testing separate; the duplicate UTM parameter checklist covers that check.
Avoid adding noindex or blocking crawling just to select a canonical. Those controls have different effects. Finish by checking the live HTML and the actual page content, rather than treating generated code as proof of a correct setup.