Come ottimizzare il file .htaccess in ottica SEO

Un file .htaccess ottimizzato può fare la differenza nel posizionamento sui motori di ricerca.
Vediamo come può essere configurato per ottenere le migliori prestazioni.

 

Apache Web Server - .htaccess

Apache Web Server – .htaccess

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.

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.

 

Vediamo quali sono gli aspetti che l’ottimizzazione dei file .htaccess può aiutarci a migliorare in ambito SEO.

 

Evitare la duplicazione dei contenuti

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 ^(.*)$ http://www.miosito.it/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://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 Strumenti per i Webmaster.

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:

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

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

http://www.miosito.it/chi-siamo
http://www.miosito.it/cosa-facciamo
http://www.miosito.it/la-nostra-mission
http://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 http://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.

Ottimizzare il file .htaccess in ottica SEO - slash finale

.htaccess – slash finale

Aggiungere o eliminare la slash finale dagli URL

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 ^(.*)/$ http://%{HTTP_HOST}/$1

 

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.

.htaccess - compressione Gzip

.htaccess – 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.

 

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.

.htaccess - SEO - redirect 301

.htaccess – SEO – redirect 301

Creare dei redirect 301

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.

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/ http://www.miosito.it/nuova-pagina/

 

.htaccess - errore 404

.htaccess – errore 404

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.

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: http://httpd.apache.org/docs/

 

Loading Facebook Comments ...