URL structure audit rules: slugs, case and parameters
Audit rules for URLs: uppercase letters, underscores, length, stop words, special characters, query parameters, trailing slashes and mixed conventions.
URL Structure rules read the address of each crawled page: its case, its word separators, its length and depth, its query parameters and its trailing slash. Most of them are conventions rather than defects, so their severities are low and their findings are worth applying to new URLs rather than retrofitting to old ones. The exception is url/slug-convention, which measures the site against its own dominant form and reports the minority, because mixed conventions are how duplicate-content and canonical bugs start.
Run only these rules
squirrel audit https://example.com --rule-include urlWhere to start
These carry the highest severity and weight in the category.
- Special characters in a URL path: what breaks and why: Spaces, percent signs and non-ASCII characters in a path break when copied and pasted. squirrel decodes the path and reports what it finds.
- Underscores in URLs: why hyphens separate words: Google reads blue-shoes as two words and blue_shoes as one. squirrel flags every crawled path containing an underscore.
- Uppercase in a URL: the duplicate content it creates: Most servers treat /Page and /page as two URLs serving the same content. squirrel flags every crawled path containing a capital letter.
- Mixed URL conventions: finding the minority form: Half your paths ending in a slash and half not is how canonical bugs start. squirrel computes your site’s own norm and reports what deviates.
- Non-descriptive URL slug: numeric IDs and generic patterns: A slug like /p/48213 tells a reader and a crawler nothing. squirrel classifies the last path segment and flags the ID-shaped ones.
Rules
| Rule | What it flags | Severity | Scope |
|---|---|---|---|
| Mixed URL conventions: finding the minority form | Half your paths ending in a slash and half not is how canonical bugs start. squirrel computes your site’s own norm and reports what deviates. | warning | Site-wide |
| Non-descriptive URL slug: numeric IDs and generic patterns | A slug like /p/48213 tells a reader and a crawler nothing. squirrel classifies the last path segment and flags the ID-shaped ones. | info | Per-page |
| Special characters in a URL path: what breaks and why | Spaces, percent signs and non-ASCII characters in a path break when copied and pasted. squirrel decodes the path and reports what it finds. | warning | Per-page |
| Stop words in a URL slug: when to drop them | the, of and for add characters without adding meaning to a slug. squirrel counts them in each path and only reports the pile-ups. | info | Per-page |
| Trailing slash: /page and /page/ are two different URLs | A file URL with a trailing slash is a mistake; a directory URL either has one or does not, consistently. squirrel reports the state of each path. | info | Per-page |
| Underscores in URLs: why hyphens separate words | Google reads blue-shoes as two words and blue_shoes as one. squirrel flags every crawled path containing an underscore. | warning | Per-page |
| Uppercase in a URL: the duplicate content it creates | Most servers treat /Page and /page as two URLs serving the same content. squirrel flags every crawled path containing a capital letter. | warning | Per-page |
| URL length: when a URL is long enough to be a problem | Long URLs get truncated in results and shares, and usually signal deep nesting. squirrel measures the full URL and counts path segments. | info | Per-page |
| URL parameters: how many is too many, and what to do | Every parameter combination is a separate URL to a crawler. squirrel counts the query parameters on each page and names the tracking ones. | info | Per-page |
Key terms
- Crawl budget: The number of URLs a search engine is willing and able to crawl on a site in a given time, set by crawl capacity and crawl demand.
- Duplicate content: The same or near-identical content reachable at more than one URL, or repeated titles and descriptions across pages.
- Trailing slash: Whether URLs end in /; /page and /page/ are different URLs, so a site should pick one and redirect the other.
- URL parameters: Key-value pairs after ? in a URL; tracking and sort parameters can multiply URLs for the same content.
- URL slug: The readable last part of a URL path; short, lowercase, hyphen-separated words work best.
Related categories
Core SEO checks the canonical tag that declares the preferred form of a URL. Content checks the duplicate titles and descriptions that two forms of one URL produce, and Crawlability checks redirect chains and sitemaps.
Learn more
- Fix SEO issues with AI, the coding agent workflow for working through a report
- Website audit tool
- Sample report, with the URL Structure section on a real site
Disable all URL Structure rules
[rules]
disable = ["url/*"]