Url rewriting: come cambiare gli URL del sito senza fare redirect

Cosa sono le pagine dinamiche

Partiamo con la spiegazione degli url dinamici, ovvero quegli indirizzi di risorse che vengono generati con i linguaggi di programmazione lato server e che cambiano quando un utente digita parole da ricercare su Google. Un URL statico è:

https://per-seo.it/meta-ads-specialist/

un URL dinamico potrebbe essere

https://per-seo.it/2304.php?id=20

Come vedi ci sono caratteri e simboli strani che non fanno bene all’indicizzazione nei motori di ricerca. Ad esempio il punto interrogativo che introduce una query strings. Una query string è una parte di un URL che assegna valori a parametri specificati. In altre parole, è una stringa di testo che segue il punto interrogativo in un URL e contiene coppie di chiavi e valori separati da un segno uguale.
Sono molto comuni negli e-commerce quando clicchiamo, ad esempio, su un filtro per cambiare colore o dimensione ad un prodotto. Infatti un utente non chiede di cambiare pagina, ma essi vengono generati nella stessa. Per chi visualizza queste pagine, durante la propria navigazione, essi non rappresentano assolutamente un problema (molte volte neanche se ne accorgono che nella barra degli indirizzi siano stati aggiunti parametri e altri simboli), al contrario di quanto accade nei motori di ricerca.

Perché gli url dinamici possono rappresentare un problema per i motori di ricerca?

Ci sono diversi motivi per cui gli URL dinamici possono rappresentare un problema per i motori di ricerca:

  1. Lunghezza e complessità: gli URL dinamici possono essere molto lunghi e complessi, con una serie di parametri, come abbiamo appena detto, separati da simboli come “?” e “&”. Questo può rendere difficile la lettura e comprensione del percorso dell’indirizzo per i motori di ricerca. Anche per gli utenti può essere frustrante, perché sono meno facili da ricordare.
  2. Contenuto duplicato: gli URL dinamici possono generare contenuto duplicato, poiché lo stesso contenuto può essere visualizzato su URL diversi che presentano una struttura ed un contenuto quasi identico tranne che per alcuni piccoli particolari (appunto: colore, dimensione, prezzo, ma la descrizione e informazioni rimangono le medesime). In genere, soprattutto negli e-commerce, si risolve inserendo un tag=canonical alla pagina prodotto principale.
  3. Crawl budget: i motori di ricerca, quando scansionano un sito, hanno un tempo limitato. Di conseguenza, succede molte volte, che non riescono a leggere tutti gli url del sito, ma solo alcuni di loro. Ovviamente, si dovrebbero preferire gli url importanti, ovvero le pagine o articoli. Ma se lo spider dei motori di ricerca “incontra” url dinamici, pieni di quesy strings o parametri strani, non indicizzerà correttamente il sito per come lo si vorrebbe e avrà, appunto, sprecato solo tempo per leggere risorse non importanti che non ci interessa indicizzare.

Tuttavia, l’URL rewriting può aiutare a risolvere questi problemi e migliorare l’esperienza degli utenti e l’indicizzazione del sito.

Hai bisogno di una consulenza SEO urgente?



    Come funziona l’url rewriting

    Sostanzialmente si dà una direttiva al server il quale dovrà reinterpretare gli indirizzi url. Quindi, ogni volta che avrà in input un indirizzo A (dinamico), in output dovrà uscire un indirizzo B che simula un url statico senza parametri.

    Esempio:

    Il server riceve la richiesta dal client generata dall’utente con un url dinamico, come quella di un prodotto filtrato di un e-commerce

    https://www.per-seo.it/prodotti.php?id=123

    In quel momento, il server la elabora internamente e la trasforma in qualcosa di simile

    https://www.per-seo.it/prodotti/generatore-url-statici/

    Come si può vedere, l’url statico non ha più la query string (il punto interrogativo) o l’id del prodotto, ma riporta testualmente ed in maniera descrittiva il prodotto contenuto nel sito per-seo.it nella folder /prodotti/, ed è importantissimo per i motori di ricerca in quanto possono leggere le parole chiavi all’interno del percorso url.

    Come si possono riscrivere gli URL?

    Utilizzando i web server, è possibile riscrivere gli URL di un sito. I web server più utilizzati al mondo sono due: Apache e Nginx.

    1. Con Apache è necessario usare il modulo mod_rewrite che permette di definire regole di riscrittura degli URL nel file di configurazione “.htaccess”. Esempio:

    RewriteEngine On
    RewriteRule ^vecchia-url$ nuova-url [L]

    La direttiva “RewriteEngine On” abilita il modulo di riscrittura degli URL, consentendo di definire regole di riscrittura degli URL.

    La seconda riga, invece,

    "RewriteRule ^vecchia-url$ nuova-url [L]"

    indica che quando l’URL richiesto corrisponde a “^vecchia-url$” (cioè l’URL inizia con “vecchia-url”), verrà riscritto in “nuova-url“. La bandiera “[L]” indica di interrompere il processo di riscrittura dopo questa regola, quindi altre regole di riscrittura successive non saranno valutate.

    2. Con Nginx basta usare la direttiva “rewrite” nel file di configurazione del server. Esempio:

    location /vecchia-url {
    rewrite ^/vecchia-url$ /nuova-url last;
    }

    In questo esempio, tutte le richieste per /vecchia-url saranno riscritte internamente come /nuova-url.

    Possiamo fare anche l’esempio in IIS, quindi con i server del sistema operativo Windows.
    Se non è stato ancora installato, si deve prima possibile installare il modulo “URL Rewrite” tramite il Pannello di controllo di Windows o tramite il Manager dei ruoli di Windows Server. Dopo l’installazione del modulo “URL Rewrite”, è possibile creare una regola di riscrittura utilizzando l’interfaccia grafica di gestione del modulo o definendo manualmente una regola nel file di configurazione “web.config” del sito web. Esempio:

    <rule name="Example" stopProcessing="true">
    
        <match url="^vecchia-url$" />
    
        <action type="Rewrite" url="nuova-url" />
    
    </rule>

    Questo codice è un esempio di come utilizzare il modulo URL Rewrite in IIS per riscrivere gli URL senza effettuare un redirect.

    • <rule name=”Example” stopProcessing=”true”>:
      Questa riga definisce una nuova regola di riscrittura chiamata “Example” e imposta l’attributo stopProcessing su true, il che significa che se questa regola viene soddisfatta, non verranno elaborate ulteriori regole.
    • <match url=”^vecchia-url$” />:
      Questa riga definisce il modello di URL da riscrivere. In questo caso, l’URL deve corrispondere esattamente a vecchia-url.
    • <action type=”Rewrite” url=”nuova-url” />:
      Questa riga definisce l’azione da intraprendere quando l’URL corrisponde al modello definito nella riga precedente. In questo caso, l’azione è di tipo “Rewrite” e l’URL viene riscritto come nuova-url.

    URL rewriting e Regex

    Le espressioni regolari (Regex) sono un potente strumento per trovare e sostituire pattern di testo in modo flessibile, e possono essere utilizzate per riscrivere gli URL in modo da ottenere una struttura più pulita o per migliorare l’indicizzazione dei motori di ricerca. Quindi, se si ha un grande numero (o tutti) gli url di un sito che contengono query strings e si vogliono eliminare con una sola direttiva di codice, con queste espressioni regolari è possibile farlo senza complicarsi troppo la vita.

    Ad esempio, se il tuo sito web utilizza un formato di URL del tipo

    "https://www.per-seo.it/pagina.php?id=123",

    e vuoi riscriverlo in un formato più amichevole per gli utenti e per i motori di ricerca come

    "https://www.per-seo.it/pagina/123",

    puoi utilizzare un’espressione regolare come questa in un file di configurazione di URL rewriting (ad esempio, in un file .htaccess per un server Apache):

    RewriteEngine On
    RewriteRule ^pagina/([0-9]+)/?$ pagina.php?id=$1 [NC,L]

    Dove la parte ^pagina/([0-9]+)/?$ è un’espressione regolare che corrisponde a un URL che inizia con “pagina/” seguito da uno o più numeri e termina con un “/” opzionale.

    Lascia un commento