Slug generator: turn any title into a clean URL
Paste the whole list of titles and take each URL out, already free of accents, stop words and characters that break in another system. The panel scores the batch, points at what will cost you work later and exports everything as CSV. Free, no signup, and nothing leaves your browser.
- - Slugs
- - Average
- - Longest
- - Words removed
Generated URLs
Slugs ready
One per line, in the order you typed them. The download button gives you title, slug and URL as CSV.
What the score counted
- No duplicate slug-
- All within 75 characters-
- Separator is a hyphen-
- No line ended up without a slug-
- Six words per slug or fewer-
- No character that needs encoding-
- No date baked into the URL-
Warnings
Everything runs in your browser: the titles never leave it, no URL is visited and nothing is stored. The score measures what is under your control, which is the shape of the slug. It does not check whether the URL already exists on your site or whether the term gets searched, because both would require a network call.
Who this page is for: anyone turning a title into a page address, one at a time or a whole editorial calendar before importing it into a CMS. This tool handles the part of the URL that comes after the last slash. If your question is about the text that shows up in the search result, the right place is the meta tag generator, and to see where Google cuts that text there is the SERP preview tool. The three handle different parts of the same page and do not compete with each other.
The slug is the only part of the URL you get to choose
You bought the domain once, your CMS imposed the folder structure, and the protocol is https, full stop. What is left to decide is the final piece, and it carries more weight than its size suggests. It is what a person reads before clicking, what shows up in a link pasted into a chat with no preview, what the search engine prints above the title in the result, and what another site copies when it decides to link to you. An address like /p/48219 says nothing in any of those places; /slug-generator says everything.
The decision only looks simpler than it is. A good slug has to pass four filters at once: drop what carries no search signal, preserve what does, fit inside a length that will not be truncated, and collide with no address that already exists on the site. Doing that by hand for one title is trivial, and for forty is where the mistake is born, because the collision only surfaces when two pages are already published and one has overwritten the other. That is why this tool was built for batches: it takes the whole list, numbers collisions on its own, and scores the set rather than each line in isolation.
How to use it
- Paste the titles, one per line. It can be a single one, or the whole quarter's editorial calendar. Blank lines are ignored.
- Adjust the URL base to see the final address as it will look. It does not change the slug, it only builds the sample, and nothing is visited.
- Pick the separator. The hyphen is right for a web page; the underscore is there for anyone generating a system identifier, and the score reflects that.
- Check the stop word language. It defaults to the page language, but if you write in another one, switch it: the wrong list lets articles through and deletes content words.
- Adjust the character limit and read the list of generated URLs. The cut respects word boundaries, so check that the main term survived, and if it was at the end of the title, rewrite the title with the term up front.
How it works: from title to slug, step by step
The conversion is a fixed sequence of operations, and the order matters: swapping two steps changes the result. This is the order the tool applies, and it explains every character you see in the output.
Step 2 before step 4 is what preserves meaning: if punctuation went first, "CRO & SEO" would become "cro-seo" and the conjunction would vanish without a trace. Step 5 with the one letter exception is the most consequential decision in the set, because the English stop word list contains "a" and "i", and single letters are exactly what carries the meaning in "A/B test", "plan B" and "e-commerce". A generator that applies the list without that exception deletes the very term the person is trying to rank for, and does it silently.
Worked example (reproduces the default output)
The tool opens with three titles, base https://example.com/blog/, hyphen, stop word removal on and a 60 character limit. The numbers panel reads 3 slugs, an average of 23.7 characters, a longest of 27 and 7 words removed, with a score of 100. Line by line:
- "How to Run an A/B Test on Your Website" becomes run-a-b-test-website. Five stop words went out: how, to, an, on and your. The "a" stayed, because it is a single letter, and that is why the A/B survived intact.
- "Free Sample Size Calculator" becomes free-sample-size-calculator, 27 characters, with nothing removed. Four content words in a row is what a title free of filler looks like.
- "CRO & SEO Guide for E-commerce" becomes cro-seo-guide-e-commerce. The ampersand became the word "and" in step 2, and then that "and" was removed as a stop word in step 5, along with "for". The "e" in e-commerce stayed, by the one letter rule.
Add 5 plus 0 plus 2 and you get the 7 words removed in the panel; add 20 plus 27 plus 24, divide by 3, and you get the 23.7 character average. All seven checks are green, so the score is 100 and the band says the batch can be published.
Now turn remove stop words off, touching nothing else. The slugs swell to how-to-run-an-a-b-test-on-your-website, free-sample-size-calculator and cro-and-seo-guide-for-e-commerce: the average climbs to 32.3 characters, the longest goes to 38 and words removed drop to zero. The score falls to 86 because the word average check went out: the slugs now carry 7.0 words on average, above the ceiling of 6.
Turn removal back on and switch the separator to underscore. The slugs return to their original length but written as run_a_b_test_website, and the score sits at 84, band B, with the warning explaining that the underscore joins words instead of separating them. It is the one check you lose on purpose, which is why it carries points.
Finally, go back to the hyphen and add a fourth line: The Free Sample Size Calculator. It produces exactly the same slug as the second line, so it takes the suffix and becomes free-sample-size-calculator-2, flagged as a duplicate in the list. The panel moves to 4 slugs, an average of 25.0, a longest of 29 and 8 words removed, scoring 82. That is the warning that only appears in a batch, and it is the reason the tool works this way.
How to read each number
The score belongs to the whole batch, not to each line. One problem URL among thirty good ones takes down the matching check entirely, and that is deliberate: importing thirty one pages with one collision in the middle is the same amount of work as importing a single collision, because the fix comes after publishing.
Average and longest tell different stories. The average says how your titles look in general; the longest exposes the extreme case you did not spot while scrolling. When the two sit far apart, there is almost always one isolated title that turned into a sentence and deserves a rewrite before it becomes a URL.
Words removed measures how much filler the titles carried. A very low number on a long list usually means the wrong language is selected in the stop word list, and that field is worth a look before you celebrate.
The checks do not all weigh the same, and none of them is an opinion. Colliding, going past 75 characters, ending up with no slug and using an underscore all have known technical consequences; word average and a date in the URL are softer signals, and are worth fewer points for exactly that reason.
Known limits
The tool works on the shape of the slug, and only that. It does not know whether the address already exists on your site, because it visits nothing: the duplicate check applies to the list in the box, not to what is already published. Before a batch import, export your current URL list from the CMS and compare, or publish as a draft and let the CMS complain about the collision.
It also does not know whether the term gets searched. A beautiful slug for a subject nobody looks for is still a beautiful slug and nothing more, and that part is keyword research, which requires external data. And the stop word list is an editorial choice, not a truth: it covers English, Portuguese and Spanish in the most common terms, and it is conservative on purpose, because removing too much costs more than removing too little.
Finally, trailing slash behavior is your server's decision, and the tool holds no opinion: pick one shape, with or without, and keep it across the site. Serving the same page in both shapes creates two URLs for one piece of content, which is exactly the problem a good slug tries to avoid.
From the published URL to the live test
A good address is the beginning. What decides the outcome is what happens to the person who arrives:
- Write the title and description for that same page in the meta tag generator.
- See where Google cuts your result, in pixels, with the SERP preview tool.
- Control which paths may be crawled in the robots.txt generator.
- If the site has versions in more than one language, build the cluster in the hreflang tag generator.
- Before swapping one page for another because you think it converts better, check how much traffic the test needs in the sample size calculator.
Frequently asked questions
- How long should a slug be?
- There is no magic number, and anyone promising one is selling cheap certainty. What exists is a practical ceiling: past 75 characters the search result truncates the displayed URL, the link becomes unreadable when someone pastes it into a chat, and the descriptive part is exactly what disappears, because truncation comes from the end. The default limit in this tool is 60 characters because it fits four to six content words, which is enough to describe any page without repeating the whole title. If your main term fits in three words, use three: a short slug loses nothing, and a long slug gains nothing by being long.
- Should I really strip the articles and prepositions?
- Most of the time yes, with one exception that matters. A stop word adds no search signal and only takes room, so dropping "the", "for", "how" and "on" shortens the URL at no cost. The exception is when the preposition is part of the term people actually type, and there the stop word list turns into a knife: if your term is "ab test for email", stripping the "for" produces a slug that no longer matches what the person searched. That is exactly why the tool lets you turn removal off, and why it never removes a one letter word: the "a" in A/B test and the "e" in e-commerce are precisely the term you want to rank for.
- Hyphen or underscore?
- Hyphen, no hesitation. To Google the hyphen is a word separator and the underscore is a joiner: written as ab_test, the engine reads one single term, and a search for "ab test" loses the match. Written as ab-test, it reads two words and matches. That difference has been documented for years and is not an open question. Underscores only make sense when the destination is not an indexable web page, such as an internal system identifier or a file name in a repository. That is why the generator offers the option but takes points off when you pick it.
- Can I keep accents in the URL?
- You can, and it works: browsers accept it, Google indexes it, and the address looks fine in the address bar. The problem shows up on the way back. On copy, the browser converts the character into percent encoding, so the URL someone pastes into a chat, an email or a report becomes a run of percent signs and digits that nobody can read or check. Add to that the analytics tools that do not normalize the character and start reporting the same page on two separate rows. That is why transliteration is on by default: you can turn it off, and the tool tells you what changes when you do.
- Should I put the year or the date in the slug?
- Almost never. The temptation is real because a year in the title lifts the click rate, but titles and URLs have different life cycles. In January you will want to refresh the content, and only two bad paths remain: keep the old URL, and the address starts lying about the content, or change the URL, and you throw away the link history that page earned. Leave the year in the title, the description and the body, where it costs one edit, and keep the URL timeless. The honest exception is content that IS about a period, such as a report for a specific year or coverage of a dated event.
- Do I have to do anything when I change the slug of a live page?
- You do, and this is the part that costs the most when it is forgotten. Changing a slug is not editing text: it creates a new address and abandons the old one. Every external link pointing at the old URL starts returning a 404, the search engine takes weeks to work out what happened, and the authority that page accumulated goes with it. The procedure is to publish a 301 redirect from the old address to the new one at the same moment you make the change, confirm it responds before closing the task, and update the internal links still pointing at the old address, so you are not depending on the redirect forever.
- Does the slug have to repeat the whole title?
- No, and repeating usually makes it worse. Titles and URLs do different jobs: the title has to earn the click and may be a full sentence, while the URL only has to say what the page is about. A slug with four content words already describes anything. When your batch average passes six words per slug, the signal is not that the URL is wrong: it is that the titles turned into sentences, and it is worth looking at them before looking at the URL. That is exactly where this tool lights up, because the problem is almost never in the generator.
- Do the titles I paste here go to a server?
- They do not. All processing happens in JavaScript in your browser: the list is read, converted, scored and exported on your machine, with no network call, and nothing is stored or logged. That matters when the list reveals a whole editorial calendar that has not been published yet, which is the most common batch use. You can confirm it by opening the network tab while you type: no request leaves. The URL base is not visited either, it only goes into building the sample address.
Keep reading
To understand what changes between optimizing for search and optimizing for conversion, read CRO vs SEO, what changes in each, see how to survive answers without clicks in zero click search optimization and learn to write quotable blocks in FAQ content for AI citation.