Guida all’ottimizzazione della velocità di caricamento di più siti WordPress: configurazione di WPMU_OPTIONS e strategie di caching pratiche

Leggere in 3 minuti.
2026-03-16
2026-06-03
2,072
Guadagno delle commissioni quando fai acquisti tramite i link qui sotto, senza alcun costo aggiuntivo per te.

Analisi dei colli di bottiglia relativi alla performance di reti multisito su WordPress

La rete multisito di WordPress offre notevoli vantaggi per la gestione di più siti web, ma introduce anche sfide particolari in termini di prestazioni. Con l’aumentare del numero di siti presenti nella rete, le query al database, la cache degli oggetti e la lettura delle informazioni su scala di rete possono diventare fattori che influenzano negativamente la velocità di caricamento delle pagine. Tra questi, la tabella che contiene le informazioni relative alle impostazioni della rete rappresenta spesso un punto critico per il funzionamento ottimale del sistema.wp_sitemeta中的wpmu_optionsLa gestione rappresenta un aspetto fondamentale, ma spesso trascurato.

Ogni volta che una pagina viene caricata, la rete multisito di WordPress deve effettuare la lettura dei dati necessari.wpmu_optionsI setting relativi all’intervallo di rete (network range) possono influenzare notevolmente le prestazioni del sistema. Se queste opzioni non vengono memorizzate correttamente nella cache, o se contengono un gran numero di dati non necessari o serializzati, ciò può portare a un aumento del numero di query al database e a tempi di risposta più lunghi. La diminuzione delle prestazioni si manifesta in diversi modi: innanzitutto, con un aumento del carico sul server del database, a causa delle frequenti letture della stessa tabella; in secondo luogo, con un maggiore consumo di risorse CPU da parte di PHP nel processare i dati serializzati; infine, con l’occupazione di più spazio durante la trasmissione via rete e nella memoria, il che riduce l’efficienza della cache.

Comprendere la natura di questi “bottoli di vetro” (ovvero i fattori che limitano l’efficienza del sistema) è il primo passo verso l’ottimizzazione. L’ottimizzazione non consiste semplicemente nell’installare un plugin di cache, ma richiede un intervento complessivo a livello di database, codice e architettura, soprattutto in ambienti in cui ci sono più siti che condividono un database e file centrali.

Si consiglia di leggere Il piano di ottimizzazione definitivo per siti WordPress: una guida completa che spazia dalla velocità al posizionamento nei motori di ricerca

Comprendere in profondità la tabella WPMU_OPTIONS e le configurazioni di base

WPMU_OPTIONSÈ il tabellone di dati principale che memorizza le impostazioni a livello di rete all’interno di una rete multisito di WordPress. Interagisce con quelle presenti in un singolo sito.wp_optionsLe funzionalità di questo strumento sono simili a quelle di altri strumenti simili, ma il suo ambito di applicazione riguarda l’intera rete. Tutti gli impostazioni che influenzano tutti i siti presenti nella rete – come l’elenco dei plugin abilitati, il tema della rete, le impostazioni di caricamento dei file, le configurazioni di registrazione, ecc. – vengono memorizzate qui.

UltaHost – Hosting per siti WordPress
Garanzia di rimborso entro 30 giorni, larghezza di banda illimitata e accesso ai database, protezione gratuita contro gli attacchi DDoS; sconto del 50% per l’acquisto di un piano valido per 3 anni (da 3 a 4 TB di spazio di archiviazione).

Per impostazione predefinita, WordPress utilizza…get_site_option()Esistono funzioni per ottenere queste opzioni. Il problema è che, in assenza di un cache di oggetti persistenti (come Memcached o Redis), ogni chiamata alla funzione richiede di ricaricare i dati da zero.get_site_option()Verrà eseguita un’operazione di query al database in ogni caso. Per una rete multisito molto trafficata, ciò potrebbe significare migliaia di query al secondo.wp_sitemetaQuery sulle tabelle.

Un comune trappolo per le prestazioni è l’uso di grandi quantità di dati serializzati. Quando gli sviluppatori…update_site_option()Quando una funzione memorizza un array o un oggetto di grandi dimensioni, questi vengono serializzati e salvati nel database. La lettura e la deserializzazione frequenti di tali dati richiedono un notevole consumo di risorse. Pertanto, è necessario ottimizzare il processo.WPMU_OPTIONSLa chiave sta nel ridurre lo storage di dati non necessario e nell’implementare sistemi di cache efficaci.

Opzioni per l’audit e la pulizia della rete

Il primo passo nell’ottimizzazione è effettuare un’analisi approfondita della situazione attuale.wpmu_optionsQuali informazioni sono memorizzate nella tabella? È possibile ottenere queste informazioni eseguendo query SQL sul database del “sito principale” disponibile in rete, oppure utilizzando plugin dedicati alla gestione di più siti.

SELECT meta_key, LENGTH(meta_value) as value_size FROM wp_sitemeta ORDER BY value_size DESC LIMIT 20;

Questo comando SQL elencherà i 20 opzioni di rete più grandi insieme alle loro dimensioni, aiutandovi a identificare quelle che rappresentano un “carico di dati” eccessivo. Di solito, i dati temporanei scaduti, i log non eliminati o gli array di configurazione di grandi dimensioni rappresentano i principali obiettivi da eliminare. Per eliminare le opzioni ritenute inutili o scadute, è possibile utilizzare il seguente frammento di codice:

Si consiglia di leggere Guida completa all’ottimizzazione della velocità dei siti WordPress: dal principio alla pratica, la guida definitiva

// 谨慎操作:删除指定的网络选项
if (false !== get_site_option('some_large_temp_data')) {
    delete_site_option('some_large_temp_data');
}

Eseguendo regolarmente tali controlli e operazioni di pulizia, è possibile mantenere…wpmu_optionsRiduzione della complessità e aumento dell’efficienza dei tabellari.

Ottimizzare la logica di lettura e scrittura delle opzioni principali

Per quanto riguarda i dati che devono essere memorizzati…wpmu_optionsÈ fondamentale ottimizzare i modi di lettura e scrittura dei dati presenti nel sistema. È necessario evitare di aggiornare le opzioni ogni volta che la pagina viene caricata; ad esempio, non è consigliabile scrivere direttamente nei file i dati in tempo reale o i dati temporanei che cambiano frequentemente. Invece, si dovrebbe considerare l’uso di una cache in memoria come strato intermedio per gestire tali informazioni.

Per i plugin o temi sviluppati personalmente, quando si salvano le impostazioni di rete, è consigliabile adottare una strategia di salvataggio “su richiesta” (cioè salvare le modifiche solo quando necessario).update_site_option()Prima di tutto, utilizzalo.get_site_option()Acquisire il valore precedente e eseguire l’operazione di aggiornamento soltanto quando il valore effettivamente cambia: in questo modo si riducono gli scritti non necessari nel database.

hosting.com Hosting condiviso
Prestazioni elevate con CPU AMD EPYC, storage SSD NVMe e LiteSpeed, supporto interno di esperti 24 ore su 24, 7 giorni su 7, misure di sicurezza avanzate, tra cui SSL, brute force, malware e protezione DDoS, risparmi fino a 73%
$old_value = get_site_option('my_network_setting');
$new_value = calculate_new_value();

if ($old_value !== $new_value) {
    update_site_option('my_network_setting', $new_value);
}

Attuare una strategia di caching degli oggetti efficiente.

La cache degli oggetti rappresenta la pietra angolare per migliorare le prestazioni di WordPress su più siti. Conserva i risultati delle query al database, le risposte alle richieste remote e gli output di calcoli complessi in una memoria ad alta velocità; le richieste successive vengono lette direttamente dalla memoria, riducendo notevolmente il carico sul database e i tempi di elaborazione da parte di PHP.

Configurare la cache di oggetti persistenti

WordPress supporta diversi backend per il caching di oggetti persistenti; i più utilizzati sono Memcached e Redis. Nel caso di reti composte da più siti, i benefici derivanti dall’utilizzo del caching persistente sono ancora più evidenti, soprattutto a causa della maggiore quantità di dati e del numero più elevato di siti coinvolti.

Ad esempio, per Redis, è necessario installare il servizio Redis sul server, nonché l’estensione PHP per Redis. Successivamente…wp-config.phpAggiungere le configurazioni appropriate al file. Per i siti multipli, una configurazione fondamentale è l’utilizzo di un gruppo di cache globale o di una logica di switch tra i siti, al fine di garantire che le chiavi di cache siano uniche in rete e evitare che i dati vengano contaminati tra i diversi siti.

Si consiglia di leggere Come ottimizzare il database di WordPress per migliorare significativamente la velocità di caricamento del sito web.

// 在 wp-config.php 中配置Redis对象缓存
define('WP_REDIS_CLIENT', 'predis');
define('WP_REDIS_SCHEME', 'tcp');
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
// 对于多站点,建议添加一个前缀,或在代码中处理缓存组
define('WP_REDIS_PREFIX', 'my_network_');

Dopo l’installazione e l’attivazione del plugin di cache per oggetti appropriato (ad esempio, Redis Object Cache), WordPress memorizzerà automaticamente i dati in modo più veloce e efficiente.get_site_option()Custodire in cache i risultati delle query.

Caching di query di rete e elementi transitori

Oltre al caching dei dati oggettivi principali, l’API Transients di WordPress rappresenta uno strumento essenziale per lo sviluppo su più siti. I dati “transienti” sono quelli memorizzati in cache con una data di scadenza prestabilita. Per i dati che devono essere calcolati su un’intera rete, ma non richiedono un’elaborazione in tempo reale, è consigliabile utilizzare prioritariamente questo approccio.set_site_transient()get_site_transient()

Hosting condiviso InterServer
Hosting condiviso $2,50 USD al mese, primo mese $0,1 USD codice promozionale tryinterserver, 461 script di applicazioni cloud, installazione con un clic.

Ad esempio, calcolare il numero totale di utenti o di siti presenti in una rete è un’operazione relativamente lunga e richiede tempo, ma i dati non necessitano di essere aggiornati ogni secondo. È possibile memorizzarli in cache per un’ora.

function get_cached_network_site_count() {
    $count = get_site_transient('network_site_count');
    if (false === $count) {
        // 缓存不存在或已过期,执行数据库查询
        $count = get_blog_count(); // 假设这个函数较耗时
        // 缓存12小时
        set_site_transient('network_site_count', $count, 12 * HOUR_IN_SECONDS);
    }
    return $count;
}

Questo garantisce che le costose query al database vengano eseguite una sola volta all’ora, e non ogni volta che la pagina viene caricata.wpmu_optionsI dati istantanei presenti al suo interno…_site_transient_*Anche questo elemento dovrebbe essere memorizzato in cache dal server per accelerare le operazioni.

Ottimizzazione dell’-cache avanzato e del sistema di file

Oltre alla cache degli oggetti, anche la cache a livello di pagina e le ottimizzazioni del file system sono fondamentali per migliorare la velocità di caricamento dei siti multipli. Queste strategie riducono il tempo di risposta del server e il consumo di risorse da diversi punti di vista.

Configurare la cache delle pagine in modo che sia compatibile con più siti web

Il caching delle pagine (Page Caching) consente di memorizzare l’intera pagina HTML generata in anticipo; per gli utenti anonimi, viene restituita direttamente la versione statica dell’HTML, senza l’interazione con PHP o il database. Questo approccio aumenta notevolmente la velocità di caricamento delle pagine il cui contenuto non cambia frequentemente (ad esempio, articoli o pagine statiche).

Per i siti multi-sito, è necessario scegliere un plugin di cache che supporti l’attivazione tramite rete e la configurazione a livello di rete, come WP Rocket (versione commerciale), W3 Total Cache o Cache Enabler. Durante la configurazione, è importante prestare attenzione ai seguenti punti: innanzitutto, assicurarsi che il percorso della cache sia corretto (ad esempio…)./wp-content/cache/Tutti i siti della rete sono scrivibili e chiaramente separati, evitando conflitti; 2) impostare correttamente il ciclo di vita della cache, bilanciando le prestazioni e la freschezza dei contenuti; 3) configurare correttamente le regole di precaricamento della cache, assicurando che i contenuti appena pubblicati vengano generati correttamente nella cache in modo tempestivo.

Sul server Nginx è possibile implementare regole di staticizzazione più efficienti. Ecco un frammento semplificato della configurazione di Nginx, utilizzato per fornire direttamente i file HTML memorizzati in cache:

set $cache_uri $request_uri;
if ($request_method = POST) { set $cache_uri 'nocache'; }
if ($query_string != "") { set $cache_uri 'nocache'; }
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php)") {
    set $cache_uri 'nocache';
}
# 检查缓存文件是否存在
if (-f "/path/to/wp-content/cache/page_${host}${cache_uri}index.html") {
    expires max;
    add_header X-Cache-Status "HIT";
    rewrite ^ /wp-content/cache/page_${host}${cache_uri}index.html break;
}

Ottimizzazione del trattamento dei file statici e dell’upload di file

Le reti multisito solitamente contengono un gran numero di file multimediali, e ottimizzare la loro velocità di caricamento può migliorare direttamente l’esperienza utente. Prima di tutto, assicurarsi che tutti i risorse statiche (CSS, JavaScript, immagini) di ogni sito vengano distribuite tramite un CDN (Content Delivery Network). Questo può essere realizzato utilizzando plugin o modifiche specifiche al codice del sito.wp-config.phpSi può farlo utilizzando i URL presenti nei file di configurazione tematica. Ad esempio, per definire una costante relativa a un servizio CDN a livello di rete:

// 在 wp-config.php 中定义CDN域名
define('WP_CONTENT_URL', 'https://cdn.yourdomain.com/wp-content');

In secondo luogo, ottimizzare la struttura dei file caricati. La path predefinita per il caricamento di file su più siti è…/wp-content/uploads/sites/{BLOG_ID}/Assicurarsi che il file system del server sia efficiente (ad esempio, utilizzando dischi SSD) e prendere in considerazione l’opportunità di…uploadsIl directory viene montato tramite collegamenti simbolici su una partizione di archiviazione dedicata o su un servizio di archiviazione objekt-based (come Amazon S3 o Google Cloud Storage), al fine di ridurre la pressione sull’I/O del server principale.

Per le immagini, è essenziale utilizzare il caricamento differito (Lazy Load) e formati di immagine di nuova generazione, come WebP. Molti plugin di cache o strumenti dedicati all’ottimizzazione delle immagini (come ShortPixel, Imagify) supportano la conversione e l’ottimizzazione in batch a livello di rete.

Infine, non si può trascurare nemmeno la manutenzione periodica del database.wp_sitemetawp_optionsI siti web, nonché le tabelle contenenti articoli e commenti, vanno regolarmente ottimizzati (con l’operazione “OPTIMIZE TABLE”) e riparati per mantenere le migliori prestazioni delle query sul database. È necessario utilizzare strumenti di monitoraggio (come New Relic o i plugin Query Monitor) per osservare costantemente gli indicatori di prestazione, al fine di effettuare interventi mirati e efficaci.

Riassumendo

L’ottimizzazione della velocità di caricamento di una rete multisito WordPress rappresenta un progetto complesso che richiede un approccio sistematico, coinvolgendo diversi aspetti come il database, il codice sorgente, i meccanismi di caching e l’infrastruttura. L’elemento fondamentale è comprendere i fattori che influenzano la velocità di caricamento dei siti e intervenire opportunamente per migliorarli.wpmu_optionsI meccanismi di archiviazione e lettura dei dati vengono ottimizzati attraverso operazioni di controllo e pulizia dei dati, semplificazione delle strutture e miglioramento della logica di funzionamento del database, al fine di ridurne il carico. Sulla base di queste misure, l’implementazione obbligatoria di cache per gli oggetti persistenti (come Redis) rappresenta la chiave per ottenere prestazioni elevate, poiché permette di convertire le richieste di rete frequenti in operazioni di lettura dalla memoria. Inoltre, combinando strategie avanzate come il caching delle pagine, la distribuzione tramite CDN (Content Delivery Network) e l’ottimizzazione del file system, è possibile costruire un’architettura multi-sito solida ed efficiente. Ricordate che il monitoraggio, la misurazione dei parametri di prestazione e il continuo processo di ottimizzazione sono fondamentali per mantenere elevate prestazioni: non esiste una configurazione definitiva e definitiva, ma solo un percorso di miglioramento costante.

FAQ - Domande frequenti

Ottimizzare le impostazioni di WPMU_OPTIONS potrebbe influire sul corretto funzionamento degli plugin?

No. Finché le operazioni di pulizia e ottimizzazione si basano sui risultati dell’audit e vengono eliminati soltanto i dati temporanei chiaramente inutili o creati dai vostri plugin personali, non ci saranno problemi per le funzionalità principali o per gli altri plugin. Si consiglia di effettuare un’analisi preliminare prima di procedere.wp_sitemetaEsegui un backup completo del database e verifica il funzionamento del sistema in un ambiente di test. Il principio di ottimizzazione è: “Cancellare solo i dati inutili, non modificare le parti essenziali del sistema”.

Come scegliere tra Redis e Memcached per il caching in più siti?

Entrambi rappresentano soluzioni eccellenti per il caching persistente di oggetti. Redis offre una maggiore ricchezza di funzionalità, supporta la persistenza dei dati su disco e strutture di dati più complesse, ed è adatto a scenari in cui il volume di dati è molto elevato e sono necessarie funzionalità avanzate. Memcached, invece, è più semplice da configurare e potrebbe garantire un’efficienza maggiore nell’allocazione della memoria su server multi-core; rappresenta quindi una scelta classica per i cache basati esclusivamente sulla memoria. Per la maggior parte delle reti con più siti, se la memoria del server è sufficiente e non è richiesta la persistenza dei dati su disco, l’uso di uno qualsiasi dei due strumenti può portare a notevoli miglioramenti delle prestazioni. Si può iniziare con Memcached, poiché la sua configurazione è relativamente semplice.

Deve essere configurato separatamente per ogni sito web che utilizza il plugin di cache della pagina?

Dipende dal plugin utilizzato. Plugin di cache di qualità, progettati per essere utilizzati su più siti web (come W3 Total Cache), consentono di effettuare configurazioni globali tramite l’interfaccia dell’amministratore di rete e di applicarle a tutti i siti presenti nel network. Inoltre, permettono anche agli amministratori dei singoli siti di modificare alcune regole in base alle esigenze specifiche (ad esempio, escludere alcune pagine dalle configurazioni globali). Quando si sceglie un plugin, è fondamentale verificare attentamente la documentazione per assicurarsi che venga esplicitamente indicato il supporto per configurazioni a livello di intero network (“Network Wide”).

Dopo aver abilitato la cache degli oggetti, `get_site_option` continuerà comunque a interrogare il database?

Sì, ma la frequenza diminuirà notevolmente. Quando la cache degli oggetti persistenti è configurata correttamente e funziona correttamente…get_site_option()La funzione verifica innanzitutto se esiste un risultato corrispondente nella cache. Se la cache restituisce il risultato desiderato (caso di “hit”), viene restituito direttamente il valore memorizzato nella cache, senza effettuare alcuna query al database. La query viene eseguita soltanto quando la cache non contiene il dato richiesto (caso di “miss”) o quando il dato memorizzato nella cache è scaduto.wp_sitemetaDopo che la query viene eseguita, i nuovi risultati vengono automaticamente caricati nella cache, a disposizione delle richieste successive. Pertanto, le query al database avvengono soltanto quando la cache diventa invalida.