Velocizzare un sito e fare SEO tramite #.htaccess

Non solo per WordPress

Autore: Andrea Pacchiarotti
Ultimo aggiornamento: 15 Marzo 2023
Categoria: Web Marketing SEO .htaccess

.htaccess
#ECDL: funzioni Microsoft Excel

In questo articolo verrà analizzato il file .htaccess, molto importante anche per l'ottimizzazione per i motori di ricerca (SEO) di un sito web, suggerendo qualche consiglio generale per migliorare la performance delle proprie pagine con un accenno specifico anche per WordPress.
Il file .htaccess è un file di configurazione utilizzato su molti server web per specificare le regole di configurazione del sito web in modo più dettagliato rispetto alle impostazioni di default del server. Le regole contenute nel file .htaccess possono essere utilizzate per eseguire diverse operazioni, come reindirizzare le richieste di pagina, limitare l'accesso a determinate directory, impostare regole di autenticazione, abilitare la compressione dei dati, proteggere il sito da attacchi informatici e molto altro ancora.
Curioso su come velocizzare un sito e fare SEO tramite .htaccess? Continua la lettura!

Sommario 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 slash finale dagli URL
  9. Creare redirect 301
    1. Dominio preferito e redirect 301
  10. Pagine personalizzate per l’errore 404
  11. File .htaccess su WordPress
  12. Velocizzare un sito web: altri consigli
  13. Strumenti per .htaccess
  14. 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 bandacon conseguente rallentamento) e 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:

Una volta caricato il file .htaccess, in casi particolari, potrebbe non funzionare, poiché non tutti gli hosting provider ne consentono l’utilizzo 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, Personalizzazione del file PHP.INI, infine 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, e i CSS 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)$">
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 usati 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 e 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 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 301vecchiapagina/ 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 a un sito sia con la versione www (www.sito.it) che non www dell'URL (sito.it).
Se si indica www.sito.it come dominio preferito e viene rilevato un link al proprio sito nella forma sito.it, Google seguirà tale link come www.sito.it. Se in Google 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 a 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
Screenshot di Google
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. Invece per saperne di più sui reindirizzamenti 301 leggi Redirect 301: come usarlo


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 404pagina-di-errore-404.html

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 cliccando sul menu SEO nella barra laterale. Se l’opzione Strumenti non si vede, cliccare su SEO per mostrare il menu e poi su Bacheca per aprire la scheda Funzionalità. Abilitare l’opzione Pagine delle impostazioni avanzate e confermare. Cliccare su Strumenti e modificare il file .htaccess.

Velocizzare un sito web: 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.

Strumenti per .htaccess

Ecco degli strumenti online gratuiti utili allo scopo:

Redirect per CMS
Esistono plugin che permettono di effettuare dei redirect senza apportare modifiche al file .htaccess. Per WordPress Redirection, per Joomla! REDJ.

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.
Se Velocizzare un sito e fare SEO tramite #.htaccess ti è piaciuto, condividi l'articolo!

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


Per saperne di più sul Web Marketing potrebbero interessarti questi libri:

Se vuoi approfondire alcuni dei temi trattati, visita la pagina con le mie pubblicazioni cartacee e online

Se l'articolo ti è piaciuto, condividilo!

Segui l'hashtag #AndreaPacchiarotti