{"id":25897,"date":"2026-09-23T10:00:00","date_gmt":"2026-09-23T08:00:00","guid":{"rendered":"https:\/\/soccorsowp.it\/blog\/?p=25897"},"modified":"2026-09-23T10:00:00","modified_gmt":"2026-09-23T08:00:00","slug":"ridurre-query-database-wordpress-velocizzare","status":"publish","type":"post","link":"https:\/\/soccorsowp.it\/blog\/ridurre-query-database-wordpress-velocizzare\/","title":{"rendered":"Come ridurre le query al database in WordPress"},"content":{"rendered":"<h1>Come ridurre le query al database in WordPress<\/h1>\n<p>Ogni volta che un visitatore carica una pagina del tuo sito, <a href=\"https:\/\/soccorsowp.it\/blog\/blocco-di-contenuti-opt-in-per-wordpress\/\">WordPress<\/a> esegue decine o centinaia di <strong>query al database MySQL<\/strong> per recuperare contenuti, impostazioni, dati dei plugin e metadati. Pi\u00f9 query significano pi\u00f9 tempo di caricamento e pi\u00f9 carico sul server. Ridurre le query al database \u00e8 una delle ottimizzazioni pi\u00f9 efficaci per <strong><a href=\"https:\/\/soccorsowp.it\/blog\/5-consigli-per-velocizzare-il-tuo-sito-web-wordpress-da-subito\/\">velocizzare WordPress<\/a><\/strong>, soprattutto su hosting condivisi o siti ad alto traffico.<\/p>\n<h2>Quante query esegue WordPress?<\/h2>\n<p>Un&#8217;installazione WordPress pulita esegue circa 20-30 query per pagina. Ma con temi complessi e diversi plugin attivi, il numero pu\u00f2 facilmente salire a <strong>100-300 query per pagina<\/strong>. Per vedere quante query esegue il tuo sito, aggiungi questo codice al file <span style=\"font-family: monospace\">functions.php<\/span> del tema (solo temporaneamente, per debug):<\/p>\n<pre>add_action('wp_footer', function() {\n    echo '&lt;!-- Query: ' . get_num_queries() . ' in ' . timer_stop() . ' secondi --&gt;';\n});<\/pre>\n<p>Questo mostra il numero di query e il tempo di esecuzione in un commento HTML nel codice sorgente della pagina. In alternativa, il plugin <strong>Query Monitor<\/strong> offre un pannello dettagliato con tutte le query, il tempo di ciascuna e il plugin o tema che le ha generate.<\/p>\n<h2>Identificare i plugin che generano troppe query<\/h2>\n<p>Installa <strong>Query Monitor<\/strong> e naviga le pagine del sito. Per ogni pagina vedrai:<\/p>\n<ul>\n<li>Il numero totale di query.<\/li>\n<li>Il tempo impiegato per ciascuna query.<\/li>\n<li>Il <strong>componente<\/strong> che ha generato la query (core, tema o plugin specifico).<\/li>\n<li>Le query <strong>lente<\/strong> (evidenziate) che impiegano pi\u00f9 di 0.05 secondi.<\/li>\n<li>Le query <strong>duplicate<\/strong> che vengono eseguite pi\u00f9 volte identiche.<\/li>\n<\/ul>\n<p>Spesso scoprirai che un singolo plugin \u00e8 responsabile di 30-50 query in pi\u00f9 per pagina. Se quel plugin non \u00e8 essenziale, disattivalo o cercane un&#8217;alternativa pi\u00f9 leggera.<\/p>\n<h2>Attivare l&#8217;Object Cache con Redis o Memcached<\/h2>\n<p>L&#8217;<strong>Object Cache<\/strong> \u00e8 la soluzione pi\u00f9 efficace per ridurre le query. WordPress ha un sistema di cache interno che salva i risultati delle query in memoria durante la singola richiesta. Ma con un <strong>persistent object cache<\/strong> come Redis o Memcached, i risultati vengono salvati tra una richiesta e l&#8217;altra.<\/p>\n<p>Con Redis attivo, molte query al database vengono sostituite da letture dalla memoria RAM, che sono <strong>centinaia di volte pi\u00f9 veloci<\/strong>. Il risultato tipico: da 200 query a 30-40, con un risparmio di tempo significativo.<\/p>\n<p>Per attivare Redis:<\/p>\n<ol>\n<li>Verifica che il tuo hosting supporti Redis (molti VPS e hosting gestiti lo offrono).<\/li>\n<li>Installa e attiva il plugin <strong>Redis Object Cache<\/strong>.<\/li>\n<li>Vai su Impostazioni \u2192 Redis e clicca &#8220;Abilita Object Cache&#8221;.<\/li>\n<li>Verifica che lo stato sia &#8220;Connesso&#8221;.<\/li>\n<\/ol>\n<h2>Ottimizzare le query della tabella wp_options<\/h2>\n<p>La tabella <span style=\"font-family: monospace\">wp_options<\/span> \u00e8 una delle pi\u00f9 interrogate: WordPress la legge per ogni richiesta per caricare le impostazioni del sito, dei plugin e del tema. Con il tempo, questa tabella accumula dati inutili:<\/p>\n<ul>\n<li><strong>Transient scaduti:<\/strong> dati temporanei di plugin che non vengono puliti automaticamente.<\/li>\n<li><strong>Opzioni di plugin disinstallati:<\/strong> molti plugin lasciano dati nella tabella anche dopo la disinstallazione.<\/li>\n<li><strong>Opzioni autoload inutili:<\/strong> ogni opzione con <span style=\"font-family: monospace\">autoload=&#8217;yes&#8217;<\/span> viene caricata a ogni richiesta, anche se non serve.<\/li>\n<\/ul>\n<p>Per pulire la tabella:<\/p>\n<ol>\n<li>Usa il plugin <strong>WP-Optimize<\/strong> per eliminare i transient scaduti e le opzioni orfane.<\/li>\n<li>Controlla le opzioni con autoload attivo: in phpMyAdmin esegui <span style=\"font-family: monospace\">SELECT * FROM wp_options WHERE autoload = &#8216;yes&#8217; ORDER BY LENGTH(option_value) DESC<\/span> per trovare le opzioni pi\u00f9 pesanti caricate automaticamente.<\/li>\n<li>Disattiva l&#8217;autoload per opzioni di plugin che non servono a ogni richiesta.<\/li>\n<\/ol>\n<h2>Limitare le revisioni degli articoli<\/h2>\n<p>WordPress salva ogni revisione di ogni articolo nel database. Un articolo modificato 50 volte ha 50 revisioni nella tabella <span style=\"font-family: monospace\">wp_posts<\/span>, ognuna con i rispettivi metadati. Questo gonfia il database e rallenta le query.<\/p>\n<p>Per limitare le revisioni, aggiungi a <span style=\"font-family: monospace\">wp-config.php<\/span>:<\/p>\n<pre>define('WP_POST_REVISIONS', 5);<\/pre>\n<p>Questo mantiene solo le ultime 5 revisioni per articolo. Per eliminare le revisioni vecchie, usa <strong>WP-Optimize<\/strong> o <strong>WP-Sweep<\/strong>.<\/p>\n<h2>Disattivare funzionalit\u00e0 non necessarie<\/h2>\n<p>Alcune funzionalit\u00e0 di WordPress generano query che potresti non aver bisogno:<\/p>\n<ul>\n<li><strong>Heartbeat API:<\/strong> invia richieste AJAX al server ogni 15-60 secondi nell&#8217;admin. Il plugin <strong>Heartbeat Control<\/strong> permette di ridurre la frequenza o disattivarla nelle pagine dove non serve.<\/li>\n<li><strong>Emoji:<\/strong> WordPress carica script per le emoji che generano query aggiuntive. Puoi disattivarli con un plugin di ottimizzazione o con un semplice snippet nel functions.php.<\/li>\n<li><strong>Pingback e trackback:<\/strong> se non li usi, disattivali in Impostazioni \u2192 Discussione per eliminare le query relative.<\/li>\n<\/ul>\n<h2>Usare la cache delle query nei plugin di caching<\/h2>\n<p>I plugin di caching come <strong>WP Rocket<\/strong>, <strong>FlyingPress<\/strong> e <strong>LiteSpeed Cache<\/strong> salvano l&#8217;intera pagina HTML generata. Quando la pagina \u00e8 in cache, WordPress non esegue alcuna query al database per servirla: il file HTML statico viene inviato direttamente al browser. Questo porta le query da centinaia a <strong>zero<\/strong> per i visitatori non loggati.<\/p>\n<p>Assicurati che il caching delle pagine sia attivo e funzionante per ottenere il massimo beneficio.<\/p>\n<h2>Serve assistenza?<\/h2>\n<p>Se il tuo sito WordPress \u00e8 lento a causa di troppe query al database, il team di <strong><a href=\"https:\/\/soccorsowp.it\/blog\/i-migliori-plugin-woocommerce-per-dominare-il-black-friday\/\">SoccorsoWP<\/a><\/strong> pu\u00f2 analizzare le prestazioni, identificare i colli di bottiglia e ottimizzare il database per la massima velocit\u00e0. <a href=\"https:\/\/soccorsowp.it\/ticket\/\">Apri un ticket<\/a> e velocizza il tuo sito.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Come ridurre le query al database in WordPress Ogni volta che un visitatore carica una pagina del tuo sito, WordPress esegue decine o centinaia di&#8230;<\/p>\n","protected":false},"author":1,"featured_media":25898,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Come ridurre le query al database WordPress e velocizzare il sito","_seopress_titles_desc":"Troppe query al database rallentano WordPress? Scopri come ridurle con Object Cache, ottimizzazione wp_options, Query Monitor e altre tecniche efficaci.","_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":[1699],"tags":[],"class_list":["post-25897","post","type-post","status-publish","format-standard","has-post-thumbnail","category-performance-e-ottimizzazione"],"_links":{"self":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts\/25897","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=25897"}],"version-history":[{"count":0,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/posts\/25897\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/media\/25898"}],"wp:attachment":[{"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/media?parent=25897"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/categories?post=25897"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soccorsowp.it\/blog\/wp-json\/wp\/v2\/tags?post=25897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}