Come certamente saprai la velocità di caricamento del tuo sito/blog è molto importante , sopratutto su hosting condiviso. In questo tutorial andremo a vedere alcuni trucchi applicati a header.php e .htaccess in modo da velocizzarla fino al 50/70%.
Durante lo sviluppo di un sito web o di un blog si dovrebbe tenere in considerazione la velocità di caricamento delle pagine come un parametro molto importante se non addirittura principale per il nostro progetto. Per farti un esempio prendiamo in considerazione alcuni colossi del web:
- Per Google 500 millisecondi in più nel caricamento delle pagine causa il 20% di ricerche in meno
- Per Yahoo 400 millisecondi in più nel caricamento delle pagine causa un aumento del 5-9% del numero di persone che hanno cliccato sul tasto indietro prima che la pagina venga caricata
- Per Amazon 100 millisecondi di tempo di carico supplementare provocato un calo dell’1% delle vendite
Google fa uno sforzo continuo per cercare di rendere il web più veloce e ammette che “abbiamo deciso di prendere in considerazione la velocità del sito nella nostra classifica di ricerca” per cui la lentezza di un sito andrà ad influire nel ranking dei motori di ricerca.
Fortunatamente l’ottimizzazione della velocità di un sito web può essere fatta facilmente usando de semplici trucchi applicabili al nostro vecchio .htaccess. Con questi metodi possiamo fare in modo che il nostro sit venga caricato più rapidamente usando la compressione dei contenuti e consentendo la memorizzazione nella cache del browser. Puoi seguire le migliori tecniche e consigli direttamente da team di sviluppo di Yahoo! e non ti costa un centesimo.
Comopressione GZIP dei files
La compressione GZIP riduce i tempi di caricamento riducendo i tempi di risposta HTTP. Comprimere HTML, CSS e script, ad esclusione di files PDF in quanto già compressi, è una pratica consigliatissima per velocizzare il nostro sito quindi risparmiare anche sulla quantità di banda.
Htaccess
Server Apache
Google ha sviluppato mod_pagespeed, un modulo per Apache utile per la compressione dei files. Purtroppo al momento è disponibile solo su alcuni hosting come GoDaddy DreamHost quindi se vi appoggiate ai loro servizi vi basterà copiare il codice sottostante nel file .htaccess:
[php]
ModPagespeed on
# using commands,filters etc
[/php]
Il tuo servizio hosting non prevede il modulo mod_pagespeed…niente paura potete tranquillamente usare il caro e vecchio mod_deflate inserendo il codice che segue:
[php]
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
[/php]
Per chi utilizza un server nginx
Se usi un host su un server web Nginx copia il seguente codice nel tuo . htaccess per abilitare la compressione gzip.
[php]server {
gzip su;
gzip_types text / html text / css application / x-javascript text / plain text / xml image / x-icon;
} [/php]
Header.php
Se il server non supporta il modulo mod_deflate o mod_gzip è possibile utilizzare questo script PHP per la compressione gzip, che funziona sia su Apache e Nginx.
Basta copiare questo nel tuo tema in header.php:
[php]<!–?php if ( substr_count( $_SERVER[‘HTTP_ACCEPT_ENCODING’], ‘gzip’ ) ) { ob_start( "ob_gzhandler" ); } else { ob_start(); } ?–>[/php]
Di seguito un esempio del caricamento di un sito con e senza comprensione.
Disattivare ETags
L’eTag (entity tag), è un campo di una intestazione HTTP di risposta (protocollo HTTP 1.1). Caratterizza in genere le pagine statiche dalle pagine dinamiche. Viene utilizzato dai client per verificare se una data pagina ha cambiato i suoi contenuti indipendentemente dalla data di modifica restituita. I browser moderni ne tengono conto nelle loro politiche di gestione della cache. Anche Google e gli altri Mdr ne fanno ampio uso, per controllare se una data pagina abbia subito una varianza e prendere dunque le opportune decisioni, come per esempio evitare di ricaricare una pagina rimasta inalterata anche dopo che sia stata re-uplodata senza modifiche.
Per disabilitare ETags, incolla questo nel tuo . htacces:
[php]Header unset ETag
FileETag None[/php]
Usare la cache del browser
Con la memorizzazione nella cache del browser, istruiremo il browser ad appoggiarsi a files particolari per un periodo di tempo specificato. Quando il file è richiamato più volte, il browser lo richiama dalla cache locale invece di fare una nuova chiesta al server. La memorizzazione nella cache del browser di un sito web è sicuramente molto più pratica e richiede sicuramente meno risorse facilitando il risparmio sulla larghezza di banda.
Cache nei server Apache
Apache mod_expires e mod_header.
Il modulo mod_expires controlla l’impostazione di Expires HTTP o Cache-Control controllano la direttiva max-age riguardante il tempo di validità di una risorsa, il periodo in cui il browser potrà usare una risorsa riposta in cache senza controllare se ve n’è una più aggiornata disponibile nel web server. Per modificare le direttive Cache-Control da max-age, è possibile utilizzare il modulo mod_headers.
Il mod_header fornisce le direttive per controllare e modificare le richieste HTTP e intestazioni di risposta che possono essere unite, sostituite o rimosse.
Aggiungi a queste regole ad . htaccess per impostare gli Expires headers:
[php] # BEGIN Expire headersExpiresActive On
ExpiresDefault "access plus 5 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"
Aggiungi a queste regole ad <strong>. htaccess</strong> per impostare Cache-Control header:
# END Expire headers[/php]
[php] # BEGIN Cache-Control Headers
Header set Cache-Control "public"
Header set Cache-Control "public"
Header set Cache-Control "private"
Header set Cache-Control "private, must-revalidate"
# END Cache-Control Headers[/php]
NOTE:
- Non c’è bisogno di impostare la direttiva
max-age
con l’intestazione Cache-Control, in quanto è già impostata dal modulomod_expires
. - must-revalidate significa che una volta una risposta diventa stantio deve essere rinnovata, ma non vuol dire che deve essere controllato ogni volta.
Per i server ngnix
Le impostazioni . htaccess Nginx sono simili a queste:
(L’esempio di seguito avrebbe impostato nel browser del vostro utente HTML, CSS, Javascript, immagini e favicon per un’ora)ìRidurre la dimensione del datbase MySQL
[php]location ~* \.(jpg|png|gif|jpeg|css|js)$ {
expires 1h;
} [/php]
Ridurre la dimensione del database MySQL
Dalla versione WordPress 2.6, gli articoli vengono salvati in automatico durante la scrittura e rimangono come revisione nel database MySQL anche dopo che questo viene salvato (quindi spazio e banda sprecata nel DB). Una possibilità consiste di disabilitare le revisione procedendo come descritto sotto.
Apri il file wp-config.php che trovi nella root del sito e inserisci alla fine questa stringa di codice, se si decide di mantenere la funzione di revisione per un numero fisso di giorni, basterà sostituire false con con un qualsiasi numero es. 10.
[php]define(‘WP_POST_REVISIONS’, false );[/php]
Fonte: WPTutsplus