La cache di SiteGround è sicuramente uno dei motivi che ha decretato il successo di questo hosting service provider.
Questo meccanismo infatti permette di velocizzare in maniera rilevante la risposta da parte del server ad una richiesta eseguita dall’utente.
In questo articolo analizzerò il funzionamento del meccanismo di caching di SiteGround.
Inoltre, ti mostrerò due metodi per disabilitare questo meccanismo in maniera selettiva, in base all’indirizzo della pagina richiesta.
Indice
Cache SiteGround: il funzionamento
Il funzionamento della cache di SiteGround è schematizzato nell’immagine sottostante.
Dal nodo Web Server in poi il funzionamento è analogo a qualunque installazione WordPress standard.
SiteGround Dynamic Caching è un sistema di caching basato su nginx che permette di salvare e servire contenuti molto più velocemente di quanto farebbe WordPress.
I casi in cui la cache viene ignorata
Il sistema di caching può venir ignorato in funzione di tre fattori:
- Cookies
- URL richiesto
- Headers HTTP
Nel seguito ogni fattore verrà analizzato nel dettaglio.
Cookies
Se almeno uno dei seguenti cookies è presente, la richiesta non viene servita dalla cache di SiteGround.
- wordpress_logged_in_
- yith_wcwl_products
- wp-postpass_
- edd_items_in_cart=1
- it_exchange_session_
- wp_woocommerce_session
- woocommerce_cart_hash
- woocommerce_items_in_cart=1
- Drupal.visitor.name
- drupalSGCacheBypass=1
- jSGCacheBypass=1
- wpSGCacheBypass=1
URL richiesto
Se l’URL richiesto ha un match parziale o totale con uno dei seguenti indirizzi, tale richiesta non verrà servita dalla cache di SiteGround.
- wp-login
- preview=true
- cart
- my-account
- checkout
- addons
- add-to-cart
- wp-cron.php
- xmlrpc.php
- contact
- task=registration
- task=register
- view=registration|administrator|remind|login
- admin/content/backup_migrate/export
- status.php
- update.php
- install.php
- user
- info
- flag
- ajax
- aha
Headers HTTP
Impostando uno dei seguenti headers nella risposta della propria applicazione, si comunica a SiteGround Dynamic Caching come operare la cache contestualmente alla richiesta contenente gli headers.
- cache-control: no-cache – impostando questo header la richiesta non verrà salvata mai nella cache
- cache-control: max-age – impostando questo header la richiesta verrà salvata nella cache per X secondi
Ad esempio, se si volesse fare in modo che una richiesta servita da PHP venisse salvata in cache per un’ora, si potrebbe utilizzare il seguente codice:
<?php header("Cache-Control: max-age=3600"); ?>
Disabilitare la cache con SiteGround Optimizer
SiteGround ha sviluppato il plugin SiteGround Optimizer, me gestire in maniera facilitata la gestione della cache.
Questo plugin permette, tra le altre cose, di impostare dei URL per i quali la cache venga ignorata.
Utilizzando il carattere ‘*’, è possibile escludere intere sezioni di un sito.
Ad esempio, impostando l’esclusione per l’indirizzo
/category/*
si escluderebbero dalle cache le pagine disponibili ai seguenti indirizzi
/category/un-indirizzo /category/2021/07/19/qualcosa
Disabilitare la cache con .htaccess
E’ possibile escludere una o più pagine del sito dalla cache anche utilizzando il file .htaccess disponibile nella root del sito.
Inserendo il seguente codice
<If "%{THE_REQUEST} =~ m#/category/.*#"> <IfModule mod_headers.c> Header set Cache-Control "private" </IfModule> </If>
si escludono tutte le pagine che hanno un indirizzo che iniziano con /category/.
Dopo aver salvato le modifiche al file .htaccess, devi rimuovere la cache dinamica, seguendo il percorso Site Tools -> Speed -> Caching -> Dynamic Cache -> Flush Cache.
Conclusioni
In questo articolo hai visto è strutturato il sistema di caching di SiteGround.
Inoltre, hai appreso diversi modi per escludere dal sistema di caching uno o più indirizzi di un sito ospitato su SiteGround.
Le informazioni contenute in questo articolo provengono dalla guida di SiteGround per la configurazione della cache.