Separate words in URLs with hyphens (-), not underscores (_). On October 23, 2026, Google updated its guidance to explain why: underscores have traditionally been used to keep concepts together, as in format_date. You don't need to change published URLs for this alone — a change needs a 301 redirect and updated internal links. Google treats uppercase and lowercase as different URLs, so pick one; and words in your audience's language, such as Japanese, are fine.
How Google Recommends Writing URLs
Google's URL structure best practices split into requirements for crawlable URLs and recommendations for clarity. Hyphens and readable words are recommendations — ignoring them doesn't keep you out of search. Switching content with #, on the other hand, means Google won't read those views as separate pages.
| Rule | Recommended | Not recommended | Why |
|---|---|---|---|
| Separate words with hyphens (-) | /summer-clothing/ | /summer_clothing/ · /summerclothing/ | Underscores are commonly used to keep concepts together, like format_date. Hyphens clearly mark word boundaries |
| Use readable words | /wiki/Aviation | /index.php?topic=42&area=3a5e… | Words tell users and Google what the page is about; long IDs don't |
| Use your audience's language | /pfefferminz, /ペパーミント (percent-encoded in links) | — | Words in the reader's language are fine. Percent-encode non-ASCII characters in href |
| Use one letter case | Either /apple or /APPLE | /APPLE and /apple return the same page | Google treats different cases as different URLs |
| Don't switch content with # | /potatoes (History API) | /#/potatoes | Google Search generally doesn't support URL fragments |
| Join parameters with = and &, and keep them few | ?category=dresses&sort=low-to-high | ?[category:dresses][sort:…] | Drop parameters that don't change content. Combinations that multiply URLs waste crawling |
What Changed in the October 2026 Update
According to Google's documentation updates, on October 23, 2026 it clarified the guidance on separating words with hyphens versus underscores. The recommendation itself (hyphens) is unchanged; two things are new.
- It now explains why underscores aren't recommended: they're commonly used to keep concepts together, as in function names like format_date, whereas hyphens clearly signal a word boundary
- The examples now cover parameters as well as paths: /summer-clothing/filter?color-profile=dark-grey is recommended; the same URL with underscores, or joined words like /greendress, is not
Some older articles still ranking say Google doesn't care either way, but the current official guidance is hyphens. The Japanese version of the page has the same content (checked November 9, 2026).
Test: We Counted the URLs on Our Own Two Sites
On November 9, 2026, we pulled every URL from the XML sitemaps of two sites we run and counted paths containing underscores, uppercase letters, or Japanese. One is this site (Direbase, built with Next.js); the other is a WordPress media site for web creators.
| Site | Underscore | Uppercase | Japanese |
|---|---|---|---|
| Direbase (Next.js) | 0% | 0% | 0% |
| Media site for web creators (WordPress) | 0.3% | 0% | 0% |
- The Next.js site had none, since its URLs are defined in code from the start
- Of the two on the WordPress site, one was an author archive (/author/login-name/): WordPress builds it from the login name, so an underscore in the login name appears in the URL. The other was a post whose slug is a romanized personal name, with an underscore between family and given name
- Neither site has Japanese slugs. With post-name permalinks, WordPress can turn a Japanese title straight into the slug, so we set an English slug before publishing
Our call: underscores slip in through URLs the CMS generates (authors, tags) and through terms already written with underscores, such as names or model numbers, more than through ordinary slugs. Counting every sitemap URL is the fastest check, and for low-traffic pages like these two, we don't change URLs just to swap the separator.
Can You Use Japanese (Non-English) URLs?
Yes. Google recommends words in your audience's language and gives a Japanese example (/ペパーミント) for readers searching in Japanese. In links on your pages (href values), percent-encode the non-ASCII part.
The catch is length. Percent-encoded, one Japanese character becomes about nine characters: a slug meaning "how to check search volume" (11 characters) became 91. It looks like Japanese in the address bar but can arrive as a long string of % codes when pasted into chat or email.
Google doesn't say either choice is treated differently in search, so decide on operations: English words if URLs are often shared or sit alongside English pages; the readers' language if not — and keep one rule across the site.
Should You Change Published URLs?
| Situation | What to do |
|---|---|
| New pages or a new site | Use hyphens and lowercase. Decide the slug before publishing instead of keeping the CMS default generated from the title |
| Published URLs with underscores | Don't change them for that reason alone. A change needs 301 redirects, updated internal links, and checks in Search Console. Fix them together when you change URLs anyway, such as in a redesign |
| Both cases return the same page | Fix it. 301-redirect one form to the other, and use the same form in canonical tags, sitemaps, and internal links. Duplicates gain nothing |
| SPA switching content with #/ | Fix it. Pages that differ only after # aren't read as separate pages. Use the History API to give each view a URL without # |
| Non-English (e.g., Japanese) slugs | Fine for readers searching in that language. If long percent-encoded strings bother you when URLs are shared, use English words for new pages |
Steps when you do change URLs
- Make a mapping of old to new URLs (export every URL from the sitemap and list only the ones that change)
- Set up server-side 301 (permanent) redirects from old to new. Google says permanent redirects such as 301s don't lose PageRank
- Update internal links, canonicals, hreflang, and sitemaps to the new URLs instead of relying on redirects
- Submit the new sitemap in Search Console and check with URL Inspection that the new URLs get indexed
- Keep redirects as long as possible — Google says generally at least a year
For consolidating case duplicates with canonical tags, see the canonical tag guide; if new URLs don't get indexed after a change, see fixing "Discovered - currently not indexed".
Check URL Format with the SEO Checker
Direbase's SEO Checker looks at the URL of the page you check and shows "Notes on the URL format" for the three cases below. The notes aren't part of the score and appear on every plan.
- The path contains underscores (_) (parameters aren't checked)
- The path contains uppercase letters (non-ASCII characters aren't checked)
- The URL switches content with #/ or #! (in-page anchors like #section aren't flagged)
The notes are input for a decision, not bugs to fix. If you see the underscore note on a published page, use the table above to decide. For the case and # notes, first check whether the same page is served at several URLs and whether Google reads your views as separate pages.
Common Mistakes
- Switching every underscore URL to hyphens at once. Missed redirects or internal links cost more than the change gains
- Changing a URL and adding a 301, but leaving internal links, canonicals, and sitemaps on the old URL. That sends Google conflicting signals
- Missing URLs your CMS generates, such as WordPress author archives. If a login name has an underscore, it shows up in the URL
- Assuming a case-insensitive server makes case harmless. Even if the server returns the same page, Google treats them as different URLs
- Stuffing keywords into URLs. Words that describe the page are enough; longer URLs don't help, and Google's guidance stops at readable words and separators
Related Tools
Sources (checked November 9, 2026)
- Google Search Central — URL structure best practices for Google Search (last updated 2026-10-21)
- Google Search Central — Documentation updates (October 23, 2026: clarified word separation with hyphens vs. underscores)
- Google Search Central — Redirects and Google Search (permanent redirects show the new URL in results)
- Google Search Central — Site moves with URL changes (no PageRank loss from 301s; keep redirects for at least a year)
FAQ
Should I use hyphens or underscores in URLs?▾
Should I change my underscore URLs to hyphens right away?▾
Are non-English (e.g., Japanese) URLs bad for SEO?▾
Are URLs case sensitive?▾
Does changing a URL reset its SEO?▾
Do keywords in URLs help SEO?▾
Check a Page, URL Format Included, in One Pass
Enter a URL to see 45 checks — titles, headings, structured data and more — together with notes on the URL format.
Run the SEO Checker
Written by
今井政和SEO Director / Frontend Developer
SEO Director with 20+ years of web industry experience. Creator of Direbase and the official WordPress plugin "ORECTIC SEO CHECK." Author of a book on web strategy inspired by Edo-era merchant principles.
@imai_directorRelated Articles
What to Check for AI Overview Optimization | AIO Citation Conditions & SEO Audit Items
AIO citation conditions and audit items verified through 300K-URL analyses and external data. Structured data 3x implementation rate, E-E-A-T, and content clarity are top citation predictors. SEO check items for the AIO era.
Should an SEO Tool Fix Your Code Automatically? | Why We Stop at Generated Code
Our answer to a recurring question: can the API apply the fixes too? An SEO checker always reads somebody else's site, and interpolating those values into returned code opens an indirect prompt injection path. We reproduced it on our own tool, and explain why we hold no write access.
How to Write robots.txt | Syntax, Common Mistakes & Free SEO Checker
Learn robots.txt syntax (User-agent, Disallow, Allow, Sitemap), common configuration mistakes and their SEO impact, and framework-specific tips. Free checker tool included.
How to Create XML Sitemaps | Get All Pages Indexed
Learn how to create and submit XML sitemaps. Step-by-step guide for Google Search Console submission. Free sitemap checker tool included.