Lo slug è l'ultimo segmento leggibile del percorso di un URL, quello che identifica una singola pagina: in https://www.visilay.com/it/blog/url-slug/ lo slug è url-slug.
Si scrive in minuscolo, con le parole separate da trattini, senza accenti (né simboli come la ® del marchio registrato) e senza le parole di servizio del titolo. In WordPress lo trovi nel campo Permalink della sidebar dell'editor e lo decidi prima di pubblicare: dopo, cambiarlo costa un redirect e un po' di pazienza.
Slug, path e permalink non sono la stessa cosa
Nei tre termini si fa confusione spesso, anche nei brief che arrivano dai clienti. La nomenclatura tecnica sta in RFC 3986, la specifica IETF del 2005 scritta da Tim Berners-Lee, Roy Fielding e Larry Masinter, che definisce la sintassi degli URI.
- Il path è tutto quello che viene dopo il dominio:
/it/blog/url-slug/. Può avere più segmenti separati da slash. - Lo slug è un solo segmento del path, di solito l'ultimo, quello che distingue questa pagina dalle altre dello stesso livello:
url-slug. Ancheblogè tecnicamente uno slug, quello dell'archivio che contiene la pagina. - Il permalink è l'URL completo e stabile della risorsa, dominio incluso. È il risultato finale, non una sua parte.
La distinzione serve quando si discute di struttura degli URL: cambiare la struttura delle cartelle e cambiare lo slug di una pagina sono due interventi con rischi molto diversi. Il primo tocca tutto il sito, il secondo una riga.
Quali caratteri puoi usare davvero
RFC 3986, sezione 2.3, elenca i caratteri unreserved, cioè quelli che in un URI possono stare così come sono: unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~". Lettere, cifre, trattino, punto, underscore e tilde. Tutto il resto va percent-encoded o è un delimitatore con un significato suo.
Sopra questo vincolo tecnico si appoggiano le indicazioni di Google Search Central sulla struttura degli URL, che sono tre e molto concrete: usare il trattino e non l'underscore per separare le parole, preferire parole leggibili agli ID numerici lunghi, e percent-encodare i caratteri fuori dall'intervallo ASCII. La stessa pagina ricorda che /APPLE e /apple sono due URL distinti per Google.
| Carattere | Sta nell'URL? | Cosa succede se lo usi |
|---|---|---|
| lettere minuscole a-z | sì | il caso normale, nessun effetto collaterale |
| cifre 0-9 | sì | nessun problema tecnico, ma una data nello slug invecchia |
trattino - | sì | Google lo legge come separatore di parole |
underscore _ | sì, ma | tecnicamente valido, Google consiglia il trattino: l'underscore tiene le parole unite |
punto . | sì, ma | valido, però un .zip o .php finale fa sembrare la pagina un file |
tilde ~ | sì, ma | valido e quasi inutilizzato: su vecchi server indicava la home di un utente |
| lettere maiuscole | sì, ma | due slug che differiscono solo per il case sono due pagine diverse |
| spazio | no | diventa %20 e rende l'URL illeggibile quando viene copiato |
| accenti à è é ì ò ù | no | percent-encoded: è diventa %C3%A8, tre caratteri al posto di uno |
apostrofo ' | no | diventa %27 |
? # & = | no | sono delimitatori: spezzano l'URL in query string e frammento |
Accenti e apostrofi: il problema di chi scrive in italiano
Questo punto in inglese non esiste e per questo nelle guide tradotte passa inosservato. Un titolo italiano medio è pieno di accenti e apostrofi: "Perché l'attività di un'azienda è più visibile". Se lo slug nasce dal titolo senza filtro, il browser lo mostra pulito ma il valore vero della risorsa contiene le sequenze percent-encoded.
La codifica non è arbitraria: ogni carattere non ASCII viene prima convertito nei suoi byte UTF-8, poi ogni byte diventa un % seguito da due cifre esadecimali. La è in UTF-8 occupa due byte, quindi diventa %C3%A8. La à diventa %C3%A0. Uno slug come perche-e-importante resta di 19 caratteri; perché-è-importante ne diventa 25 nella forma che viaggia sulla rete.
Le conseguenze pratiche sono tre. L'URL copiato e incollato in una mail o in un messaggio arriva nella forma codificata e illeggibile. I log e i report di Search Console mostrano la versione percent-encoded, quindi cercare una pagina per nome diventa più lento. E alcuni sistemi che consumano URL a mano, dai CSV dei feed ai vecchi client di posta, li troncano al primo carattere che non riconoscono.
Chi lavora su WordPress parte in vantaggio. Lo slug generato dal titolo passa per sanitize_title_with_dashes(), che abbassa tutto in minuscolo, sostituisce gli spazi con trattini e limita l'output a caratteri alfanumerici, underscore e trattino; a monte remove_accents(), presente dalla 1.2.1, riporta le lettere accentate in ASCII. Il problema nasce quindi da uno slug incollato a mano o da una migrazione che ha importato i permalink da un altro CMS. Nel dubbio apri la pagina e guarda la barra degli indirizzi dopo un ricaricamento: se compaiono i %, lo slug va riscritto.
Come si scrive uno slug decente
Il metodo è sempre lo stesso: prendi il titolo, togli le parole di servizio (articoli, preposizioni, congiunzioni), tieni i due o tre termini che un lettore userebbe per cercare quella pagina. La keyword research serve anche a questo: a sapere quale coppia di parole resta quando butti tutto il resto.
| Titolo della pagina | Slug da evitare | Slug migliore | Perché |
|---|---|---|---|
| Perché il page speed conta per un e-commerce | /perche-il-page-speed-conta-per-un-e-commerce | /page-speed-ecommerce | le parole di servizio occupano metà dello slug e non distinguono la pagina da nessun'altra |
| Guida 2024 alla keyword research | /guida-2024-keyword-research | /keyword-research | l'anno nello slug invecchia a gennaio, e per aggiornarlo serve un redirect |
| Chi siamo | /?page_id=1287 | /chi-siamo | Google consiglia parole leggibili invece di ID numerici lunghi |
| Quanto costa un impianto fotovoltaico da 6 kW | /quanto-costa-un-impianto-fotovoltaico-da-6-kw-guida-completa-aggiornata | /costo-impianto-fotovoltaico-6-kw | 72 caratteri contro 33, e "guida completa aggiornata" non aggiunge informazione |
| Categoria prodotto: stampanti per etichette | /categoria-prodotto/stampanti-per-etichette-2 | /stampanti-etichette | il prefisso tecnico del CMS e il suffisso numerico anticollisione non dicono nulla a nessuno |
| Servizi SEO per aziende B2B | /Servizi_SEO_B2B | /servizi-seo-b2b | maiuscole e underscore: la prima forma genera un URL distinto, la seconda tiene le parole unite |
Una regola che funziona bene nei progetti con molte pagine: lo slug deve restare vero anche se il titolo cambia. Un titolo si riscrive dieci volte in tre anni, lo slug dovrebbe sopravvivere a tutti e dieci. È per questo che conviene metterci il concetto, non la promessa commerciale del momento.
Quanto può essere lungo
Google non pubblica un limite di caratteri per lo slug e non ne esiste uno nella specifica. I limiti reali li impongono i CMS, e sono molto più alti di quanto serva.
- WordPress: la colonna
post_namedella tabellawp_postsè unvarchar(200), quindi 200 caratteri (Database Description). - Squarespace: da 3 a 250 caratteri per le pagine, da 3 a 200 per i post del blog, gli eventi e i prodotti, e vieta qualsiasi carattere speciale che non sia il trattino (documentazione Squarespace).
Nei progetti che seguiamo gli slug buoni stanno quasi sempre fra i 15 e i 40 caratteri, due o quattro parole. Non perché ci sia una soglia magica: perché oltre quella lunghezza stai ripetendo nello slug cose che hai già detto nel titolo e nell'H1, e la ripetizione non aggiunge segnale. La stessa pagina di Google Search Central invita ad accorciare gli URL togliendo quello che non cambia il contenuto: lo slug ricco di parole di riempimento rientra in quella categoria.
Gli slug in un sito multilingua
Su un sito con più lingue lo slug va tradotto, non lasciato in italiano sotto il prefisso della lingua straniera. Un /en/blog/costo-impianto-fotovoltaico/ è un URL inglese con un'etichetta italiana: per chi legge non significa niente e per il motore di ricerca non contiene nessuna delle parole con cui la pagina verrà cercata.
I plugin di traduzione come WPML e Polylang gestiscono uno slug per lingua, ma il valore di default quando si crea la traduzione è una copia dell'originale: se nessuno la riscrive resta lì. Vale anche per gli slug delle categorie e degli archivi, che sono la parte che si dimentica più spesso. Nel progetto Macropix la riscrittura degli slug tradotti è stata una delle prime cose fatte, prima di toccare i contenuti.
Quando non va cambiato
Per Google uno slug diverso è una pagina diversa. Cambiarlo su una pagina già indicizzata significa che il vecchio indirizzo restituisce 404 se non imposti un redirect permanente e non un 302 temporaneo, e che tutti i link esterni che puntavano a quella pagina passano per un salto in più. La casistica completa sta in problemi comuni degli URL; qui bastano due indicazioni.
- Se lo slug è solo imperfetto (una parola di troppo, un articolo rimasto dentro) lascialo dov'è. Il guadagno non copre il rischio.
- Se è sbagliato in modo che si vede (percent-encoding, ID numerico, refuso, lingua errata) cambialo, metti il redirect 301 e controlla che i link interni puntino al nuovo indirizzo e non al redirect. E ricordati del tag canonical, che dopo un cambio di slug resta spesso sul vecchio valore.
Un controllo di questo tipo rientra in qualsiasi attività di SEO tecnica ed è tra le prime cose che guardiamo nei progetti SEO: un crawl del sito e una colonna con la lunghezza del path dicono in dieci minuti dove il CMS ha generato slug da solo.
Ultima cosa, che nel settore si sente dire poco: lo slug è l'unico elemento on-page che non si può testare. Un title si riscrive il martedì e si rimette a posto il venerdì senza che nessuno se ne accorga, un H1 anche, una meta description pure. Lo slug no: ogni modifica è un indirizzo nuovo, un redirect in più da mantenere per anni e una riga in più in una configurazione che qualcuno dovrà leggere nel 2031. È l'unico pezzo di SEO on-page che conviene scrivere bene una volta invece di ottimizzare dopo, e l'unico in cui la decisione giusta è quasi sempre quella più noiosa.
Domande frequenti
L'URL è l'indirizzo completo della pagina, protocollo e dominio inclusi. Lo slug è un solo segmento del percorso, di solito l'ultimo, quello che identifica la singola pagina: in https://www.visilay.com/it/blog/url-slug/ lo slug è url-slug.
In modo diretto molto poco. Google Search Central tratta la struttura degli URL come una questione di leggibilità e di scansione, non come una leva di ranking. Lo slug conta per altro: chi legge capisce cosa troverà prima di cliccare, chi linka la pagina a mano scrive un indirizzo sensato, e chi deve mettere ordine in un sito grande riesce a capire cosa sta guardando.
Tecnicamente sì, perché vengono percent-encoded, ma conviene evitarle. RFC 3986 ammette senza codifica solo lettere ASCII, cifre, trattino, punto, underscore e tilde, e Google chiede di percent-encodare i caratteri fuori dall'intervallo ASCII. Una e accentata diventa %C3%A8, quindi un indirizzo leggibile nel browser diventa illeggibile appena viene copiato o finisce in un report.
Non esiste un limite imposto da Google, e i limiti dei CMS sono molto alti: in WordPress la colonna post_name è un varchar(200), Squarespace ammette da 3 a 250 caratteri per le pagine. In pratica due o quattro parole bastano, perché oltre quella soglia si ripete nello slug quello che c'è già nel titolo e nell'H1.
Il vecchio indirizzo smette di esistere. Senza un redirect 301 restituisce 404 e perde i link che puntavano alla pagina. Se decidi di cambiarlo, imposta il redirect, aggiorna i link interni in modo che puntino al nuovo indirizzo e controlla il tag canonical, che dopo un cambio di slug resta spesso fermo sul valore precedente.
Il trattino. Google Search Central lo dice in modo esplicito: raccomanda il trattino invece dell'underscore, perché l'underscore viene storicamente usato per tenere uniti concetti che vanno letti come una sola parola.