modern seo

Scrivi slug URL puliti e leggibili

MetricSpot controlla lo slug dell'URL per lunghezza, separatori e se si legge come parole vere. Gli slug puliti (/seo-guide) battono gli ID (/page?id=123) per click e indicizzazione.

Cosa controlla questo check

Analizza l’URL della pagina sotto audit e ispeziona l’ultimo segmento del path (lo “slug”). Il check fallisce quando lo slug è:

  • Un ID numerico o hashato/posts/47391, /p?id=a8f3e2b0.
  • Troppo lungo — oltre 60 caratteri.
  • Pieno di underscore invece che trattini — /seo_guide_for_2026_complete.
  • Per lo più stop word/what-is-the-best-way-to-do-x.
  • Tutto maiuscolo o mixed case/SEO-Guide, /seoGuide.
  • Contiene spazi o caratteri speciali/SEO Guide.html, /SEO%20Guide.

Perché è importante

Gli slug puliti non sono solo estetici — influenzano click-through, ranking e condivisibilità in modi misurabili.

  • Click-through. Gli studi trovano costantemente che gli URL descrittivi nei risultati di ricerca ottengono dal 10 al 30% di click in più rispetto agli ID. Lo slug compare accanto al titolo in ogni SERP — è parte del tuo titolo.
  • Segnale di ranking. Google ha confermato che lo slug dell’URL è un fattore di ranking (minore). Le parole nello slug che matchano la query dell’utente vengono grasseggiate, come il titolo e la description.
  • Condivisibilità. Un URL che qualcuno può leggere è un URL che qualcuno può ricordare e dire a un collega. metricspot.com/docs/enable-hsts/ è condivisibile; metricspot.com/docs/?id=42891 no.
  • Estrazione AI. ChatGPT, Perplexity e Google AI Overviews citano gli slug nelle citazioni. Uno slug pulito si legge come una fonte vera; un ID si legge come generato a macchina.

Come risolvere

Usa slug minuscoli, separati da trattini, ricchi di keyword e sotto i ~60 caratteri.

Bene:

/docs/enable-hsts/
/blog/how-https-works/
/pricing/
/products/wireless-earbuds-pro/

Male:

/docs/47391/                          (ID, nessun significato)
/Docs/Enable_HSTS/                    (maiuscole, underscore)
/the-complete-2026-guide-to-enabling-hsts-on-your-website-step-by-step/   (troppo lungo)
/docs/?id=hsts&v=2&from=blog          (query param per URL di contenuto)

Regole.

  • Trattini, non underscore. Google tratta i trattini come confini di parola; gli underscore no. enable-hsts matcha “enable HSTS”; enable_hsts si legge come una sola parola incollata.
  • Minuscolo. Alcuni server trattano /Docs/Enable-HSTS/ come URL diverso da /docs/enable-hsts/ — contenuto duplicato, segnali divisi. Forza tutto a minuscolo a livello di redirect.
  • Elimina le stop word selettivamente. /how-https-works/ va bene. /the-best-way-to-enable-https-on-nginx-quickly/ si legge come SEO del 2012.
  • Niente estensioni di file. /about.html, /post.php. Toglile; reindirizza i vecchi URL con estensioni alla versione pulita.
  • URL stabili. Una volta che uno slug è pubblicato e indicizzato, cambiarlo ti costa backlink. Scegli un buon slug la prima volta. Se devi cambiarne uno, imposta un redirect 301 dal vecchio slug.

WordPress — Impostazioni → Permalink → “Nome del post” ti dà slug puliti per default. Per ogni post, modifica il campo slug nel meta-box dell’URL prima di pubblicare. Se cambi uno slug pubblicato, installa Redirection così il vecchio URL fa 301 automaticamente.

Astro — il routing basato su file rende gli slug espliciti. Nomina src/pages/docs/enable-hsts.astro e ottieni /docs/enable-hsts/. Fatto.

Next.js — App Router usa i nomi delle cartelle come segmenti. app/docs/enable-hsts/page.tsx/docs/enable-hsts/. Per rotte dinamiche, genera gli slug a build time da una sorgente di contenuto:

// app/blog/[slug]/page.tsx
export async function generateStaticParams() {
  const posts = await getPosts();
  return posts.map(post => ({ slug: post.slug }));
}

Genera slug programmaticamente:

function slugify(title: string): string {
  return title
    .toLowerCase()
    .normalize("NFD").replace(/[̀-ͯ]/g, "") // togli gli accenti
    .replace(/[^a-z0-9\s-]/g, "")                     // elimina la punteggiatura
    .trim()
    .replace(/\s+/g, "-")                              // spazi → trattini
    .replace(/-+/g, "-")                               // riduci i trattini ripetuti
    .slice(0, 60);                                     // limita la lunghezza
}

slugify("Enable HSTS on nginx & Apache");
// → "enable-hsts-on-nginx-apache"

Non cambiare slug pubblicati. Se devi — migrazione di dominio, rebrand — imposta un redirect 301 dal vecchio slug a quello nuovo e aggiungilo alla tua sitemap. Vedi Mantieni corte le catene di redirect così i 301 collassano in un singolo hop.

Domande frequenti

Dovrei includere la data negli slug dei post del blog?

Opzionale. /blog/2026/05/enable-hsts/ fa sembrare datato il contenuto evergreen quando un utente ci clicca tre anni dopo. /blog/enable-hsts/ no. Se scrivi molto contenuto news tempestivo, le date possono aiutare; per le guide evergreen, eliminale.

E gli slug non in inglese?

Per pagine che mirano a una lingua specifica, usa le parole di quella lingua. /es/docs/activar-hsts/ si posiziona meglio nella ricerca spagnola di /es/docs/enable-hsts/. Togli gli accenti (activar, non activación) — Google matcha comunque, e i caratteri accentati si rompono in alcuni client.

Lo slug dovrebbe matchare il titolo esattamente?

No — vicino, non identico. Il titolo è una frase completa con stop word e punteggiatura; lo slug è il nucleo denso di keyword. Titolo: “Come abilitare HSTS su nginx e Apache (con esempi di codice)”. Slug: /enable-hsts/ o /enable-hsts-on-nginx-apache/.

Fonti

Ultimo aggiornamento 2026-05-11