Come creare un file htaccess perfetto per WordPress, per migliorare al massimo le prestazioni e la velocità.

Un pò di tempo, abbiamo già visto come ottimizzare WordPress per Google Page Speed, incluso un codice da aggiungere al file htaccess molto ottimizzato, per la cache delle immagini e dei file. Ora però, vediamo come apportare alcune modifiche al file htaccess di default, rendendolo meno invasivo e migliorando ulteriormente le prestazioni di WordPress.

Un normale file htaccess, che consenta la riscrittura delle URL, si presenta in questo modo:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Questo codice, seppur funzionante, risulta essere poco ottimizzato, in quanto al caricamento  di ogni file che compone la pagina web, esegue una serie di ricerche per verificare l’esistenza del file.

Il problema diventa ancora maggiore, nel caso utilizzate un Provider Hosting, che prevede delle limitazioni di banda. In quel caso, potrebbe scattare il limite di soglia anche visualizzando poche pagine web, in quanto vengono trattate come se fossero pagine indipendenti. Tutto ciò, porta al fastidioso messaggio di errore:[alert type=”error”]Blocked by mod_slotlimit. More information about this error may be available in the server error log.[/alert]

Vediamo ora, un nuovo htaccess completamente rinnovato e migliorato per WordPress:

# BEGIN WordPress
RewriteEngine on
# Unless you have set a different RewriteBase preceding this
# point, you may delete or comment-out the following
# RewriteBase directive:
RewriteBase /
# if this request is for “/” or has already been rewritten to WP
RewriteCond $1 ^(index.php)?$ [OR]
# or if request is for image, css, or js file
RewriteCond $1 .(gif|jpg|css|js|ico)$ [NC,OR]
# or if URL resolves to existing file
RewriteCond %{REQUEST_FILENAME} -f [OR]
# or if URL resolves to existing directory
RewriteCond %{REQUEST_FILENAME} -d
# then skip the rewrite to WP
RewriteRule ^(.*)$ – [S=1]
# else rewrite the request to WP
RewriteRule . /index.php [L]
# END wordpress

Il codice suggerito, funziona correttamente per tutti i siti WordPress. E’ un suggerimento proveniente dal sito Canonical SEO, e va applicato per tutti coloro che utilizzano WP su un singolo sito. Sostituite soltanto i codici come mostrato sopra.

Quali miglioramenti porta il nuovo htaccess?

I miglioramenti apportati sono diversi, che si possono riassumere in tre voci:

  • Viene rimosso il blocco di controllo <ifmodule>, potenzialmente problematico;
  • Il codice è ristrutturato, in modo da prevenire controlli non necessari per l’esistenza di file e cartelle;

Grazie al nuovo htaccess, i tempi di caricamento delle vostre pagine diminuiranno (i benefici variano da sito a sito, a seconda del tipo di configurazione), risolverete gli eventuali problemi riguardo le limitazioni di banda e probabilmente, migliorerete di qualche punto il punteggio con Google Page Speed. Alla prossima!