slugme.ioclean-url-slug-generator

URL Slugs for Arabic, French & Spanish: A Practical Guide

Accented and non-Latin text breaks most slug tools. Learn how to create clean, readable URL slugs for Arabic, French, and Spanish content the right way.

The Slugme.io TeamPublished June 16, 20267 min read
URL Slugs for Arabic, French & Spanish: A Practical Guide

Most slug generators were built with English in mind. Feed them an accented French phrase or an Arabic headline and they often strip the meaning right out of your URL — turning "Diseño Web" into /dise-o-web or an Arabic title into an empty string.

If you publish in more than one language, you need slug rules that respect each script. Here's how to handle the three most common cases cleanly.

The core problem: naive cleaning destroys meaning

A typical slug function does something like "remove everything that isn't a–z or 0–9." That's fine for plain English. But applied to other languages it deletes the very characters that carry the meaning:

Diseño Web   → dise-o-web      (the ñ was deleted)
Café Crème   → caf-cr-me       (accents gone, words broken)
نصائح السيو  → (empty)          (the whole script removed)

The fix is to apply language-aware rules instead of one blunt filter.

French: convert accents, don't delete them

French uses accents heavily — é, è, ê, à, ç, ï, and more. The correct approach is transliteration: convert each accented letter to its base Latin form before cleaning.

é, è, ê, ë → e
à, â       → a
ç          → c
î, ï       → i
ô          → o
û, ù       → u

So the slug stays readable and keyword-relevant:

L'optimisation du référencement → /optimisation-referencement
Café & Crème                    → /cafe-creme

Technically this is done by normalizing the text (Unicode NFD) and removing the combining diacritical marks — then lowercasing and hyphenating as usual.

Spanish: handle ñ, accents, and tildes

Spanish has the same accent situation as French, plus the distinctive ñ. Convert each to its base letter:

á, é, í, ó, ú → a, e, i, o, u
ñ             → n
ü             → u

Examples:

Diseño Web en España → /diseno-web-espana
Guía de Programación → /guia-programacion

Note that ñ → n is the standard, readable convention for URLs even though they're different letters in Spanish — it keeps the slug ASCII-safe and predictable.

Arabic: preserve the script and strip the marks

Arabic is the trickiest case, for two reasons: it's written right-to-left (RTL), and it uses optional diacritics (Harakat) plus an elongation character (Tatweel).

The wrong move is to transliterate Arabic into Latin letters — that usually produces unreadable results. The right move is to keep the Arabic characters and only remove what doesn't belong:

  1. Strip Harakat (the vowel marks: َ ُ ِ ّ ْ …).
  2. Remove the Tatweel elongation character (ـ).
  3. Drop punctuation and symbols, but keep the Arabic letters intact.
  4. Replace spaces with hyphens.

The result is a clean, fully Arabic slug:

أفضل 10 نصائح في السيو → /أفضل-10-نصائح-السيو

Modern browsers and search engines fully support non-Latin (IRI) URLs, so an Arabic slug is valid, indexable, and far more meaningful to Arabic readers than a transliterated guess.

Don't forget stop words per language

Stop words differ by language. Removing English stop words from a French slug does nothing useful. Each language needs its own list:

  • French: le, la, les, un, une, des, et, de, du…
  • Spanish: el, la, los, las, un, una, y, de, del…
  • Arabic: في, من, على, إلى, و, ب, ل, مع…

A language-aware generator applies the right list automatically.

A quick comparison

Input Language Clean slug
Le guide de l'optimisation French /guide-optimisation
Diseño web en España Spanish /diseno-web-espana
أفضل 10 نصائح في السيو Arabic /أفضل-10-نصائح-السيو

Get it right automatically

Doing all of this by hand — per language, per script — is error-prone. Slugme.io ships with a dedicated engine for English, Arabic, French, and Spanish: it transliterates accents for Latin scripts, preserves Arabic while stripping Harakat and Tatweel, flips the interface to RTL when needed, and applies the correct stop-word list for each language.

Pick your language, paste your title, and copy a clean slug — no broken characters, no empty strings. For the fundamentals, see what a URL slug is and the best-practices checklist.

Keep reading