Slug Generator

Turn titles into clean, SEO-friendly URL slugs — accents stripped, symbols removed. Bulk and instant.

Clean, SEO-friendly URL slugs — accents stripped, symbols removed. Generated live in your browser.

How to use the Slug Generator

  1. Paste titles. One title per line for bulk slugs.
  2. Choose separator. Hyphen or underscore, and lowercase on/off.
  3. Copy slugs. Copy all generated slugs at once.

Free to use — premium coming soon

FREE
  • Bulk slugs
  • Accent & symbol handling
  • 100% private
PREMIUM
  • Remove ads
  • Custom stop-word removal

About the Slug Generator

A slug is the readable, human-facing part of a URL that identifies a single page, such as the "seo-friendly-urls" in example.com/blog/seo-friendly-urls. This Slug Generator takes any title or phrase and converts it into a clean, web-safe slug in one step: it lowercases the text, transliterates accented and non-ASCII letters to their closest ASCII equivalents, strips punctuation and symbols, and joins the remaining words with hyphens. The result is a tidy string made only of the characters a-z, 0-9 and hyphens, which is exactly what browsers, content management systems, and search crawlers handle most predictably without percent-encoding.

Reach for this tool whenever you are naming a blog post, product page, category, documentation section, or any route that will live in a URL. A good slug pays off twice: it gives readers a clue about the page before they click, and it gives search engines descriptive words to associate with the page. Google explicitly recommends readable words over long ID numbers and advises using hyphens rather than underscores, because crawlers read a hyphen as a word separator and an underscore as a word joiner. So "url-slug" is understood as two words, while "url_slug" collapses into the single token "urlslug".

Under the hood the generator follows a deterministic pipeline. First it normalizes Unicode using NFD decomposition, which splits an accented character like e-acute into a base letter plus a combining mark, then discards the mark so that cafe, naive, and Zurich come out clean. Next it forces lowercase to avoid the duplicate-content risk that comes from case variants of the same path. It then removes any character outside the safe set, optionally drops common English stop words such as the, a, and, of, and to, and finally collapses runs of spaces or symbols into single hyphens with no leading or trailing dash. You can tune length by trimming to the most meaningful three-to-five words.

Everything happens locally in your browser, so the titles you paste, which may include unpublished headlines or internal page names, are never uploaded to a server or stored anywhere. Accuracy depends on your input language: ASCII transliteration works reliably for Latin-script text with diacritics, but it cannot meaningfully romanize scripts like Chinese, Arabic, or Cyrillic, which Google instead recommends percent-encoding. For those cases, write a deliberate English or romanized slug rather than relying on automatic stripping, and always confirm the final slug is unique on your site before you publish it.

Frequently asked questions

Should a slug use hyphens or underscores?

Use hyphens. Google treats a hyphen as a word separator, so "my-blog-post" is read as three distinct words, whereas an underscore joins words into one token like "myblogpost". This generator always uses hyphens for that reason.

How long should a URL slug be?

Aim for roughly three to five meaningful words and under about 60 characters. Length is not a direct ranking factor, but shorter slugs are easier to read, share, and display fully in search results, so trim filler words while keeping the slug clear.

Should I remove stop words like 'the', 'and', and 'of'?

Usually yes, since words like the, a, and, or, and of rarely add meaning and just lengthen the slug. Keep them only when they are essential to clarity or to a recognized phrase, such as "how-to" or a proper title. The tool offers stop-word removal as an option you can toggle.

What happens to accented letters and special characters?

Accented Latin letters are transliterated to plain ASCII, so cafe, naive, and Zurich come out without marks. Punctuation, spaces, and symbols are removed or replaced with a single hyphen, leaving only lowercase a-z, digits 0-9, and hyphens.

Can it create a slug from non-Latin scripts like Chinese or Arabic?

Automatic ASCII conversion cannot meaningfully romanize non-Latin scripts, so those characters get stripped rather than transliterated. For such content, either write a deliberate English or romanized slug, or follow Google's guidance to percent-encode the non-ASCII text instead.

From our blog

JSON to CSV Without Losing Data: Flattening, Encoding, and Excel Traps

By the Super Simple Digital Tools Team · Updated June 2026

Most JSON to CSV problems are not really about JSON or CSV; they are about the gap between a flexible tree and a rigid grid. JSON can nest objects inside objects and arrays inside arrays to any depth, while CSV is a flat table of rows and columns. The conversion succeeds when your data is already list-shaped, an array of records that all describe the same kind of thing, and gets awkward only when a single record fans out into sub-lists. Knowing that distinction up front tells you whether you should convert at all or keep the data as JSON.

The first real decision is how to flatten. A nested object usually maps cleanly to dotted columns: {"user":{"id":1,"city":"Oslo"}} becomes user.id and user.city, one value each, no information lost. Arrays need more thought. An array of primitives like ["red","blue"] reads best joined into one cell, because the items belong together as a set. An array of objects, such as invoice line items, carries independent meaning per item, so you either expand them into numbered columns or split the record into multiple rows. Picking the wrong strategy is the most common cause of a CSV that technically converts but is unusable.

Headers come from the union of keys, not just the first object. If one record has an email field and the next does not, the converter still creates an email column and leaves the missing cell empty so every row has the same width. This matters with API data, where optional fields appear only on some records. Relying on the first object alone would silently drop columns. Empty cells are correct here; they preserve the shape of the table and let spreadsheets and importers line up values under the right headers.

Escaping is where naive conversions fall apart. The CSV format reserves the comma as a separator, the double quote as a wrapper, and the line break as a row terminator, so any value containing one of those must be quoted, and quotes inside the value are doubled rather than backslash-escaped. A product description with a comma, an address with a newline, or a note with a quotation mark all need this treatment, or the columns shift and the file becomes garbage two rows down. A correct converter applies RFC 4180 quoting automatically so you never have to think about it.

Finally, encoding and the spreadsheet itself. Save and treat CSV as UTF-8 so accented names and non-Latin scripts survive; Excel on Windows may need a byte-order mark or an explicit import step to read UTF-8 correctly. The bigger trap is type auto-detection: opening a CSV by double-click lets Excel reinterpret your text, dropping leading zeros and rewriting long IDs as 1.23457E+15. The file is fine; the viewer is guessing. Import through the data wizard, set identifier columns to Text, and your CSV will round-trip exactly as written.

  • Wrap your input in square brackets if it is a bare list of objects; the converter needs a top-level array to produce one row per record.
  • For ZIP codes, phone numbers, and long IDs, open the CSV via Excel's Data > From Text/CSV and set those columns to Text to stop leading zeros and scientific-notation corruption.
  • Decide per array: join primitive arrays like tags into one cell, but expand arrays of objects (line items) into separate columns or rows so nothing collapses.
  • If accented or non-Latin characters look wrong after opening, the file is UTF-8 but the spreadsheet guessed the encoding; reimport and choose UTF-8 explicitly.

Read the full guide →

Tool by the Super Simple Digital Tools Team. Reviewed by our editorial team. Free to use, no signup required.

Related tools