Come ottimizzare WordPress per la velocità senza plugin (La guida solo codice)

Pubblicato il | Da Siteskyline
6 min di lettura

If you’re reading this, you’re likely tired of the consigli standard sulle prestazioni di WordPress. The usual routine—installing WP Rocket, adding an image optimizer plugin, and throwing in an asset manager—often leads to a paradox: installi plugin per velocizzare il tuo sito, ma i plugin stessi aggiungono pesantezza al database, cron job in background e i propri payload CSS/JS.

The truth is, WordPress doesn’t need 15 performance plugins to load in under a second. True speed optimization happens at the metal layer—the server, the database, and the core code.

In questa guida, bypasseremo completamente l'ecosistema dei plugin. Ottimizzeremo WordPress usando configurazioni lato server, wp-config.php regolazioni e functions.php snippet chirurgici.


1. Le fondamenta lato server (Nessun PHP richiesto)

Prima di toccare una singola riga di codice WordPress, il tuo ambiente server deve essere pesantemente ottimizzato. Un server debole non può essere riparato dalla cache front-end.

Aggiorna a PHP 8.1+

WordPress gira su PHP. Passare da PHP 7.4 a PHP 8.1 o 8.2 può produrre una riduzione del 20-30% nel tempo di esecuzione e un consumo di memoria significativamente inferiore. Azione: Cambia questo nel tuo cPanel, Plesk o via CLI se gestisci il tuo VPS.

Abilita la compressione a livello server (Brotli invece di Gzip)

Mentre Gzip è lo standard, Brotli (sviluppato da Google) fornisce rapporti di compressione migliori di circa il 15-20% per i file di testo (HTML, CSS, JS) allo stesso costo di CPU. Azione (Nginx): Assicurati che il tuo nginx.conf abbia Brotli abilitato:

brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;

Implementa la cache FastCGI (Nginx) o LiteSpeed Cache

Invece di utilizzare un plugin di caching basato su PHP (che richiede comunque a WordPress di caricarsi parzialmente per servire la cache), esegui la cache a livello di server web. La cache FastCGI di Nginx memorizza l'HTML generato nella RAM o sul disco e lo serve direttamente, bypassando completamente PHP e MySQL per i visitatori anonimi.


2. Rafforzamento e snellimento tramite wp-config.php

IL wp-config.php file è la tua sala di controllo. Per impostazione predefinita, WordPress consente determinati comportamenti che appesantiscono il database nel tempo.

Aggiungi questi snippet subito prima della /* That's all, stop editing! Happy publishing. */ riga.

Limita le revisioni dei post

Per impostazione predefinita, WordPress memorizza un numero infinito di revisioni dei tuoi post. Un post aggiornato 50 volte avrà 50 copie nella tua wp_posts tabella del database, rallentando drasticamente le query al database.

// Keep only the last 3 revisions
define( 'WP_POST_REVISIONS', 3 );

Ottimizza l'intervallo di salvataggio automatico

WordPress esegue il salvataggio automatico ogni 60 secondi. Se hai più editor che lavorano contemporaneamente, questo sovraccarica il database. Rallentalo.

// Change autosave from 60 seconds to 5 minutes
define( 'AUTOSAVE_INTERVAL', 300 );

Svuota il cestino più velocemente

I post e i commenti eliminati rimangono nel database per 30 giorni. Riduci questo tempo per mantenere il database snello.

// Empty trash every 7 days
define( 'EMPTY_TRASH_DAYS', 7 );

3. The “Anti-Bloat” functions.php anti-gonfiore

Il core di WordPress inietta una quantità enorme di script di supporto legacy, link di scoperta e stili inline nel tuo <head> E <footer> per impostazione predefinita.

To achieve maximum information gain over competitors, we won’t just tell you to “use a debloat plugin.” Here is the exact code to surgically remove the most common WordPress bloat.

Note: Add this to your Child Theme’s functions.php del tema child o a un mu-plugin.

/**
 * The Ultimate WordPress Debloat Snippet
 */
add_action('init', function() {
    // 1. Remove RSD, XMLRPC, and WLW links
    remove_action('wp_head', 'rsd_link');
    remove_action('wp_head', 'wlwmanifest_link');
    add_filter('xmlrpc_enabled', '__return_false');

    // 2. Remove WordPress version footprint (Security & Speed)
    remove_action('wp_head', 'wp_generator');

    // 3. Remove Shortlinks and REST API links from header
    remove_action('wp_head', 'wp_shortlink_wp_head');
    remove_action('wp_head', 'rest_output_link_wp_head');

    // 4. Disable native Emojis (Saves 1 JS and 1 CSS HTTP Request)
    remove_action('wp_head', 'print_emoji_detection_script', 7);
    remove_action('wp_print_styles', 'print_emoji_styles');
    remove_action('admin_print_scripts', 'print_emoji_detection_script');
    remove_action('admin_print_styles', 'print_emoji_styles');
    remove_filter('the_content_feed', 'wp_staticize_emoji');
    remove_filter('comment_text_rss', 'wp_staticize_emoji');
    remove_filter('wp_mail', 'wp_staticize_emoji_for_email');

    // 5. Disable oEmbeds (If you don't embed external URLs automatically)
    remove_action('wp_head', 'wp_oembed_add_discovery_links');
    remove_action('wp_head', 'wp_oembed_add_host_js');
    add_action('wp_footer', function() { wp_deregister_script('wp-embed'); });
});

/**
 * 6. Remove Global Styles (WP 5.9+ Inline CSS Bloat)
 */
add_action('wp_enqueue_scripts', function() {
    wp_dequeue_style('global-styles');
    wp_dequeue_style('classic-theme-styles');
}, 100);

/**
 * 7. Remove jQuery Migrate (If using modern themes/plugins)
 */
add_action('wp_default_scripts', function($scripts) {
    if (!is_admin() && isset($scripts->registered['jquery'])) {
        $script = $scripts->registered['jquery'];
        if ($script->deps) {
            $script->deps = array_diff($script->deps, ['jquery-migrate']);
        }
    }
});

/**
 * 8. Throttle the Heartbeat API
 * Prevents high CPU usage when leaving the WP Admin open
 */
add_filter('heartbeat_settings', function($settings) {
    $settings['interval'] = 60; // Throttle to 60 seconds
    return $settings;
});

Cosa abbiamo appena ottenuto?

Aggiungendo il codice sopra, hai eliminato istantaneamente fino a 5-8 richieste HTTP non necessarie and removed dozens of lines of inline CSS/JS from every single page load—all without installing a single plugin.


4. Ottimizzazione dei media (il metodo difficile)

Plugin come Smush o Imagify sono convenienti, ma eseguono l'elaborazione delle immagini sul tuo server PHP, consumando risorse CPU.

Conversione manuale WebP/AVIF

Prima di caricare qualsiasi immagine su WordPress, passala attraverso un compressore esterno senza perdita di dati come Squoosh.app (di Google) o TinyPNG. Meglio ancora, convertile in .webp o .avif formati localmente prima del caricamento.

Sfrutta il caricamento lento nativo

Dalla versione 5.5 di WordPress, il caricamento lento nativo è integrato. WordPress aggiunge automaticamente loading="lazy" to your images. You don’t need a JavaScript-based lazy loading plugin. However, ensure your “above the fold” images (like your logo or hero image) DO NOT have this attribute, as it will delay the Largest Contentful Paint (LCP).

Puoi rimuovere il caricamento lento per la prima immagine su una pagina tramite functions.php:

add_filter( 'wp_get_attachment_image_attributes', function( $attr, $attachment, $size ) {
    static $is_first_image = true;
    if ( $is_first_image ) {
        $attr['loading'] = 'eager'; // Force immediate load for LCP
        $is_first_image = false;
    }
    return $attr;
}, 10, 3 );

5. Deframmentazione del database tramite phpMyAdmin

Optimization plugins usually feature a “Clean Database” button. You can do this natively at the database level.

  1. Accedi al pannello del tuo hosting e apri phpMyAdmin.
  2. Seleziona il tuo database WordPress.
  3. Scorri fino in fondo, seleziona Seleziona tutto.
  4. In the “With selected:” dropdown, choose Ottimizza tabella.

MySQL ricostruirà gli indici della tabella e recupererà lo spazio inutilizzato. Fallo manualmente una volta al mese.


Il verdetto

Optimizing WordPress without plugins isn’t just about saving money on premium subscriptions. It is a philosophy of riduzione del debito tecnico. Every plugin you don’t install is a security vulnerability you don’t have to patch, a database table you don’t have to clean, and a PHP script your server doesn’t have to execute.

Sposta il carico di lavoro sul server (PHP 8.1+, Nginx FastCGI), imponi disciplina nel tuo wp-config.php, e rimuovi il bloat principale usando il tuo functions.php. Il tuo Time to First Byte (TTFB) e i Core Web Vitals rifletteranno la differenza.

Condividi questo post

Siteskyline

Siteskyline

Siteskyline is a premium WordPress plugin and SEO management platform dedicated to providing the best speed, security, and optimization tools.