Bulk Slug Generator
Turn a whole list of blog titles, product names, or page headings into clean, URL-safe slugs — all at once, right in your browser. Paste one title per line, or drop in a CSV/TSV export, and get back de-duplicated, ready-to-use slugs with no uploads and no signup.
What it does
- Converts a full list of titles to slugs live as you type — one title per line, blank lines skipped without breaking the order.
- Handles accented characters properly: “Café Menu” becomes
cafe-menu, notcafé-menuor a mangledc-f-. - Auto-resolves collisions. If two titles would produce the same slug — like “Hello World” and “Hello, World!” — the second one automatically gets a
-2suffix instead of silently overwriting the first. - Choice of separator (hyphen or underscore) and casing (force lowercase, or preserve the original case).
- Optional stopword stripping (a, the, of, in…) for leaner, SEO-style slugs.
- Word-boundary-aware max-length truncation — it never cuts a slug mid-word or leaves a dangling separator.
- Import straight from a CSV or TSV file and pick which column holds your titles, instead of retyping everything into a text box.
- Export as a plain list, a CSV of original+slug pairs, or JSON (array or object map).
How to use it
- Paste your list of titles into the box, one per line — or drop a CSV/TSV file and choose the column to slugify.
- Set your separator, casing, and (optionally) a max length or stopword stripping in the sidebar.
- Check the live table for any titles flagged as de-duped, and the summary line for a quick collision count.
- Copy the output or download it in the format you need.
Who this is for
Anyone bulk-importing content who needs slugs to match: migrating a blog to a new CMS, generating clean URLs for a product catalog, building redirect maps, or preparing a batch of pages for static-site generation. If your titles already live in a spreadsheet, there’s no need to retype them — pull the list in as a CSV/TSV directly, or hand it over from the CSV cleaner, Merge CSVs, or XLSX viewer tools using their built-in “Send to” button — no re-export needed.
Need just one slug instead of a whole list? Use the plain Slug generator — same conversion rules, single-title version.
FAQ
Will this handle duplicate titles correctly?
Yes — this is the one thing most bulk slug tools get wrong. Two different titles that would otherwise produce the same slug are automatically resolved in the order they appear, with -2, -3, and so on. The first occurrence always keeps the clean, unsuffixed slug.
What happens to accented or non-English characters?
Accented Latin characters (é, ñ, ü, ç, etc.) are converted to their closest plain-ASCII equivalent — the same conversion table used by the single-title Slug generator, so results match exactly between the two tools.
Can I use this with a spreadsheet instead of typing titles by hand?
Yes. Drop a CSV or TSV file onto the tool and pick which column to slugify — the rest of the file is ignored. It also accepts an incoming table sent over from the CSV cleaner, Merge CSVs, XLSX viewer, or Markdown Table → JSON Converter tools.
Does it flag near-duplicate titles, like typos of the same name?
No — this tool only catches titles that produce the exact same slug. For fuzzy/near-duplicate rows in a larger spreadsheet (e.g. “John Doe” vs “John Doee”), use the Fuzzy Duplicate Row Matcher first, then bring the cleaned list here.
Is anything uploaded to a server?
No. Everything — reading your file, converting titles, de-duplicating, exporting — runs entirely in your browser. Nothing is sent anywhere.
Related tools
- Slug generator — the single-title version of this tool
- Case converter — for UPPER, Title, camelCase, snake_case, and more
- CSV cleaner — trim whitespace and dedupe rows before slugifying
- Merge CSVs — combine multiple title lists into one first
- XLSX viewer — browse a spreadsheet and send a column straight here
- Markdown Table → JSON Converter — another table-handoff source
- Fuzzy Duplicate Row Matcher — catch near-duplicate titles exact matching misses
- Batch rename — rename actual files using a pattern, once you’ve got clean slugs