squirrelscan
GitHub

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.

What stop words are

Stop words are the high-frequency function words of a language: articles, prepositions, auxiliaries. In a URL slug they take up characters and carry almost no information about what the page is.

Dropping them is a style choice, not a correctness one. best-running-shoes is shorter and reads as well as the-best-running-shoes-for-you. Keeping one is right when removing it changes the meaning or makes the slug unreadable, which is why this rule only reports slugs that have accumulated several.

What squirrel checks

The rule runs on every crawled page. It lowercases the URL path, splits it on hyphens, underscores and slashes, and counts the resulting words against a fixed list of 35 stop words.

  • Info when more than two stop words are found. Message: URL contains 4 stop words, with each word listed.
  • Pass when one or two are found. Message: URL has minimal stop words, with them listed.
  • Pass when none are found. Message: URL has no stop words.

Severity is info and the weight is 2, the lowest in the URL Structure category. The list covers a, an, and, are, as, at, be, but, by, for, from, has, have, in, is, it, of, on, or, our, that, the, their, there, they, this, to, was, were, what, which, will, with, would and your. It is English-only, so a slug in another language is scored against English words and will usually pass.

How to fix it

https://example.com/blog/best-running-shoes

Strip stop words in the slug generator, before the slug is first published rather than after. Keep the word when the slug stops making sense without it: state-of-the-art is not improved by becoming state-art.

Do not rewrite existing URLs for this. The finding is informational, and the redirect costs more than the characters save.

Rule IDurl/stop-words
CategoryURL Structure
ScopePer-page
Severityinfo
Weight2/10

Enable / disable

Disable this rule

[rules]
disable = ["url/stop-words"]

Disable all URL Structure rules

[rules]
disable = ["url/*"]

Enable only this rule

[rules]
enable = ["url/stop-words"]

enable replaces the default ["*"], so this is the only rule selected. Leave disable out: a rule that matches any disable pattern is skipped even when enable names it. Only an enabled setting under a rule’s own [rule_options] table overrides both lists.

URL Structure findings ship in every audit next to the SEO, performance and agent experience rules. See Fix SEO issues with AI for how an agent works through a report.

References

Check your site

Run squirrel audit https://example.com and open the URL Structure section of the report. Each slug is listed with the stop words it contains. Signed-out local audits need no account and cost nothing. Signed-in audits spend credits.

Type to search…

↑↓ navigate↵ openesc close