WordPress – Ottimizzazione, cache e moduli con problemi


Postato in data Febbraio 15th, da Christian Cantinelli in Generale, Wordpress. 12 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.
Christian Cantinelli




12 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.

  7. Ciao aspettiamo da solo 1 anno e 5 mesi, perché le configurazioni sono dei segreti per i fornitori di hosting!
    IO uso autoptimize e WP Fastest Cache molto stabili anche in uptime robot. nel altro sito ho iniziato ad usare Super e htaccess personalizzato dato che super non lo modifica.

    • Ciao Gianluca, Autoptimize e WP Fastest Cache sono anche loro dei plugin molto affidabili.

      Da molti mesi abbiamo pubblicato nuove guide direttamente nell’area di supporto per W3TC e altri plugins che puoi trovare qui:

      https://help.serverplan.com/it/kb/articles/come-posso-ottimizzare-il-mio-wordpress-per-velocizzare-il-caricamento

      In via generale molti dei plugins di WordPress che gestiscono la cache sono perfettamente compatibili con qualsiasi hosting, l’importante è che gestiscano la cache tramite htaccess (come viene fatto da W3TC, WP Fastest Cache, WP Super Cache, etc.) per servire direttamente le pagine html cachate in modo da non passare per PHP e risparmiare tempo macchina.

      Ti ricordiamo che i nostri servizi di hosting hanno storage SSD: questo vuol dire che l’erogazione delle pagine tramite questi plugins è molto-molto veloce.

      A presto,

Lascia un commento

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

*

Shares