- Methodology
- Parameters
- URL Stability
URL Stability
stableCategory: technical-seo · Methodology v4.5
Does your page use clean, stable URLs that AI crawlers can rely on?
Signal Source
- Source
https://{domain}- Kind
- html_dom
Score Bands
| Verdict | Condition |
|---|---|
| Pass | at least 8 of the sampled (up to 20) anchor URLs are clean AND a <link rel="canonical"> is present on the page |
| Partial | at least 4 of the sampled anchor URLs are clean (whether or not a canonical link is present) |
| Fail | fewer than 4 of the sampled anchor URLs are clean |
Description
What this parameter measures
Does your page use clean, stable URLs that AI crawlers can rely on? friendly4AI samples up to 20 anchor (<a href>) links from the page and judges each one for "cleanliness", then checks for a <link rel="canonical"> in the head. A URL counts as clean when it has no query string, or is a mailto:/tel: link. When it does carry a query string, that query must contain no utm_ or session tokens, stay under 80 characters, and use no more than two & parameter separators.
Why it matters for AI-readiness
Clean, predictable URLs help AI crawlers de-duplicate, cache, and cite your pages reliably. Long tracking-laden URLs (full of utm_ campaign tags or session IDs) look unstable: the same content appears under many addresses, splitting authority and confusing engines about which version to surface. A canonical link reinforces the authoritative URL, so AI systems and search engines consolidate signals onto one address instead of scattering them.
How we score it
Under the v4.4 methodology, this Discovery parameter scores in three tiers based on a sample of up to 20 anchor links. A page passes (100) when at least 8 of the sampled URLs are clean and a canonical link is present — both conditions are required for the top tier. It earns a partial (50) when at least 4 of the sampled URLs are clean, regardless of whether a canonical link exists. It fails (0) when fewer than 4 clean URLs are found. The cleanliness test is per-URL: a link with no query string passes automatically, while a link with a query string must avoid utm_/session tokens, stay under 80 characters, and keep its parameter count to two & separators or fewer.
How to fix common issues
- Use short, descriptive, human-readable path-based URLs instead of long query strings.
- Strip
utm_campaign parameters and session IDs from internal links — handle tracking client-side instead of baking it into hrefs. - Add a
<link rel="canonical">to every page; without it you cannot reach the Pass tier even with clean links. - Keep query strings under 80 characters and limit them to two parameters or fewer where a query is unavoidable.
- Audit your most-linked navigation and footer URLs first, since the sample draws from on-page anchors.
- Re-scan after cleaning up internal links to confirm the clean-URL count and canonical are detected.
Version History
- Introduced
- v4.0
- Last changed
- v4.4
Key takeaways
- Signal: https://{domain}
- Category: Technical SEO
- Passes when: at least 8 of the sampled (up to 20) anchor URLs are clean AND a <link rel="c…