Keep the raw citation URL even when you group several URLs under one analytical page identity. Deduplication should make a report easier to interpret without destroying the evidence needed to reconstruct what an AI provider returned.
Store three different identities
Use a returned URL field for the exact citation, a resolved URL field for the observed redirect destination, and a grouping key for your analysis. Add collection time and the rule version.
Illustrative example: an answer cites a product URL with a campaign parameter. A later request redirects to the clean product URL. You can group both under one page for a recurrence chart while preserving the original URL in the observation.
Google describes canonicalization as a way to identify preferred versions of duplicate pages. That documentation concerns Google Search. It is not a provider-independent rule for how every AI citation must be counted.
Do not strip every query string
A parameter may identify a variant, language, documentation version or pagination state. Removing it can merge pages with different facts. Start with an explicit allowlist of parameters your team has verified are only tracking.
Likewise, do not lowercase an entire path, remove meaningful trailing components or merge subdomains by intuition. The hostname and path can carry different identities. Record redirects instead of assuming that HTTP and HTTPS versions are equivalent in every observed case.
Build a small normalization test set
- Collect real returned URLs from the reporting panel.
- Label which pairs represent the same analytical page and why.
- Include tracking parameters, variants, redirects and locale URLs.
- Test proposed grouping rules against those cases.
- Review changed groups before applying a new version to historical data.
Keep domain recurrence and page recurrence as separate charts. Ten product pages on one domain are one cited domain but may represent ten distinct page identities. Neither count is inherently more correct; they answer different questions.
Make the report reversible
Provide a drill-down from every grouped count to the raw observations. If a reader disputes a merge, you should be able to split it without recollecting the entire panel.
If the source is unavailable, leave the grouping decision unresolved rather than inventing a canonical destination. A canonical tag observed today may differ from the page that existed at collection time.
Read the source tracking guide for observation context. Next, choose one repeated domain in the citation tracking workflow and manually verify its URL groups before drawing a content-gap conclusion.
Fact-checked: 17 October 2026. Examples are illustrative; no customer results are reported.