How long should a URL slug be? There is no official limit: Google's URL structure guidelines ask for simple, descriptive words but never give a character count, and the web standards only set technical ceilings in the thousands of characters. In practice, slugs of three to five meaningful words, roughly 60 characters or fewer, are easier to read, share and maintain. This guide separates what the official sources actually say from industry rules of thumb, shows how to shorten a slug without losing its meaning, and ends with a copyable checklist. Every example slug below is real output from our URL slug generator.
Tip
The short answer
- No search engine publishes a slug length limit. Google's documentation on URL structure talks about readable words, hyphens and few parameters, not about character counts.
- The technical limits are far away. The HTTP standard recommends that software supports URLs of at least 8,000 octets, and a sitemap
<loc>value must be less than 2,048 characters. A normal slug is nowhere near either. - Shorter is better for people. A slug of three to five words is easy to scan in a search result, to read aloud and to paste into a chat message.
- Our working target is 60 characters or fewer. The length indicator in our tools shows green up to 60 characters, amber from 61 to 75 and red above 75. These thresholds are a convention we chose, not a rule from Google.
What the official sources actually say
| Source | What it says | What it means for slug length |
|---|---|---|
| Google Search Central, URL structure | Use simple, descriptive words; hyphens instead of underscores; as few parameters as possible; URLs are case sensitive | No number. Length matters only as part of keeping URLs simple and readable |
| RFC 9110 (HTTP Semantics), section 4.1 | It is recommended that senders and recipients support URIs of at least 8,000 octets | A technical floor for software, not a target for writers |
| Sitemaps protocol (sitemaps.org) | A <loc> URL must be less than 2,048 characters | The hard ceiling if you list the page in an XML sitemap |
| Google Search Central, site moves | Changing URL paths counts as a site move and needs redirects | Shortening published URLs has a cost, so get the length right before launch |
The pattern is clear: the official documents care about readability and consistency. Any precise "ideal length" you read elsewhere, including our own 60-character target, is a practical guideline rather than a ranking rule.
Where the 60-character guideline comes from
The 60-character figure is an industry habit, not a published requirement. It survives because it is a useful budget:
- It leaves room for the rest of the URL. The slug is only the last part of the address.
https://example.com/blog/already uses 25 characters before the slug starts. - It fits a phrase, not a sentence. Sixty characters hold roughly eight to ten ordinary words, which is enough for a primary keyword and one qualifier.
- It is easy to check. A single number turns "keep it short" into something an editor or a script can verify.
That is why our length indicator uses 60 and 75 characters as its warning points. If your slug is 64 characters and every word earns its place, that is fine. If it is 99 characters, something can almost always go.
Why shorter slugs work better
Google does not say that a shorter URL ranks higher, so be wary of anyone who promises a ranking boost from trimming a few characters. The real benefits are practical:
- Readability. People decide whether to click partly from the URL they see.
best-running-shoes-beginnersis understood at a glance. - Sharing. Short URLs survive email clients, chat apps and printed material without wrapping or looking broken.
- Maintenance. A slug that names the topic, not the headline, does not need to change when you rewrite the title or update the year.
- Clean reporting. Analytics and Search Console reports list URLs. Short, descriptive paths make those tables readable.
How to shorten a slug without losing meaning
Work through these steps in order and stop as soon as the slug is short and still clear:
- Start from the title. Generate the full slug first so you can see every word.
- Remove stop words such as "the", "to", "for" and "in", unless they carry meaning (see the next section).
- Drop years and numbers that will go out of date, but keep numbers that identify the thing itself.
- Cut at a word boundary if the slug is still too long. Never cut in the middle of a word.
- Keep the primary keyword near the front, so it survives any later trimming and is visible first.
- Check for duplicates. Shorter slugs collide more often. The bulk CSV tool can add
-2,-3when two titles produce the same slug.
Here is one long title run through those steps. Each row is real output from the slug engine with the setting shown:
| Setting | Slug | Characters |
|---|---|---|
| Default | the-ultimate-guide-to-the-best-coffee-shops-in-new-york-city-for-2026 | 69 |
| Remove stop words | ultimate-guide-best-coffee-shops-new-york-city-2026 | 51 |
| Stop words and numbers removed | ultimate-guide-best-coffee-shops-new-york-city | 46 |
| Stop words, numbers, max 30 characters | ultimate-guide-best-coffee | 26 |
| Max 5 words only | the-ultimate-guide-to-the | 25 |
The last two rows show why the order matters. Limiting the word count before removing stop words keeps the filler and throws away the topic: the-ultimate-guide-to-the says nothing about coffee. Remove the filler first, then apply a limit only if you still need one.
A second example, for a title that is long without being padded:
| Title | Default slug | With max 60 characters |
|---|---|---|
| An extremely long article title that keeps going and going well past any reasonable limit for a URL | an-extremely-long-article-title-that-keeps-going-and-going-well-past-any-reasonable-limit-for-a-url (99) | an-extremely-long-article-title-that-keeps-going-and-going (58) |
The automatic cut keeps the slug valid, but a human editor would do better: a slug like long-article-titles says more in 19 characters. Automatic limits are a safety net, not a substitute for choosing the words.
Stop words: when to remove them and when to keep them
Removing stop words is the fastest way to shorten a slug, and usually safe. Our default list contains a, an, the, and, or, but, in, on, at, to, for, with, by and from. These outputs show where it helps and where it hurts:
| Title | Default slug | Stop words removed | Verdict |
|---|---|---|---|
| Best Running Shoes for Beginners | best-running-shoes-for-beginners | best-running-shoes-beginners | Remove: same meaning, shorter |
| Black Friday Deals on Laptops & Tablets | black-friday-deals-on-laptops-and-tablets | black-friday-deals-laptops-tablets | Remove |
| The Who Live at Leeds | the-who-live-at-leeds | who-live-leeds | Keep: "The Who" is a band name |
| Gone with the Wind Summary | gone-with-the-wind-summary | gone-wind-summary | Keep: the book title is lost |
| Cash or Card at Checkout | cash-or-card-at-checkout | cash-card-checkout | Keep "or": the choice is the topic |
When a stop word is part of a name or changes the meaning, keep it, or edit that one slug by hand after bulk generation.
Word-boundary cut vs hard cut
Many CMS plugins and quick scripts limit length with a plain substring. That cuts words in half. With the 69-character coffee slug above:
| Method | Result |
|---|---|
slug.slice(0, 40) | the-ultimate-guide-to-the-best-coffee-sh |
| Max characters 40 in our tool (cuts at a word boundary) | the-ultimate-guide-to-the-best-coffee |
A half word such as -sh looks like a typo and can even form a different word. If you limit length in your own code, cut at the last separator instead. These functions mirror the "Max characters" option for a string that is already a slug:
function truncateSlug(slug, max = 60, sep = '-') {
if (slug.length <= max) return slug;
const cut = slug.slice(0, max + 1);
const i = cut.lastIndexOf(sep);
return i > 0 ? cut.slice(0, i) : slug.slice(0, max);
}
truncateSlug('the-ultimate-guide-to-the-best-coffee-shops-in-new-york-city-for-2026', 40);
// 'the-ultimate-guide-to-the-best-coffee'def truncate_slug(slug: str, max_len: int = 60, sep: str = "-") -> str:
if len(slug) <= max_len:
return slug
cut = slug[: max_len + 1]
i = cut.rfind(sep)
return cut[:i] if i > 0 else slug[:max_len]
truncate_slug("how-to-write-a-product-description-that-actually-sells", 30)
# 'how-to-write-a-product'Taking max + 1 characters first matters: if the character right after the limit is a separator, the last word fits exactly and is kept.
Warning
Common mistakes
- Cutting mid-word. As shown above, a plain substring produces fragments like
-descrip. Always cut at a separator. - Removing numbers that identify the product.
iPhone 17 Pro Max Review: Battery, Camera and Pricewith numbers removed becomesiphone-pro-max-review-battery-camera-price, which no longer says which model. Remove dates, keep model numbers. - Stuffing keywords. Repeating variations of a keyword makes the slug longer and less readable. Google's guidelines ask for descriptive words, not repetition.
- Putting the year in an evergreen URL. A slug with 2026 in it looks stale next year, and changing it then means a redirect.
- Shortening old URLs just for length. Changing published URLs is a site move in Google's terms. It needs 301 redirects and updated links, and Google notes that a move can take weeks or more to be processed. Fix length for new pages; change old ones only when there is a real reason.
- Forgetting the folders.
/blog/2026/10/27/category/subcategory/short-slugis long even with a short slug. Keep the whole path simple.
Copyable slug length checklist
[ ] Slug describes the page topic in 3-5 meaningful words
[ ] 60 characters or fewer (75 at most) unless every word is needed
[ ] Stop words removed, except in names and where they change the meaning
[ ] No dates or years in evergreen content; model numbers kept
[ ] Cut at a word boundary, never mid-word
[ ] Primary keyword near the front
[ ] Lowercase, hyphen-separated, no trailing hyphen
[ ] Unique within its folder (no accidental -2 duplicates)
[ ] Whole path is short too, not just the slug
[ ] Published URL changed? 301 redirect from the old addressSet length limits in the tools
The URL slug generator has a live length indicator plus "Max words" and "Max characters" options that cut at word boundaries, and an editable stop word list. For a spreadsheet of titles, the bulk CSV slug generator applies the same limits to every row and can make duplicate slugs unique. If you shorten slugs that are already published, follow our guide to changing URLs in bulk with 301 redirects. For the other slug rules, such as hyphens, lowercase and accents, read what is a URL slug. If a link is full of percent-escapes, decode it with the URL encoder/decoder to see how long the slug really is.
Sources
- Google Search Central: URL structure best practices for Google Search
- Google Search Central: Site moves with URL changes
- IETF: RFC 9110, HTTP Semantics, section 4.1
- Sitemaps XML format (sitemaps.org)
FAQ
Frequently asked questions
Is there a maximum length for a URL slug?
No search engine publishes one. The practical ceilings are technical: HTTP software should support URLs of at least 8,000 octets, and a sitemap URL must be less than 2,048 characters. Aim for about 60 characters for readability.
Does a shorter URL rank better on Google?
Google does not say so. Its guidelines ask for simple, descriptive URLs. Short slugs help people read and share links, but trimming characters is not a ranking tactic.
Should I shorten the slugs of pages that are already published?
Usually not. A new slug is a new URL, so you need a 301 redirect, updated internal links and a new sitemap. Change old slugs only for a real problem, such as a wrong keyword or an ID-based URL.
How do I limit slug length without cutting words in half?
Remove stop words first, then cut at the last hyphen before your limit. The Max characters option in our tools does this automatically, and the functions in this guide show how to do it in JavaScript or Python.
