A parameter is everything after ? in a URL, for example https://shop.com/shoes?color=red&sort=price. This guide covers the crawl notice URLs with parameters and the audit’s URL structure lines.
| Where | Check name | Flagged when |
|---|---|---|
| Site crawl | URLs with parameters (notice) | A crawled URL contains ? |
| Site crawl › Overview › Indexability | Canonicalised | Pages whose canonical points to another URL (often parameter URLs pointing to the clean one: that’s good) |
| Audit, On-page | URL is too long / URL is too short | The URL length is outside the recommended range |
| Audit, On-page | Underscore is found in the URL | The URL uses _ between words |
| Audit, On-page | Uppercase letters found in the URL | The URL has capital letters |
Find the affected URLs in the app
- Site crawl › open the crawl › Issues › URLs with parameters lists the URLs (the first 20; Export for all).
- Sort the export to see which parameters repeat (
sort=,filter_,utm_,page=,add-to-cart=,replytocom=). - Site crawl › Links: search for the parameter (for example
utm_or?sort) to see which pages link to parameter URLs (Found on). - Site crawl › Overview › Indexability: a high Canonicalised count with parameter URLs means canonicals are already doing their job.
URLs with parameters
How we detect it
Every crawled URL that contains ? is counted as a URL with parameters (notice). The crawler only reaches these URLs because a page links to them.
Why it matters
- Each parameter combination is a separate URL to Google (Google: consolidate duplicate URLs). Ten filters can create thousands of near-identical pages that compete and waste crawl budget.
- Duplicates split links and signals between several URLs.
- Tracking parameters on internal links (
?utm_source=) create endless duplicates and overwrite the real traffic source in Google Analytics 4.
Common causes
| Parameter | Typical source | Best fix |
|---|---|---|
utm_source, utm_medium, gclid, fbclid on internal links | Menus or banners pasted from a campaign | Remove from internal links; canonical to clean URL |
?sort=, ?order=, ?view= | Shop sorting dropdowns | Canonical to clean URL; optionally block in robots.txt |
?color=, ?size=, filter_ | Faceted navigation / filters | Canonical to the category; block endless combinations in robots.txt |
?s=, ?q=, /search? | Internal site search | noindex, and block in robots.txt |
?add-to-cart=, ?replytocom= | WooCommerce, WordPress comments | Block in robots.txt / turn off |
?page=2, /page/2/ | Pagination | Keep crawlable; self-canonical on each page |
?sid=, ?sessionid= | Old session handling | Use cookies instead of URL sessions |
?variant=123 | Shopify product variants | Leave it: Shopify canonicalises to the product URL |
Fix: basic
- In Site crawl, use Links › Found on to find the pages that link to parameter URLs.
- Change those links to the clean URL (menus, banners, buttons). Keep UTMs only on links from outside the site.
- Check one parameter URL with Ctrl+U:
rel="canonical"must point to the clean URL. Yoast SEO, Rank Math, Shopify, Wix and Squarespace do this automatically; Webflow needs one setting (see Platform steps). More on canonicals: Fix: indexing › Canonical tag. - Filter plugins that build their own URLs (for example
/shop/color-red/) usually have an SEO option to noindex or canonicalise filter pages; turn it on. - Only if parameters create endless combinations: block them in robots.txt (see Fix: expert and Fix: indexing › Disallow rules in robots.txt).
- WordPress
?replytocom=: in your WordPress admin, Settings › Discussion (/wp-admin/options-discussion.php), turn off Enable threaded (nested) comments, or block it in robots.txt.
Fix: expert
Every indexable page should carry a self-referencing canonical without parameters:
<link rel="canonical" href="https://www.example.com/shoes/">
Shopify, if the canonical is missing from layout/theme.liquid (inside <head>):
<link rel="canonical" href="{{ canonical_url }}">
robots.txt for a WooCommerce shop (block only endless or useless URLs, never pages that need to rank):
User-agent: *
Disallow: /*?*add-to-cart=
Disallow: /*?*orderby=
Disallow: /*?*filter_
Disallow: /*?s=
Disallow: /search/
Disallow: /*?*replytocom=
Sitemap: https://www.example.com/sitemap_index.xml
Shopify robots.txt: Shopify already blocks sort and filter parameters. To add a rule, create robots.txt.liquid and keep the default rules:
{% for group in robots.default_groups %}
{{- group.user_agent }}
{%- for rule in group.rules %}
{{ rule }}
{%- endfor %}
{%- if group.user_agent.value == '*' %}
{{ 'Disallow: /*?*view=' }}
{%- endif %}
{%- if group.sitemap != blank %}
{{ group.sitemap }}
{%- endif %}
{% endfor %}
robots.txt stops crawling, not indexing (Google’s robots.txt guide). Google can’t see the canonical or noindex on a blocked URL. If a parameter URL is already indexed, first let Google crawl it with a canonical or noindex, then block it later. The crawl respects robots.txt for the user agent SEOAuditSoftware and the * group, so blocked URLs also disappear from the next crawl.
Platform steps
WordPress
- Menus: in your WordPress admin, Appearance › Menus (
/wp-admin/nav-menus.php) › edit the custom link and delete the?…part › Save Menu. - Canonical override for special cases: Yoast SEO › edit page › Advanced › Canonical URL; Rank Math › Advanced › Canonical URL.
- robots.txt: Yoast SEO › Tools › File editor, or Rank Math SEO › General Settings › Edit robots.txt.
- Yoast crawl cleanup: Yoast SEO › Settings › Advanced › Crawl optimization.
Shopify
- Menus: Shopify admin › Online Store › Navigation › edit the menu item › Save menu.
- robots.txt: Shopify admin › Online Store › Themes › … › Edit code › Add a new template › robots.txt, then paste the Liquid above › Save.
Webflow
- From the Webflow dashboard, open the site’s Site settings › SEO › Global canonical tag URL › enter
https://www.example.com› Save › Publish. - robots.txt: Site settings › SEO › Indexing › robots.txt.
Wix
- Canonicals are automatic. robots.txt: Wix dashboard › Marketing & SEO › SEO › Tools and settings › Robots.txt Editor.
Squarespace
- Canonicals are automatic; robots.txt can’t be edited, so rely on canonicals and clean links.
Verify the fix
- Load a parameter URL (for example
/shoes/?sort=price), press Ctrl+U and checkrel="canonical"points to the clean URL. - Open
https://www.example.com/robots.txtand check the rules are live. In Google Search Console, Settings › robots.txt shows the version Google fetched. - Site crawl › Crawl again, then Compare: URLs with parameters should affect fewer URLs.
Automation
Assisted: parameter sources and canonicals are detected automatically; link edits and robots.txt changes need WordPress admin via plugin, the Shopify Admin API (themes) or CMS settings, and robots rules need a human check.
Uppercase letters found in the URL
How we detect it
The classic audit scanner checks the page URL for capital letters and writes Uppercase letters found in the URL.
Why it matters
URLs are case sensitive on most servers. /About-Us and /about-us can be two addresses for one page, which creates duplicates and broken links.
Common causes
- If the site is hand-built or migrated → file or folder names kept their capitals.
- If links were typed by hand → mixed case in the link only.
Fix: basic
- Use lowercase slugs for all new pages (WordPress lowercases slugs automatically).
- For existing uppercase URLs, change the slug to lowercase.
- Add a 301 from the old URL to the new one and update internal links (how: Fix: HTTPS, SSL and redirects › URL redirect).
Fix: expert
# one rule per old URL, inside the server { } block
location = /About-Us/ { return 301 /about-us/; }
Redirect 301 /About-Us/ https://www.example.com/about-us/
Platform steps
WordPress / Shopify / Webflow / Wix / Squarespace
- Edit the slug or URL handle in the page settings (see Fix: content › Keyword in the URL for each platform’s menu), keeping the platform’s redirect option on.
Verify the fix
curl -Ion the old URL shows one 301 to the lowercase URL.- In Audits, click Run again on the audit for the new URL.
Automation
Assisted: redirects can be generated automatically; applying them needs WordPress admin via plugin, the Shopify Admin API or server SSH.
Underscore is found in the URL
How we detect it
The classic audit scanner checks the URL for _ and writes Underscore is found in the URL with “use hyphens as separators”.
Why it matters
Google reads hyphens as word separators but not underscores, so words joined by _ blur together (Google: URL structure).
Common causes
- If the site is hand-built → file names like
roof_repair.html. - If URLs come from a database export → IDs or titles joined with underscores.
Fix: basic
- Change
/roof_repair_austin/to/roof-repair-austin/in the page settings. - Add a 301 from the old URL and update internal links.
Fix: expert
Redirect 301 /roof_repair_austin/ https://www.example.com/roof-repair-austin/
location = /roof_repair_austin/ { return 301 /roof-repair-austin/; }
Platform steps
All platforms
- Edit the slug as under Uppercase letters found in the URL, with the redirect option on.
Verify the fix
- The old URL returns one 301 to the hyphenated URL.
- Click Run again on the audit.
Automation
Assisted: same access as Uppercase letters found in the URL.
URL is too long
How we detect it
The classic audit scanner measures the URL and writes URL is too long, URL is too short or URL length should be between … characters.
Why it matters
Short, descriptive URLs are easier to read, share and trust in search results.
Common causes
- If WordPress post URLs contain dates → the permalink structure includes
/%year%/%monthnum%/%day%/. - If slugs are full titles → the slug was generated from a long title.
- If folders repeat →
/services/services-plumbing/plumbing-repair/.
Fix: basic
- Keep slugs to about 3 to 5 words.
- Remove stop words, dates and repeated folders:
/blog/2024/05/12/how-to-choose-the-best-emergency-plumber-in-leeds-for-your-home/→/blog/choose-emergency-plumber-leeds/. - For new WordPress sites, use Settings › Permalinks (
/wp-admin/options-permalink.php) › Post name (/%postname%/). - Change URLs of pages that already rank only when there’s a clear benefit, and always with a 301.
Fix: expert
Changing a live WordPress permalink structure from dated URLs needs a regex redirect for every old URL:
RedirectMatch 301 ^/\d{4}/\d{2}/\d{2}/(.+)$ https://www.example.com/$1
rewrite ^/\d{4}/\d{2}/\d{2}/(.+)$ https://www.example.com/$1 permanent;
Platform steps
WordPress
- In your WordPress admin, Settings › Permalinks › Post name › Save Changes, then add the regex redirect above (or a Rank Math › Redirections regex rule).
Other platforms
- Shorten the slug in page settings with the redirect option on.
Verify the fix
- An old dated URL returns one 301 to the short URL.
- Click Run again on the audit.
Automation
Assisted: slug shortening and redirects can be generated; structure changes need a human decision and WordPress admin or server SSH.
Common questions
Are URLs with parameters bad for SEO?
Not by themselves. Search, pagination and filters often need them. The problem is when many parameter URLs show the same content and get crawled or indexed as duplicates. A canonical tag to the clean URL and clean internal links solve most cases.
Should I block parameters in robots.txt or use canonical tags?
Prefer canonical tags. Google can't read the canonical on a URL that robots.txt blocks, so blocked duplicates can still appear in results without a description. Use robots.txt only for endless combinations (filters, sort orders, internal search) that waste crawl time.
Can I set parameter handling in Google Search Console?
No. Google retired the URL Parameters tool in 2022. Use canonical tags, clean internal links and, where needed, robots.txt.
Do UTM tags on my own links cause problems?
Yes. UTM parameters on internal links create duplicate URLs and overwrite the real traffic source in Google Analytics 4. Use UTMs only on links from outside the site (emails, ads, social posts).
Related articles
- Fix: indexing — noindex, canonical tag, robots.txt and sitemap
- Fix: title tags and meta descriptions
- Fix: HTTPS, SSL and redirects (redirect chains, mixed content)
- Fix: content — word count, keyword placement and readability
- Crawl a whole website
Still need help?
Ask in the chat inside the app, or send us a message on the contact page. You can also browse all help topics.