Andrea Vit
10.10 2007

URL SEF e caratteri speciali nelle promozioni multilingua

Oggi intendo affrontare un problema tecnico che riguarda le promozioni multilingua ed in particolare la generazione di URL Search Engine Friendly in modo automatico mediante CMS.

Le URL, infatti, sono uno dei fattori SEO on-page ed è importante che esse descrivano il contenuto delle pagine. In questo modo si hanno due vantaggi principali:

  • Sono più facilmente leggibili e memorizzabili dall’utente
  • Sono utili nelle SERP poiché vengono messe in evidenza con il grassetto e rendono il risultato maggiormente accattivante per l’utente

Un buon metodo per costruire URL SEF è quello di sfruttare dei dati presenti nel database per generarle automaticamente.
Ad esempio:

  • il titolo di un post nel blog:
    Il nuovo libro di Alessandro Manzoni = www.il-mio-sito.net/il-nuovo-libro-di-alessandro-manzoni.html
  • il nome prodotto e la sua descrizione in un e-commerce
    Gino – barattolo = www.il-mio-sito.net/gino-barattolo.html

Per costruire delle URL valide è necessario eliminare tutti i caratteri speciali, gli spazi ed eventuali caratteri maiuscoli che potrebbero essere contenuti nei dati che andiamo ad utilizzare.
Un possibile esempio potrebbe essere:
Giosuè & Noè vivono in Valle D’Aosta = giosue-noe-vivono-in-valle-d-aosta.html

A tal proposito si rende necessaria una procedura di pulitura dei caratteri speciali.
Una delle risorse più utilizzate ed indicate a questo compito nel web è la routine sanitize_title_with_dashes() di WordPress contenuta nel file wp-includes/formatting.php.

Questa però ha un difetto: non si comporta in maniera corretta nella gestione dei caratteri tedeschi, in particolare i caratteri con la dieresi come ö, ë, ü. Questi caratteri, infatti, vengono tradotti con una regola errata:
ä = a
ö = o
ü = u
al posto di
ä = ae
ö = oe
ü = ue

Le conseguenze sono significative in quanto le parole tradotte male:

  1. perdono l’evidenza nella SERP
  2. URL con caratteri speciali tedeschi

  3. potrebbero addirittura assumere significati diversi come ad esempio kuchen (torta) e kuechen (cucine)

A tal proposito ho modificato la funzione remove_accents() rimpiazzando le sostituzioni errate con quelle corrette.

Potete scaricare qui un esempio dell’utilizzo del file wp-includes/formatting.php modificato. Potrete eseguire dei test e magari utilizzarla nei vostri CMS per creare delle fantastiche URL SEF!

Buone URL a tutti! :-)