CSV in · slugs + 301 rules out
Bulk CSV Slug Generator
Upload a spreadsheet of page titles and download it back with clean slug and URL columns. Add an old-URL column to get 301 redirect rules for Apache, Nginx or Cloudflare.
- 100% in your browser
- Zero upload: your text and files never leave your device
- No row limit
Processed in your browser · nothing is uploaded
1. Load your CSV
5 rows · 3 columns · delimiter "," · processed in your browser
Slug options
Separator & caseHyphen - · lowercase
Separator
TransliterationASCII
LengthNo limit
Limits cut only at word boundaries, so a word is never split in half.
Stop wordsOff
SymbolsTo words
Base URLOptional
Preview the full page address under each slug.
2. Preview & download
| # | title | old_url | slug | url |
|---|---|---|---|---|
| 1 | Crème Brûlée & Café: The Complete Guide | /blog/post?id=101 | creme-brulee-and-cafe-the-complete-guide | /creme-brulee-and-cafe-the-complete-guide |
| 2 | 10 Tips for Writing SEO-Friendly URLs | /blog/post?id=102 | 10-tips-for-writing-seo-friendly-urls | /10-tips-for-writing-seo-friendly-urls |
| 3 | Straße, Ärger und Übermut | /blog/post?id=103 | strasse-arger-und-ubermut | /strasse-arger-und-ubermut |
| 4 | 10 Tips for Writing SEO-Friendly URLs | /blog/post?id=104 | 10-tips-for-writing-seo-friendly-urls-2 | /10-tips-for-writing-seo-friendly-urls-2 |
| 5 | Multi-line title cell | /blog/post?id=105 | multi-line-title-cell | /multi-line-title-cell |
3. 301 redirect rules
RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=101$
RewriteRule ^blog/post$ /creme-brulee-and-cafe-the-complete-guide? [R=301,L]
RewriteCond %{QUERY_STRING} ^id=102$
RewriteRule ^blog/post$ /10-tips-for-writing-seo-friendly-urls? [R=301,L]
RewriteCond %{QUERY_STRING} ^id=103$
RewriteRule ^blog/post$ /strasse-arger-und-ubermut? [R=301,L]
RewriteCond %{QUERY_STRING} ^id=104$
RewriteRule ^blog/post$ /10-tips-for-writing-seo-friendly-urls-2? [R=301,L]
RewriteCond %{QUERY_STRING} ^id=105$
RewriteRule ^blog/post$ /multi-line-title-cell? [R=301,L]Tip: set a Base URL in the options to get absolute target URLs.
Upload a CSV of page titles and this bulk URL slug generator adds a clean slug and full URL to every row. Select an optional old-URL column and the built-in 301 redirect generator creates redirect rules for Apache, Nginx, or Cloudflare. This bulk CSV slug generator runs entirely in your browser with JavaScript—no account, no file uploads, and no data stored on a server.
How it works
How the bulk CSV slug generator works
- 01LoadUpload a CSV file or paste the data. Comma, semicolon, and tab delimiters are detected automatically.
- 02MapChoose the column that holds your titles and, if you are migrating, the column with the old URLs.
- 03TuneAdjust the slug options: separator, stop words, transliteration, length limits, and base URL prefix.
- 04CheckKeep "Make duplicates unique" on to add -2, -3 to repeated slugs, then check the preview table.
- 05DownloadDownload the CSV with the new
slugandurlcolumns, and copy or download the redirect rules.
Use cases

CMS migrations
Moving from WordPress to another platform? Rebuild every URL and redirect the old ones in one pass.

Product catalogs
Turn an exported product list into handles your store accepts.

Content plans
Give a whole editorial calendar consistent slugs before anything is published.
Redirect formats explained
Apache .htaccess
Plain paths become Redirect 301 /old-path https://example.com/new-slug lines. Old URLs with a query string use RewriteCond and RewriteRule, because Redirect only matches the path.
Nginx
Each rule is a location = /old-path { return 301 ...; } block for your server block. Old URLs with a query string are matched on $request_uri instead.
Cloudflare Bulk Redirects
You get a CSV in the format a Cloudflare Bulk Redirect List imports: source URL, target URL and status 301, with no header row. Cloudflare source URLs cannot include a query string, so it is removed.
Tips for migrating URLs
- Set the base URL prefix to your live site so redirect targets are absolute.
- Redirect each old page to its closest new page, not to the home page.
- Avoid chains: point old URLs straight at the final address.
- Test a few redirects on staging before you deploy the full list.
- Update internal links and your sitemap to the new URLs as well.
The full seven-step process is in our guide to bulk URL changes with 301 redirects.
Need to convert a quick list instead of a file? Use the URL slug generator on the home page. Already have old and new URLs? Paste them into the 301 redirect generator.
FAQ
Frequently asked questions
Which CSV files are supported?
Standard CSV with comma, semicolon or tab delimiters. Quoted fields, commas and line breaks inside quotes and a UTF-8 BOM are all handled.
Will Excel show accented characters correctly?
Yes. The downloaded CSV is UTF-8 with a BOM, which tells Excel to read it as UTF-8.
What happens to duplicate titles?
With "Make duplicates unique" on, the second copy gets -2, the third -3 and so on, skipping any slug that already exists in the list.
Do I need an old URL column?
No. It is only needed for redirect rules. Without it you still get the slug and URL columns.
Is my CSV uploaded to a server?
No. The file is read and processed entirely in your browser with JavaScript. No account is required, and your data is never uploaded or stored on a server.
How many rows can I process?
There is no fixed row limit. The preview shows the first 200 rows and the download includes every row. Very large files depend on your device's memory.
Migrating a site this week?
Load your export, map two columns and download slugs and redirects together.
