Underscores in URLs: use hyphens instead
Google reads hyphens as word separators but not underscores. Find URLs using underscores and learn why hyphens are the SEO-friendly choice.
What it means
Underscores in URL paths (like /category/sub_category) are treated differently from hyphens by Google. While hyphens are parsed as word separators, underscores are often interpreted as a single concatenated word.
Why it matters
This can hurt how Google understands the page's topic, reduce crawl efficiency through duplicate content signals, and make URLs harder for AI agents to parse when they're extracting entities or topics from the URL path.
How to fix it
- Replace underscores with hyphens in all URL paths and update the corresponding HTML links.
- Set up 301 redirects from the old underscore URLs to the new hyphenated versions.
- Update the canonical URL on each affected page to reflect the new hyphenated path.
- Verify the redirects are returning 301 status and that no soft 404s are created.
Example
https://example.com/best_running_shoes_2026https://example.com/best-running-shoes-2026Google treats hyphens as word separators but reads underscores as joiners, so best_running_shoes can be parsed as one token. Use hyphens.
When it's not a problem
Underscores are fine when they appear in query parameters (like ?category=sub_category) or in URLs where the underscored term is a proper noun or brand name that users already recognize.
How Crawlinx detects it
We check the URL path for underscore characters. Any underscore in the path trips this notice — it's a minor URL-hygiene signal, not an error.
How common is it?
3517 audited sites in our corpus currently show this issue. The breakdowns below show which platforms, gatekeepers, verticals and countries are most exposed.
FAQ
- Are underscores or hyphens better in URLs?
- Hyphens. Google has stated it treats hyphens as word separators and underscores as word joiners, so hyphens keep each keyword distinct.
- Should I rename existing URLs with underscores?
- Only for new URLs, or during a planned migration with 301s. It's a low-impact signal — don't break working, indexed URLs just to swap the separator.
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.