{"id":25761,"date":"2026-04-17T10:00:00","date_gmt":"2026-04-17T08:00:00","guid":{"rendered":"https:\/\/soccorsowp.it\/blog\/?p=25761"},"modified":"2026-04-17T10:00:00","modified_gmt":"2026-04-17T08:00:00","slug":"configurare-caching-server-wordpress","status":"publish","type":"post","link":"https:\/\/soccorsowp.it\/blog\/configurare-caching-server-wordpress\/","title":{"rendered":"Come configurare il caching del server per WordPress"},"content":{"rendered":"<h1>Come configurare il caching del server per WordPress<\/h1>\n<p>I plugin di caching <a href=\"https:\/\/soccorsowp.it\/blog\/blocco-di-contenuti-opt-in-per-wordpress\/\">WordPress<\/a> fanno un ottimo lavoro, ma il <strong>caching a livello server<\/strong> \u00e8 su un altro piano. Funziona prima ancora che PHP venga eseguito, servendo le pagine direttamente dalla memoria del web server. Il risultato sono tempi di risposta di pochi millisecondi anzich\u00e9 centinaia. In questa guida ti spiego come configurare il <strong>caching del server per WordPress<\/strong> con Nginx FastCGI Cache, Redis Object Cache e Varnish.<\/p>\n<h2>Differenza tra caching plugin e caching server<\/h2>\n<p>Un <strong>plugin di caching<\/strong> come WP Rocket o WP Super Cache genera file HTML statici delle pagine e li salva su disco. Quando un visitatore richiede una pagina, PHP verifica se esiste una versione cache e la serve. Il processo \u00e8 veloce ma coinvolge comunque l&#8217;esecuzione di PHP.<\/p>\n<p>Il <strong>caching a livello server<\/strong> intercetta la richiesta prima che arrivi a PHP. Il web server (Nginx, Apache con Varnish) ha la pagina gi\u00e0 pronta in memoria RAM e la serve direttamente. PHP non viene mai chiamato, il database non viene interrogato. \u00c8 il livello di caching pi\u00f9 veloce possibile.<\/p>\n<p>I due livelli non sono in competizione: lavorano insieme. Il caching server gestisce le richieste ripetute, mentre il plugin di caching genera le pagine statiche e gestisce la purge intelligente della cache.<\/p>\n<h2>Nginx FastCGI Cache<\/h2>\n<p>Se il tuo server usa <strong>Nginx<\/strong> come web server (o come reverse proxy davanti ad Apache), FastCGI Cache \u00e8 la soluzione pi\u00f9 efficiente. Memorizza l&#8217;output di PHP-FPM direttamente nella memoria del server e serve le pagine senza coinvolgere PHP.<\/p>\n<p>La configurazione base richiede di aggiungere queste direttive al file di configurazione Nginx:<\/p>\n<pre># Definisci la zona di cache (nel blocco http)\nfastcgi_cache_path \/var\/cache\/nginx levels=1:2\n keys_zone=wordpress:100m inactive=60m max_size=1g;\n\n# Nel blocco server\nset $skip_cache 0;\n\n# Non cachare per utenti loggati\nif ($http_cookie ~* \"wordpress_logged_in\") {\n set $skip_cache 1;\n}\n\n# Non cachare le pagine admin\nif ($request_uri ~* \"\/wp-admin\/|\/wp-login.php\") {\n set $skip_cache 1;\n}\n\n# Attiva la cache nel blocco location ~ .php$\nfastcgi_cache wordpress;\nfastcgi_cache_valid 200 60m;\nfastcgi_cache_bypass $skip_cache;\nfastcgi_no_cache $skip_cache;<\/pre>\n<p>Questa configurazione crea una cache di massimo 1 GB che memorizza le pagine per 60 minuti. Le pagine admin e le richieste degli utenti loggati bypassano la cache, garantendo che vedano sempre il contenuto aggiornato.<\/p>\n<h2>Redis Object Cache<\/h2>\n<p><strong>Redis<\/strong> \u00e8 un database in-memory che pu\u00f2 essere usato come cache degli oggetti WordPress. A differenza del page caching che salva l&#8217;intera pagina HTML, l&#8217;<strong>object cache<\/strong> memorizza i risultati delle query al database. Questo accelera le pagine dinamiche che non possono essere servite da cache statica: il pannello admin, le pagine WooCommerce con carrello, le aree riservate.<\/p>\n<p>Per configurare Redis su WordPress:<\/p>\n<ol>\n<li>Installa Redis sul server: <span style=\"font-family: monospace\">apt install redis-server<\/span> su Debian\/Ubuntu.<\/li>\n<li>Installa l&#8217;estensione PHP per Redis: <span style=\"font-family: monospace\">apt install php-redis<\/span>.<\/li>\n<li>Installa il plugin <strong>Redis Object Cache<\/strong> dalla dashboard WordPress.<\/li>\n<li>Il plugin rileva automaticamente Redis e abilita l&#8217;object cache.<\/li>\n<\/ol>\n<p>Aggiungi in <span style=\"font-family: monospace\">wp-config.php<\/span>:<\/p>\n<pre>define('WP_REDIS_HOST', '127.0.0.1');\ndefine('WP_REDIS_PORT', 6379);<\/pre>\n<p>Redis \u00e8 particolarmente efficace per siti con molte query al database: <a href=\"https:\/\/soccorsowp.it\/blog\/woodmart-tema-woocommerce-multipurpose\/\">ecommerce<\/a>, siti con membership, forum e siti multilingua. La dashboard WordPress stessa diventa notevolmente pi\u00f9 reattiva con Redis attivo.<\/p>\n<h2>Varnish Cache<\/h2>\n<p><strong>Varnish<\/strong> \u00e8 un HTTP accelerator che si posiziona davanti al web server (Apache o Nginx) e serve le pagine dalla memoria RAM. \u00c8 usato da siti ad alto traffico come Wikipedia e molti provider di hosting managed WordPress lo includono nella configurazione di default.<\/p>\n<p>Varnish \u00e8 estremamente potente ma la configurazione (tramite il linguaggio VCL) \u00e8 complessa. Per WordPress, puoi usare configurazioni VCL pre-fatte che gestiscono correttamente il bypass per utenti loggati, pagine admin e risorse dinamiche. Il plugin <strong>Varnish HTTP Purge<\/strong> gestisce la purge automatica della cache quando pubblichi o modifichi un contenuto.<\/p>\n<h2>OPcache per PHP<\/h2>\n<p>Non \u00e8 propriamente caching delle pagine, ma <strong>OPcache<\/strong> \u00e8 essenziale per le performance di WordPress. OPcache memorizza il bytecode compilato dei file PHP in memoria, evitando la ricompilazione a ogni richiesta. Su un sito WordPress con decine di plugin, questo riduce significativamente il tempo di esecuzione PHP.<\/p>\n<p>Verifica che OPcache sia attivo nel tuo php.ini con queste impostazioni raccomandate:<\/p>\n<pre>opcache.enable=1\nopcache.memory_consumption=256\nopcache.max_accelerated_files=20000\nopcache.revalidate_freq=60<\/pre>\n<p>Queste impostazioni allocano 256 MB di memoria per il bytecode cache e rivalidano i file ogni 60 secondi. Per siti in produzione dove i file PHP cambiano raramente, puoi aumentare <span style=\"font-family: monospace\">revalidate_freq<\/span> a 300 o pi\u00f9.<\/p>\n<h2>Combinare i livelli di cache<\/h2>\n<p>La configurazione ideale per un sito WordPress ad alte prestazioni combina pi\u00f9 livelli di cache:<\/p>\n<ol>\n<li><strong>OPcache:<\/strong> accelera l&#8217;esecuzione PHP compilando il bytecode una sola volta.<\/li>\n<li><strong>Redis Object Cache:<\/strong> memorizza le query al database, velocizzando le pagine dinamiche e il pannello admin.<\/li>\n<li><strong>Nginx FastCGI Cache o Varnish:<\/strong> serve le pagine statiche direttamente dalla RAM senza coinvolgere PHP.<\/li>\n<li><strong>CDN (<a href=\"https:\/\/soccorsowp.it\/blog\/5-consigli-per-velocizzare-il-tuo-sito-web-wordpress-da-subito\/\">Cloudflare<\/a>, BunnyCDN):<\/strong> distribuisce le risorse statiche (CSS, JS, immagini) su server globali vicini ai visitatori.<\/li>\n<\/ol>\n<p>Con tutti questi livelli attivi, un sito WordPress pu\u00f2 servire migliaia di richieste al secondo con tempi di risposta inferiori a 50 millisecondi. La differenza rispetto a un sito senza caching server \u00e8 enorme: da 2-3 secondi di TTFB a meno di 50ms. Questo si traduce in una migliore esperienza utente, un bounce rate pi\u00f9 basso e un posizionamento migliore sui motori di ricerca.<\/p>\n<h2>Invalidare la cache correttamente<\/h2>\n<p>Il problema principale del caching server \u00e8 l&#8217;<strong>invalidazione<\/strong>: quando pubblichi un nuovo articolo o modifichi una pagina, la cache deve essere svuotata per mostrare il contenuto aggiornato. Ogni sistema ha il suo meccanismo: Nginx FastCGI Cache usa la direttiva purge, Redis ha il comando FLUSHDB, Varnish usa le regole di ban nel VCL. I plugin di caching come WP Rocket e LiteSpeed Cache integrano automaticamente la purge per i rispettivi server. La configurazione corretta della purge \u00e8 fondamentale per evitare che i visitatori vedano contenuti obsoleti.<\/p>\n<h2>Serve aiuto con la configurazione?<\/h2>\n<p>La configurazione del caching server richiede competenze di amministrazione di sistema. Se non hai esperienza con Nginx, Redis o Varnish, il team di <strong>SoccorsoWP<\/strong> pu\u00f2 configurare il caching ottimale per il tuo server e il tuo sito. <a href=\"https:\/\/soccorsowp.it\/ticket\/\">Apri un ticket<\/a> e porta le performance al massimo livello.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Come configurare il caching del server per WordPress I plugin di caching WordPress fanno un ottimo lavoro, ma il caching a livello server \u00e8 su&#8230;<\/p>\n","protected":false},"author":1,"featured_media":25762,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Come configurare il caching del server per WordPress","_seopress_titles_desc":"Guida al caching server per WordPress: Nginx FastCGI Cache, Redis Object Cache, Varnish e OPcache per performance massime.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","footnotes":""},"categories":[1698],"tags":[],"class_list":["post-25761","post","type-post","status-publish","format-standard","has-post-thumbnail","category-hosting-wordpress"],"_links":{"self":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts\/25761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/comments?post=25761"}],"version-history":[{"count":0,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts\/25761\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/media\/25762"}],"wp:attachment":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/media?parent=25761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/categories?post=25761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/tags?post=25761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}