Velocizzare un sito e fare SEO tramite .htaccess

Utile anche per i siti creati con i CMS come WordPress


Autore: Andrea Pacchiarotti
Ultimo aggiornamento: 15 Aprile 2018
Categoria: SEO .htaccess

.htaccess

In questo articolo verrà analizzato il file .htaccess per il SEO di un sito web suggerendo qualche consiglio generale per migliorare la performance delle proprie pagine con un accenno specifico anche per WordPress.

Indice Velocizzare un sito e fare SEO tramite .htaccess
  1. Cos’è un file .htaccess
  2. Creare un file .htaccess in Windows
  3. Abilitare la compressione GZip su Aruba
  4. Abilitare la cache del browser
  5. Impostare la versione di PHP più performante
  6. Evitare la duplicazione dei contenuti
  7. Mantenere gli URL user friendly
  8. Eliminare la slash finale dagli URL
  9. Creare redirect 301
    1. Dominio preferito e redirect 301
  10. Pagine personalizzate per l’errore 404
  11. Il file .htaccess su WordPress
  12. Velocizzare un sito: altri consigli
  13. Conclusioni

Cos’è un file .htaccess

Il file .htaccess (acronimo di Hypertext Access) è un file di testo (editabile quindi anche con Blocco note) contenente direttive del webserver Apache per configurare comandi che riguardano directory (ad esempio consentendone l’accesso tramite password), file, gestione degli errori, scelta della versione PHP, creazione di messaggi d’errore personalizzati, reindirizzamenti www (utile quando gli utenti digitano l’indirizzo URL senza il classico www, per cui è necessario redirezionare tutto il traffico diretto al sito senza www al corrispondente www o viceversa), protezione delle immagini dall’hotlink (l’hotlinking è la possibilità che terzi integrino nel proprio sito immagini provenienti da altri siti, indicandone l’URL; un’operazione che crea problemi al sito che ospita l’immagine originale per l'occupazione di banda con conseguente rallentamento) ed altro.
Un file .htaccess lavora all’interno della cartella nella quale si trova, quindi se posizionato nella root del servizio hosting, interviene su tutto il sito, a meno che ciascuna sottocartella non disponga di un proprio file .htaccess.
Il file è .htaccess e non .htaccess.html o .htaccess.txt.
È estremamente importante fare il backup di un eventuale .htaccess già presente perchè già un solo errore di sintassi potrebbe compromettere l’intero sito; così in caso di problemi si potrà ripristina l'.htaccess originale.

Creare un file .htaccess in Windows

Rinominare un file htaccess.txt in .htaccess su Windows fallisce poiché su tale OS non è possibile creare file che iniziano con il punto e senza estensione in quanto il sistema operativo considera la parte a destra del punto un’estensione e deduce l’omissione del nome. Procedere allora nel seguente modo:
se non visibili, mostrare le estensioni dei file (per Windows 10 aprire Esplora risorse e, nella scheda Visualizza, mettere il segno di spunta su Estensioni nomi file)
rinominare il file in .htaccess. (con il punto alla fine) selezionando anche l'estensione e dare il consenso alla finestra che Windows aprirà, in tal modo il file sarà rinominato in .htaccess: inserendo il punto alla fine del nome Windows penserà che il nome del file sia .htaccess e dato che i nomi di file senza estensione sono consentiti, Windows eliminerà l'ultimo punto facendo ottenere il risultato desiderato. 

Una volta caricato il file .htaccess potrebbe non funzionare, poiché non tutti gli hosting provider ne consentono l’utilizzo o perché è necessario rendere il file eseguibile, agendo sui permessi e impostandoli sul valore 755.

Abilitare la compressione GZip su Aruba

GZip è il metodo di compressione più utilizzato in Rete per i file JS, CSS, HTML ecc. e permette di ottimizzare i tempi di risposta consentendo lo scaricamento di una quantità minore di dati e velocizzando l’apertura delle pagine.

Per abilitare la compressione GZip (Enable Gzip Compression) si deve aggiungere nel file .htaccess il codice sottostante che permette di configurare  il modulo mod_deflate disponibile da Apache 2.x, in sostituzione del modulo mod_gzip (le righe che cominciano con # sono dei commenti e non inficiano il resto del codice):

# Compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript


Se già non attivato dal provider è anche utile intervenire manualmente sulla compressione lato server, ad esempio in Aruba basta andare in Pannello di controllo, Hosting Linux, Gestione Hosting Linux, poi su Strumenti e Impostazioni ed infine su Personalizzazione del file PHP.INI, poi su zlib.output_compression e impostare la levetta su On

Abilitare la cache del browser

Attivando la cache del browser (browser caching) è possibile specificare per quanto tempo il browser dei visitatori deve consultare i file che ha in cache prima di scaricarli nuovamente dall’hosting. In quest’esempio le immagini, i file JavaScript, i CSS ed i file in Flash hanno una scadenza di 30 giorni (2.592.000 seconds), dopo i quali il browser deve scaricarli nuovamente dal server, senza interrogare la cache. Il vantaggio di tale funzionalità è la riduzione del tempo di caricamento delle pagine.

# Add Caching.
<FilesMatch ".(ico|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

In quest'altro esempio la durata è variabile poiché si suppone che un file HTML abbia un aggiornamento più frequente rispetto ad altre risorse:

<FilesMatch “\.(jpg|jpeg|gif|png|ico|swf|flv)$”>
Header set Cache-Control “max-age=2592000”
</FilesMatch>
<FilesMatch “\.(js|css|pdf|txt)$”>
Header set Cache-Control “max-age=604800”
</FilesMatch>
<FilesMatch “\.(html|htm)$”>
Header set Cache-Control “max-age=43200”
</FilesMatch>

Impostare la versione di PHP più performante

Anche la versione di PHP che si usa può influenzare le prestazioni del proprio sito web, per cui è sempre meglio utilizzare l'ultima versione di PHP disponibile dopo essersi assicurati che sia compatibile al 100% con gli script che utilizzati sul sito (plugin e temi WordPress ad esempio).
Questa operazione è possibile farla lato server, intervenendo sull'hosting di proprietà. Ad esempio su Aruba bisogna andare in Pannello di controllo, Hosting Linux, Gestione Hosting Linux, poi su Strumenti e Impostazioni ed infine su Scelta della versione PHP.

Evitare la duplicazione dei contenuti

Se un sito non gestisce le Pagine Canoniche, si rischia la duplicazione di contenuti. L’homepage può essere raggiunta tramite svariati indirizzi: www.sito.it, sito.it, sito.it/index.html, www.sito.it/index.html, va allora data una regola che dica quale tra queste è l’URL canonica (ufficiale) per non essere penalizzati dai motori di ricerca.
Il problema può essere risolto utilizzando  link rel=”canonical” nell’<head> delle pagine e con il seguente snippet nell’.htaccess:

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

Ecco la nota di Google su rel=”canonical”.

Mantenere gli URL user friendly

L’URL è importante per migliorare il posizionamento sui motori di ricerca: dev’essere breve, semplice con la keyword all’inizio.
Ad esempio: https://www.sito.it/chi-sono.html, https://www.sito.it/cosa-faccio.html, ecc. possono essere ripuliti da .html attraverso lo snippet:

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

Eliminare la slash finale dagli URL

La presenza o meno della slash finale sugli URL di un sito web crea due link diversi che portano allo stesso  contenuto. L’aggiunta o meno non è determinante per il posizionamento, ma è una questione estetica. Il codice per toglierla è:

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

Creare redirect 301

Un errore comune è di non gestire le pagine che vengono spostate, ciò causerà una penalizzazione da parte dei motori. Il redirect 301 comunica agli spider che una pagina è stata permanentemente spostata verso un nuovo URL.
Ecco il codice per indicare lo spostamento.

RewriteEngine On
Redirect 301 /vecchiapagina/ https://www.sito.it/nuovapagina/
Se c’è passaggio di parametri querystring, la regola diviene:
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteCond %{QUERY_STRING} ^p1=valore1&p2=valore2&p3=valore3$
RewriteRule (.*) https://www.miosito.it/nuova-pagina/? [R=301,L]

Dominio preferito e redirect 301

Il dominio preferito, detto anche canonico, è quello che si desidera venga usato per indicizzare le pagine del proprio sito nei risultati di ricerca. Un backlink può rimandare ad un sito sia con la versione www (http://www.sito.it) che non www dell'URL (http://sito.it).
Se si indica http://www.sito.it come dominio preferito e viene rilevato un link al proprio sito nella forma http://sito.it, Google seguirà tale link come http://www.sito.it. Se nella Search Console il proprietario non specificherà un dominio preferito, Google potrà trattare le versioni www e non www del dominio come pagine distinte. Effettuata la modifica bisognerà attendere una nuova indicizzazione di tali pagine.

L’Hostname Mirror, ovvero la possibilità che un dominio venga raggiunto sia inserendo che omettendo il prefisso www nell’URL, www.sito.it vs miosito.it, conduce ad un problema di indicizzazione poiché lo spider di Google impiegherà un tempo doppio a scandire le pagine del sito se non riconosce subito le due URL come sede degli stessi contenuti; le linee guida di Google riportano infatti: “Se non specifichi un dominio preferito, potremmo trattare le versioni www e non www del dominio come riferimenti distinti a pagine distinte“.
Inoltre il contenuto dei due hostname potrebbe venir etichettato come duplicato, con conseguenze non indolori, dato che Google non apprezza i contenuti duplicati.
Oltre a ciò i backlink guadagnati potrebbero essere suddivisi tra i due host dal motore di ricerca e ciò porterebbe ad un posizionamento peggiore in SERP.
È quindi importante indicare un dominio preferito e per farlo occorrono 3 passaggi:

1 - Specificare un dominio preferito

È necessario verificare la proprietà di ambedue le versioni www e non www del proprio dominio per dimostrare che l’utente è il proprietario di entrambe. In genere, una volta verificata una versione del dominio, Google può facilmente verificare l'altra con il metodo di verifica originale (se non è stato rimosso il file, il meta tag o il record DNS di verifica).

  1. Nella home di Search Console, cliccare il sito desiderato.
  2. Cliccare sull'icona ingranaggio e poi su Impostazioni sito.
  3. In Dominio preferito, selezionare l'opzione preferita.

Impostare il dominio preferito

2 - Applicare un Redirect 301 

Una volta impostato il proprio dominio preferito, è necessario usare un redirect 301 per reindirizzare il traffico dal proprio dominio non preferito, in modo che motori di ricerca e visitatori sappiano qual è la propria versione privilegiata.
I redirect 301 sono particolarmente utili quando gli utenti accedono ad un sito tramite diversi URL. Quindi se la propria home è raggiungibile in più modi è meglio impostare uno di questi URL come preferito (canonico) e usare il reindirizzamento 301 per trasferire il traffico dagli altri URL a quello preferito.
Ad esempio per applicare un redirect 301 per i siti web ospitati su server Apache da non www a www, bisogna inserire il seguente codice in .htaccess:

//Rewrite to www
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^andreapacchiarotti.it[nc]
RewriteRule ^(.*)$ http://www.andreapacchiarotti.it/$1 [r=301,nc]

Se il proprio sito è ospitato su un server che esegue un altro software, contattare il proprio hoster per informazioni

3 - Indicare l'URL preferito con l'attributo canonical

Indicare nelle pagine del proprio sito l'URL preferito con l'elemento link rel="canonical"
Supponiamo che si desideri impostare https://www.sito.it come URL preferito, anche se è possibile accedere a questi contenuti tramite una serie di URL. È possibile indicare questa preferenza ai motori di ricerca eseguendo il markup nell’head della pagina canonica con il tag link e l’attributo rel="canonical" come nell’esempio seguente: 

<link rel="canonical" href="https://www.andreapacchiarotti.it" />

Ecco una lista degli status code.


Pagine personalizzate per l’errore 404

L’errore 404 denota che una pagina richiesta dal navigatore non viene trovata perché probabilmente è stata eliminata. Questo snippet gestisce l’errore 404 mostrando una determinata pagina con la medesima grafica del sito ed eventualmente con un piccolo form che permetta all’utente di scrivere quale sia il contenuto mancante:

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

Il file .htaccess su WordPress

Se l’installazione scelta per il proprio sito non prevede un file .htaccess andrà chiaramente prima creato con un qualsiasi editor, anche Blocco note, e poi caricato sul sito cliccando il pulsante Carica nel cPanel. Successivamente sarà possibile editarlo  direttamente da cPanel o scaricarlo e modificarlo nel proprio computer per poi rimetterlo nel server. Se si utilizza cPanel, bisogna andare su File / FileManager e, scegliendo di visualizzare i file nascosti, andare nella root del sito, cliccare sul file .htaccess, selezionare Modifica, modificare e cliccare su Salva.
Se si è in possesso del plugin Yoast SEO, è possibile usarlo per modificare il file .htaccess dalla Bacheca cliccandosul menu SEO nella barra laterale. Se l’opzione Strumentinon si vede, cliccare su SEO per mostrare il menu e poi su Bacheca per aprire la scheda Funzionalità. Abilitare l’opzione Pagine delle impostazioni avanzatee confermare.Cliccaresu Strumenti e modificare il file .htaccess.

Velocizzare un sito: altri consigli

Ovviamente questi sono solo alcuni accorgimenti, l’ottimizzazione di un sito web richiede diverse competenze e numerosi aspetti da analizzare, dall’uso oculato del codice alla scelta del piano hosting migliore per le proprie esigenze.  
In ogni caso adottando le suddette strategie, tanto meno un sito è stato precedentemente ottimizzato sul lato della velocità di caricamento, tanto più il loro uso inciderà positivamente.
Se pensi di non essere in grado di affrontare tali problematiche, richiedimi un’analisi SEO gratuita del tuo sito web: un servizio studiato per i titolari di pagine internet che vogliono sapere quanto e se il proprio sito è ottimizzato per i motori di ricerca o avere un parere sull’attività SEO svolta dallo sviluppatore. Tale attività produce un report personalizzato con l’attuale percentuale di ottimizzazione, le macro aree di intervento ed un preventivo per le soluzioni da implementare.

Conclusioni

Sfruttare le potenzialità del file .htaccess è un obbligo e può evitare penalizzazioni al sito.
Un sito non ottimizzato provoca perdita del traffico, meno conversioni e quindi... meno guadagni

Potrebbe interessarti anche l'articolo su Come creare un sito web professionale

Dal seguente link scarica i codici per abilitare la compressione e la cache del browser

Per ricevere nella tua mail tips and tricks, ovvero suggerimenti e trucchi su Microsoft Office e Web in generale iscriviti gratuitamente alla newsletter


Richiedi un preventivo gratuito

Consento il trattamento dei dati personali ai sensi del GDPR 2016/679 - Privacy policy