Come ottimizzare il file .htaccess in ottica SEO. Guida pratica.

Articolo aggiornato il 13 novembre 2017

Un file .htaccess ottimizzato in ottica SEO può fare la differenza nel posizionamento sui motori di ricerca.

Vediamo come può essere configurato per ottenere le migliori prestazioni.

 

 

Cos’è e a che cosa serve il file .htaccess?

Il file .htaccess (hypertext access) è un semplice file di testo che permette di raffinare, a livello di directory, le direttive per la configurazione di Apache HTTP Server: la piattaforma web server più diffusa al mondo.

Cos'è il file .htaccess e perché è importante ottimizzarlo in ottica SEO?

Apache Web Server – .htaccess

 

Per ogni richiesta ricevuta, il web server controlla la presenza di un file .htaccess all’interno della directory contenente il file richiesto, o in una directory precedente. Se esiste, viene interpretato run-time da Apache, il quale si configurerà seguendo le direttive specificate.

L’azione del file .htaccess ha effetto all’interno della directory in cui è contenuto, sotto-directory comprese.

Alcuni esempi comuni di funzionalità impostate da file .htaccess sono le seguenti:

  • gestione dei permessi di accesso ai file e alle directory;
  • gestione degli errori restituiti dal web server (il più comune è il 404, generato quando il file richiesto non esiste);
  • gestione del “Rewrite URL“, ovvero l’interpretazione dei permalink SEO; elemento ormai immancabile in fase di ottimizzazione on-site.

 

Perché è importante ottimizzare il file .htaccess in ottica SEO?

I vantaggi principali che si possono ottenere dalla corretta configurazione del file .htaccess sono i seguenti.

  • Evita la duplicazione dei contenuti
  • Mantiene la pulizia degli URL del sito, permettendone anche la riscrittura
  • Aumenta le prestazioni del sito web, grazie alla gestione della compressione e della cache dei file (entrambi gli elementi vengono verificati da Google Pagespeed insight ed altri strumenti per la verifica delle prestazioni)
  • E’ il responsabile dei reindirizzamenti (con le dovute precisazioni) degli URL

 

Vediamo in dettaglio gli aspetti che l’ottimizzazione dei file .htaccess può aiutarci a migliorare.

Come evitare la duplicazione dei contenuti grazie all’htaccess

Se in un sito web non vengono gestite la cosiddette “Pagine Canoniche“, è inevitabile che venga rilevata una duplicazione di contenuti.

Osserviamo il seguente esempio:

miosito.it
www.miosito.it
miosito.it/index.html
www.miosito.it/index.html

E’ chiaro che tutte le versioni indicate fanno capo al medesimo contenuto: l’homepage del sito web. Se non viene fornita una regola per stabilire quale, tra le quattro, rappresenta la pagina “ufficiale“, è possibile andare incontro ad una penalizzazione da parte dei motori di ricerca poiché esistono quattro URL che conducono allo stesso contenuto.

Il seguente snippet, inserito in un file .htaccess risolverà il problema.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^miosito\.it$ [NC] RewriteRule ^(.*)$ https://www.miosito.it/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://www.miosito.it/$1 [R=301,L]

Affiancando queste direttive all’utilizzo di un link rel=”canonical” nella sezione <head> delle pagine web, contenente l’URL canonico, otterremo una sicura “arma” contro la duplicazione dei contenuti. Per approfondire l’argomento rel=”canonical” consiglio di leggere la nota Informazioni su rel=”canonical” disponibile sul centro assistenza di Google Search Console.

Come mantenere gli URL puliti e user friendly

La struttura degli URL dei siti web è diventata determinante per un buon posizionamento sui motori di ricerca.

Per questo motivo,  consiglio di utilizzare permalink che siano Search Engine Friendly, semplici da memorizzare per gli utenti, contenenti le parole chiave più importanti prima possibile, e allo stesso tempo non troppo lunghi (teniamo sempre presente che gli URL vengono visualizzati nelle SERP e sono elementi attivi per la ricerca).

.htaccess: ottimizzazione in ottica seo - struttura degli URL

.htaccess: ottimizzazione in ottica seo – struttura degli URL

Analizziamo un semplice esempio di come gli URL di un sito web possono essere resi più puliti e mnemonici.
Partiamo dalla situazione di un sito con i seguenti link:

https://www.miosito.it/chi-siamo.html
https://www.miosito.it/cosa-facciamo.html
https://www.miosito.it/la-nostra-mission.html
https://www.miosito.it/blog/come-migliorare-gli-url.html

Grazie allo snippet di file .htaccaess che vedremo, possiamo ottenere rispettivamente i seguenti URL:

https://www.miosito.it/chi-siamo
https://www.miosito.it/cosa-facciamo
https://www.miosito.it/la-nostra-mission
https://www.miosito.it/blog/come-migliorare-gli-url

Lo snippet:

RewriteBase /
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

E’ chiaro che il file .htaccess permette l’interpretazione dei nuovi URL, ma i link fisici sulle pagine web dovranno essere modificati.
Per spiegare il tutto molto semplice possiamo dire che, utilizzando questo snippet sul file .htaccess, se richiederemo da browser l’URL https://www.miosito.it/chi-siamo, visualizzeremo il file chi-siamo.html .

Nell’esempio, viene tolta l’estensione “.html” dagli URL, ma chiaramente è possibile estendere le direttive ad ogni tipo di file web.

 

Come aggiungere o eliminare la slash finale dagli URL

Ottimizzare il file .htaccess in ottica SEO - slash finale

.htaccess – slash finale

La presenza o meno della slash finale sugli URL di un sito web può creare, come visto precedentemente, un problema di contenuti duplicati: sono due link diversi che conducono al medesimo contenuto.

Anche in questo caso, il file .htaccess può risolvere il problema, fornendo le direttive per aggiungere o togliere la slash finale da tutti gli URL. La scelta di aggiungerla o toglierla non è determinante per il posizionamento: si tratta di una questione prettamente estetica.

Ecco un esempio che toglie la slash finale dagli URL:

RewriteEngine On
RewriteRule ^(.*)/$ https://%{HTTP_HOST}/$1

 

Come abilitare la compressione Gzip

La compressione dell’output è una pratica importante perché, permettendo lo scaricamento di una quantità inferiore di dati, velocizza enormemente l’apertura delle pagine web. Come sappiamo, la velocità di caricamento delle pagine web è diventato determinante per il posizionamento sui motori di ricerca ed è una pratica costante tra le attività SEO on-site.

Come funziona la compressione Gzip? Come ottimizzare il file .htaccess

.htaccess in ottica SEO – Come funziona la compressione Gzip

Il principio di funzionamento è molto semplice e si intuisce dallo schema:

  • l’utente, attraverso il browser richiede una pagina web;
  • il server trova il file e restituisce il codice di stato 200 (richiesta andata a buon fine);
  • il server invia la pagina compressa al browser;
  • il browser la decomprime e la mostra all’utente.

Chiaramente, il tempo che impiega il browser a decomprimere la pagina sarà nettamente inferiore al tempo di scaricamento di una quantità maggiore di dati.

Lo snippet di file .htaccess che segue permette di abilitare la compressione:

<IfModule mod_deflate.c>
      <IfModule mod_setenvif.c>
            BrowserMatch ^Mozilla/4 gzip-only-text/html
            BrowserMatch ^Mozilla/4\.0[678] no-gzip
            BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
            BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
      </IfModule>
      <IfModule mod_headers.c>
            Header append Vary User-Agent env=!dont-vary
      </IfModule>
AddOutputFilterByType DEFLATE text/css application/x-javascript text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon
</IfModule>


NOTE

  • La struttura indicata è stata concepita per attivare le funzionalità di compressione solo in presenza dei moduli necessari installati sul server.
  • Viene utilizzato il formato Gzip perché è particolarmente adatto al web in quanto file HTML e CSS contengono molte stringhe ripetute.

Come gestire la cache dei file

Grazie al file .htaccess possiamo definire le specifiche per la creazione della cache dei file che compongono un sito web. Il vantaggio di utilizzare tale funzionalità è la riduzione della velocità di caricamento che si otterrà.

Vediamo subito lo snippet di file .htaccess

# durata della memoria cache mensile
<FilesMatch “\.(jpg|jpeg|gif|png|ico|swf|flv)$”>
Header set Cache-Control “max-age=2592000”
</FilesMatch>

# durata della memoria cache settimanale
<FilesMatch “\.(js|css|pdf|txt)$”>
Header set Cache-Control “max-age=604800”
</FilesMatch>

# durata della memoria cache giornaliera
<FilesMatch “\.(html|htm)$”>
Header set Cache-Control “max-age=43200”
</FilesMatch>

I tre blocchi indicano i file da memorizzare in cache con le rispettive durate di memorizzazione.
Una volta scaduto il periodo di memorizzazione la cache verrà ricostruita con i dati aggiornati.
Come vediamo, la durata è variabile poiché si suppone che un file HTML sia caratterizzato da un aggiornamento più frequente rispetto ad una immagine o un filmato.

 

Come creare dei redirect 301 usando il file .htaccess

Un errore diffuso tra gli addetti ai lavori è quello di non gestire le pagine che vengono eliminate o, per qualche motivo, non più raggiungibili.
L’esempio classico è il rifacimento di un sito web che comporta la ristrutturazione dei permalink che lo compongono. Se i “vecchi permalink“, già indicizzati e presenti nelle SERP, non vengono gestiti, si andrà incontro ad una grave perdita di posizionamento sui motori di ricerca.

.htaccess - SEO - redirect 301

Gestire il redirect 301 attraverso il file .htaccess

A questo proposito, per approfondire, consiglio la lettura del post dal titolo “Mantenere il posizionamento dopo il restyling di un sito web“.

Il redirect 301 consiste proprio nel comunicare agli spider dei motori di ricerca che una pagina è stata permanentemente spostata verso un nuovo URL.

La gestione del redirect 301, è importantissima in termini di SEO.

Quella che segue è una semplice istruzione da inserire sul file .htaccess per indicare lo spostamento.

RewriteEngine On
Redirect 301 /vecchia-pagina/ https://www.miosito.it/nuova-pagina/

Se i vecchi URL sono strutturati con passaggio di parametri querystring, la regola diventa la seguente.

RewriteCond %{REQUEST_URI} ^/index.php$
RewriteCond %{QUERY_STRING} ^p1=valore1&p2=valore2&p3=valore3$
RewriteRule (.*) https://www.miosito.it/nuova-pagina/? [R=301,L]

 

Per chi utilizza WordPress, esistono plugin che permettono di realizzare il redirect 301 dei vecchi URL verso i nuovi, ad esempio Simple 301 Redirects. Tali plugin sono molto semplici da utilizzare e ne consiglio l’utilizzo solo nei seguenti casi:

  • ci sono pochi URL da gestire;
  • gli URL sono semplici (senza querystring).

Ricordiamoci che un sistema di redirect gestito da .htaccess viene fatto dal web server, e quindi sarà più performante di un redirect generato lato software (cioè da sito web).
Consiglio l’utilizzo di un redirect realizzato internamente al sito web (ad esempio in PHP) solo nel caso in cui i contenuti siano stati inseriti attraverso un’importazione massiva, e quindi siano stati salvati i vecchi URL all’interno del database.

 

Come utilizzare delle pagine personalizzate per gestire l’errore 404

L’errore 404 viene restituito dal web server quando una pagina richiesta dagli utenti attraverso il browser non viene trovata. Per quanto riguarda i siti web contenenti poche pagine la probabilità che si manifesti questo tipo di errore è molto bassa; al contrario, su siti web molto “estesi” è più facile perdere il controllo.

.htaccess - errore 404

.htaccess SEO: come gestire la pagina 404

Un  esempio classico potrebbe essere un blog che pubblica articoli da anni, in cui viene eliminato un post, o viene modificato un permalink (in questo caso sarebbe opportuno gestire un redirect 301): se dopo la modifica un utente clicca il contenuto del blog dalla SERP, la pagina non verrà trovata ed il web server restituirà un errore 404.

La gestione dell’errore 404 fa parte delle “buone pratiche” della creazione di un sito web. Anche in questo caso, le motivazioni sono:

  • l’esperienza degli utenti: non è elegante che l’utente visualizzi un messaggio di errore. E’ preferibile che esista una pagina del sito che spiega che il contenuto non è più disponibile.
  • lo spider dei motori di ricerca: il fatto che gli spider ottengano errori scandagliando le pagine potrebbe essere penalizzante per il posizionamento del sito web.

Il seguente snippet di file .htaccess permette di gestire l’errore 404 facendo visualizzare la pagina che desideriamo:

ErrorDocument 404 /pagina-di-errore-404.html 


Alcuni consigli relativi alla pagina di errore 404

  • E’ bene che la pagina abbia la stessa grafica del sito web per non disorientare gli utenti.
  • Consiglio sempre di utilizzare una pagina dinamica che cambia i contenuti ad ogni caricamento.
  • Può essere utile inserire un campo di ricerca interna, in modo che gli utenti possano cercare dei contenuti simili a quelli di interesse.
  • Facciamoci aiutare dagli utenti a migliorare! Sulla pagina di errore 404, può risultare interessante invitare gli utenti a riferirci quale contenuto non è stato trovato. Tale pratica, oltre a permetterci di correggere degli eventuali problemi, è indice di grande serietà.

Conclusioni

Come abbiamo visto, il file .htaccess possiede grandi potenzialità che vanno sfruttate. Tengo a precisare che le direttive possono variare in base alla versione del web server installata. Consiglio, quindi, di consultare la documentazione ufficiale: https://httpd.apache.org/docs/

 

2 commenti per “Come ottimizzare il file .htaccess in ottica SEO. Guida pratica.

  1. Pingback: L'importanza del file .htaccess - Andrea Martinez

  2. Pingback: Cosa sono e a cosa servono i file .htaccess - condivido.online

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *