Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coppa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Come spostare i JavaScript in fondo o nel footer in WordPress

Recentemente, uno dei nostri lettori ci ha chiesto come spostare i JavaScript in fondo a WordPress per aumentare il punteggio di velocità della pagina di Google. Siamo felici che ce lo abbia chiesto, perché onestamente volevamo scrivere di questo argomento. In precedenza, abbiamo parlato di come aggiungere correttamente JavaScript e stili CSS in WordPress. In questo articolo vi mostreremo come spostare i JavaScript in fondo a WordPress, in modo da migliorare il tempo di caricamento del sito e il punteggio di velocità della pagina di Google.

Vantaggi dello spostamento dei JavaScript in fondo

JavaScript è un linguaggio di programmazione lato client. Viene eseguito dal browser dell’utente e non dal server. Quando si mette JavaScript in alto, i browser possono eseguirlo o elaborarlo prima di caricare il resto della pagina. Quando i JavaScript vengono spostati in basso, il server Web esegue rapidamente il rendering della pagina e poi il browser dell’utente esegue i JavaScript. Poiché il rendering sul server è già stato eseguito, il JavaScript verrà caricato in background, rendendo il caricamento complessivo più veloce.

Questo migliorerà il punteggio di velocità nei test di Google Page Speed o Yslow. Google e altri motori di ricerca considerano ora la velocità della pagina come una delle matrici delle prestazioni quando si visualizzano i risultati della ricerca. Ciò significa che i siti web che si caricano più velocemente appariranno in modo più evidente nei risultati della ricerca.

Il modo corretto di aggiungere script in WordPress

WordPress è dotato di un potente sistema di enqueuing che consente agli sviluppatori di temi e plugin di aggiungere i loro script in coda e di caricarli quando necessario. L’inserimento corretto di script e stili può migliorare significativamente la velocità di caricamento delle pagine.

Per mostrarvi un esempio di base, aggiungeremo un piccolo JavaScript in un tema di WordPress. Salvate il vostro JavaScript in un file .js e collocatelo nella directory js del tema. Se il tema non ha una directory per i JavaScript, createne una. Dopo aver inserito il file di script, modificare il file functions.php del tema e aggiungere questo codice:

function wpb_adding_scripts() {
wp_register_script('my-amazing-script', get_template_directory_uri() . '/js/my-amazing-script.js','','1.1', true);
wp_enqueue_script('my-amazing-script');
}
add_action( 'wp_enqueue_scripts', 'wpb_adding_scripts' );  

In questo codice, abbiamo utilizzato la funzione wp_register_script(). Questa funzione ha i seguenti parametri:

<?php
wp_register_script( $handle, $src, $deps, $ver, $in_footer );
?>

Per aggiungere lo script nel footer o in fondo a una pagina di WordPress, è sufficiente impostare il parametro $in_footer su true.

Abbiamo utilizzato anche un’altra funzione, get_template_directory_uri(), che restituisce l’URL della directory dei template. Questa funzione deve essere utilizzata per l’acquisizione e la registrazione di script e stili nei temi di WordPress. Per i plugin utilizzeremo la funzione plugins_url().

Il problema:

Il problema è che a volte i plugin di WordPress aggiungono il proprio JavaScript alle pagine all’interno di <head> o del contenuto della pagina. Per spostare questi script in fondo è necessario modificare i file dei plugin e spostare correttamente gli script in fondo.

Trovare la fonte di JavaScript

Aprire il sito nel browser e visualizzare l’origine della pagina. Si vedrà il collegamento al file JavaScript che indica la posizione e l’origine del file. Ad esempio, lo screenshot qui sotto ci dice che il nostro script appartiene a un plugin chiamato “test-plugin101”. Il file di script si trova nella directory js.

Finding source of a script in WordPress

A volte è possibile vedere JavaScript aggiunto direttamente nella pagina e non collegato a un file .js separato. In questo caso, è necessario disattivare tutti i plugin uno per uno. Ricaricate la pagina dopo aver disattivato ogni plugin fino a trovare quello che aggiunge lo script alle vostre pagine. Se il JavaScript non scompare nemmeno dopo aver disattivato tutti i plugin, provare a passare a un altro tema per verificare se il JavaScript viene aggiunto dal tema.

Registrare e inserire gli script

Una volta trovato il plugin o il tema che aggiunge JavaScript nella sezione header, il passo successivo è scoprire dove il plugin ha una chiamata per il file. In uno dei file PHP del tema o del plugin si vedrà una chiamata a quel particolare file .js.

Se il plugin o il tema utilizza già l’enqueuing per aggiungere il file JavaScript, è sufficiente modificare la funzione wp_register_script nel plugin o nel tema e aggiungere true al parametro $in_footer. In questo modo:


wp_register_script('script-handle', plugins_url('js/script.js'  , __FILE__ ),'','1.0',true);

Supponiamo che il plugin o il tema aggiunga JavaScript grezzo nell’header o tra i contenuti. Trovare il codice JavaScript grezzo nei file del plugin o del tema, copiare il JavaScript e salvarlo in un file .js. Quindi utilizzare la funzione wp_register_script() come mostrato sopra, per spostare il codice JavaScript in fondo.

Nota dell’editore: è importante capire che quando si apportano modifiche ai file principali e si aggiorna il plugin, le modifiche non vengono sovrascritte. Un modo migliore per farlo sarebbe quello di cancellare lo script e registrarlo nuovamente dal file functions.php del tema. Vedere questo tutorial.

Oltre a spostare gli script nel footer, si dovrebbe anche considerare l’utilizzo di un plugin per i social media più veloce e di immagini a caricamento lento. Inoltre, dovreste utilizzare W3 Total Cache e MaxCDN per migliorare la velocità del sito.

Speriamo che questo articolo vi abbia aiutato a spostare i JavaScript in fondo a WordPress e a migliorare la velocità della vostra pagina. Per domande e feedback, lasciate un commento qui sotto.

Divulgazione: I nostri contenuti sono sostenuti dai lettori. Ciò significa che se cliccate su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come WPBeginner è finanziato , perché è importante e come puoi sostenerci. Ecco il nostro processo editoriale .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Il kit di strumenti WordPress definitivo

Ottenete l'accesso gratuito al nostro kit di strumenti - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Reader Interactions

16 commentiLascia una risposta

  1. Ravi

    Will my plugins update normally when i move their js to single file? I am a newbie.

  2. WPBeginner Staff

    There are multiple ways to do it. One that is most common is to paste JavaScript files loaded by different sources into one single JS file and then enqueue it.

  3. Catharine

    Hi Syed, thanks for the tutorial. However I am a complete noob and have a very basic question. For that piece of code you posted (the entire function etc), do we need to add that in the functions.php file for every single bit of javascript we want to enqueue? I guess what I’m asking is, how would you format that code if you had more than one piece of javascript that was being loaded in the headers of more than one page?
    Your help would be greatly appreciated!

  4. Marc Jacobs

    hi, great tutorial. I have a question though. I ran my website through Google Page Speed Insights and got the warning that I had to eliminate render blocking Javascript (and css) to boost my page speed. I read the information on this website (great read!), but I cannot seem to find the php-files where the plugin “calls” for the js-files causing my website to lack speed. I have figured out what plug-in is causing most of the delay (Google-maps-ready), but I have no idea how to precoeed frpm there. I have searched every php-file in the plugin folder, but can’s find a js-file named remotely similar to the files mentioned in the google speed test:

    How do I figure out what php file to edit? Help wouldbe much appreciated!

    greeting,

    Marc.

  5. Basavaraj Tonagatti

    Hi, I recently moved to Genesis Framework+Eleven 40 Child Theme. I am also facing the same problem while I run the Google page speed test. But as I don’t know the exact way of doing, finding it difficult to make changes. Can anyone guide me what is the exact cause on my site and how to remove this Javascript issue? (I don’t know any styling languages and I am totally unware about these code languages.)

  6. Joseph Stanley-Hunt

    Thanks heaps, I have been wondering how to do this and some other tricks (which I have also found answers to on here).

    One question tho, I see there is no in-head in the paramaters. is that meaning that if the in_footer is set to false, it is registered in the head automatically?

    • WPBeginner Support

      Yes, the default value for in_footer is false. So you need to explicitly add in_footer to true otherwise it will appear in the head.

      Admin

  7. Mike

    The plugin update immediately came to my mind too. Look forward to more advice on this.

  8. Jason

    Great article! I have been asking this questions for a long time because so many themes get penalized in Googls speed test due to java scripts loading first. Maybe others have known how to put these scripts in the footer.

    Again, thanks and I will try this out and tell you how it works.

  9. Jeremy Myers

    Great tutorial.

    But once we update the plugin, we will have to do this again, right? And every time the plugin updates?

    Is it possible to deregister the js in functions.php and then simply reregister it in the footer somehow?

  10. adam

    Hi, thanks for this useful tips. But, how to move .js of W3 Total Cache minify on head?
    That’s js location on cache in wp content, not wp plugin.

  11. Lucca

    Thx for valueable knowledge – keep up excellent work.

  12. Raj

    Nice and Simple guide. Thanks for posting this article to increase the speed of WordPress :)

  13. Danyel Perales

    Nice tip. Thanks for share !

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tenga presente che tutti i commenti sono moderati in base alle nostre politica dei commenti e il suo indirizzo e-mail NON sarà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avremo una conversazione personale e significativa.