WordPress – Ottimizzazione, cache e moduli con problemi


Postato in data febbraio 15th, da Christian Cantinelli in Generale, Wordpress. 8 comments

Molti nostri clienti utilizzano l’ormai diffusissimo WordPress come cms per gestire il proprio sito/blog.

Nella nostra esperienza maturata in questi anni, siamo riusciti a stilare per i nostri clienti un elenco dei migliori plugin per ottimizzare al massimo le prestazioni di wordpress (sfruttando anche caching di pagine e query sul database).

Oggi presentiamo due plugin per ottenere i migliori risultati nella creazione di una cache e rendere così ancora più veloce il caricamento delle pagine.

WP Super Cache

WP Super Cache permette di abilitare un motore di caching molto avanzato, che si integra perfettamente in tutto il core di wordpress.

L’installazione è molto semplice e sono richiesti pochi minuti per la configurazione. Una volta installato, vai nella pagina Impostazioni -> WP Super Cache.  Cliccando sulla scheda “Avanzato” procederemo ad una configurazione ottimizzata.

Spuntiamo le seguenti voci:

  • Cache hit di questo sito per accesso rapido. (Raccomandato)
  • Utilizza mod_rewrite per servire i file in cache. (Raccomandato)
  • Compressione delle pagine in modo che esse siano servite più rapidamente ai visitatori. (Raccomandato)
  • Rigenerazione cache. Serve un file supercache agli utenti anonimi quando un nuovo file é stato generato.(Raccomandato)
  • Extra homepage checks. (Very occasionally stops homepage caching) (Raccomandato)
  • Ricarica la sola pagina in uso quando vengono effettuati dei commenti.

Tutto il resto delle opzioni nella sezione possono essere disabilitate. Salviamo cliccando su “Aggiorna stato“.  Fatto questo, tornando nella stessa pagina, scorriamo fino alla sezione “Regole Mod Rewrite“. Qui clicchiamo su “Aggiorna le regole di Mod_Rewrite“. Il plugin riscriverà il file .htaccess principale in un modo simile a questo:

# BEGIN WPSuperCache
RewriteEngine On
RewriteBase /
AddDefaultCharset UTF-8
RewriteCond %{REQUEST_URI} !^.*[^/]$
RewriteCond %{REQUEST_URI} !^.*//.*$
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{QUERY_STRING} !.*=.*
RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress_logged_in|wp-postpass_).*$
RewriteCond %{HTTP:X-Wap-Profile} !^[a-z0-9\"]+ [NC]
RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz -f
RewriteRule ^(.*) "/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html.gz" [L]
RewriteCond %{REQUEST_URI} !^.*[^/]$
RewriteCond %{REQUEST_URI} !^.*//.*$
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{QUERY_STRING} !.*=.*
RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress_logged_in|wp-postpass_).*$
RewriteCond %{HTTP:X-Wap-Profile} !^[a-z0-9\"]+ [NC]
RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html -f
RewriteRule ^(.*) "/wp-content/cache/supercache/%{HTTP_HOST}/$1/index.html" [L]
# END WPSuperCache
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Per fare tutto questo, chiaramente, dovremmo avere sul server fastcgi (o suphp) oppure il chmod a 777 per il file .htaccess e la cartella wp-content/cache/ (sui server Serverplan abbiamo fastcgi, pertanto non c’è bisogno di impostare manualmente i permessi di scrittura).

D’ora in poi, alla prima richiesta di una pagina pubblica da parte di un utente web, apache cercherà il file con lo stesso nome nella cartella wp-content/cache/. Se esiste, restituisce direttamente questo file “statico” senza passare per il motore di wordpress (risparmiamo CPU e RAM tra mysql e php) altrimenti genera la pagina statica facendo una sola volta le richieste a php/mysql. Il guadagno in termini di risorse e tempo sono enormi.

DB Cache Reloaded Fix

DB Cache Reloaded Fix: in aggiunta al plugin precedente, sarebbe ottimo installare questo plugin per gestire una cache anche per le query che effettua il core di wordpress su MySQL.

La configurazione è semplicissima: una volta installato andiamo in Impostazioni -> DB Cache Reloaded e abilitiamo l’opzione “Abilita“. Clicchiamo su “Salva” ed è già funzionante! Davvero molto facile.

Per verificare il funzionamento di entrambe i plugin, andiamo su una qualunque pagina del nostro blog (anche l’homepage va bene). Visualizziamo il sorgente (CTRL + U su firefox) e verifichiamo che all’interno dell’html ci siano questi due commenti:

 

(I dati indicati sono solo esempi) Questa verifica ci indica che i due plugin stanno funzionando correttamente e il sito è perfettamente ottimizzato.

Problemi su alcuni plugin

Abbiamo riscontrato dei problemi di carico con qualche plugin che alcuni clienti hanno installato nel proprio blog. In particolare il plugin YARPP (Yet Another Related Posts) sta creando notevoli problemi sulle query MySQL che effettua. Consigliamo pertanto di disabilitarlo o di installare la versione 3.0 su cui è stata introdotta l’integrazione della cache con WP Super Cache. Riportiamo la FAQ direttamente dal sito dello sviluppatore:

<em>Does YARPP slow down my blog/server?</em>
A little bit, yes. However, YARPP 3.0 introduced a new caching mechanism which greatly reduces the hit of the computationally intensive relatedness computation. In addition, I highly recommend all YARPP users use a page-caching plugin, such as WP-SuperCache.

Se abbiamo un database particolarmente grande, possiamo ottimizzare il plugin impostandolo come segue:

- turning off "cross relate posts and pages";
- turning on "show only previous posts";
- not considering tags and/or categories in the Relatedness formula;
- not excluding any tags and/or categories in The Pool.

Christian Cantinelli

Service Manager at Server Plan s.r.l.
Sono il responsabile dell'area di supporto tecnico SP. Coordino i tecnici gestendo criticità, priorità e il rapporto con i clienti.




8 commenti su “WordPress – Ottimizzazione, cache e moduli con problemi

  1. Richiede la modifica dei permalink…….. secondo gli sviluppatori io mi dovrei perdere tutti i “mi piace” di un articolo (a volte sono anche 2/3000 mi piace per articolo) perchè per far funzionare questo PLUGIN da due soldi bisogna modificare il permalink???
    Ma fatemi il piacere!

  2. Bell’articolo!
    Grazie delle preziose informazioni.

    Quali sono i “commenti” che dovrebbero essere presenti all’interno dell’html per verificare il funzionamento corretto del plugin?

    Grazie

  3. ciao, grazie per l’articolo!
    ho un problema con wp super cache.

    mi genera il seguente errore:
    Permlink Structure Error

    A custom url or permalink structure is required for this plugin to work correctly.
    Please go to the Permalinks Options Page to configure your permalinks.

    potete aiutarmi perfavore?

  4. Ciao, ottime informazioni grazie.
    Una domanda in merito al riferimento dei database molto grandi: quando un database può essere definito tale?
    Io per esempio adesso ho circa 600 articoli

    grazie mille

  5. Salve, nella vostra guida menzionate un plugin che è vecchio e non più supportato : DB Cache Reloaded Fix .

    Se volete che la gente usi i vostri accorgimenti almeno aggiornate la guida con qualcosa che sia compatibile e non che rischi di far andare a gambe all’aria il lavoro altrui.

  6. Per l’installazione su configurazioni WP+WC la guida è inutilizzabile creando noti problemi con i carrelli dinamici, una guida a W3 total cache sarebbe più utile essendo un plug molto più flessibile e “adattabile” alle diverse esigenze.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*

Shares