Vai al contenuto

WordPress: come aggiornare core, plugin e temi in sicurezza

Illustrazione 3D di due persone al computer in ufficio con dischi collegati.
Immagine generata con IA

Un aggiornamento di WordPress sostituisce tutti i file dell’installazione principale. Le modifiche fatte a mano al core vanno perse. Prima fai il backup di file e database. Poi controlli che il backup si possa ripristinare. Solo dopo aggiorni. La guida serve a chi amministra un sito WordPress, anche su hosting condiviso. Core e plugin si aggiornano dalla bacheca, nel browser, nello stesso modo da Windows, macOS e Linux. Anche i temi si aggiornano dal browser, da Bacheca > Aggiornamenti; WP-CLI è un’alternativa facoltativa. I comandi sono quelli della documentazione ufficiale, elencata in fondo.

Cosa serve

  • Un account amministratore nella bacheca di WordPress.
  • Accesso ai file del sito: un client FTP (le pagine ufficiali citano FileZilla e WinSCP), una shell sul server oppure lo strumento di backup dell’hosting.
  • Accesso al database: phpMyAdmin dal pannello dell’hosting (Plesk, cPanel, DirectAdmin e altri) oppure SSH con i comandi mysqldump e mysql.
  • Per usare WP-CLI: un terminale, WP-CLI installato e accesso all’installazione WordPress. Se ti colleghi al server via SSH, servono anche quell’accesso e WP-CLI disponibile sul server.
  • Spazio sul computer per le copie. Le fonti non indicano quanto: dipende dal sito.

La pagina Updating WordPress chiede di tenere il sito sempre all’ultima versione. La pagina Manage Plugins spiega che gli aggiornamenti dei plugin servono anche a mantenerli sicuri e vanno applicati subito.

Copiare i file di WordPress sul computer

Un backup di WordPress ha due parti, file e database. Scaricare la cartella del sito non copia il database: secondo la pagina WordPress Backups, il database sta fuori da quella cartella, di solito in MySQL o MariaDB.

Tratta le due copie come un solo «backup set», fatte a poca distanza. L’ordine tipico indicato dalla documentazione è prima il database, poi i file. Esegui prima la sezione successiva, poi torna qui.

Nei file rientrano il core, i temi, i plugin, gli upload, wp-config.php e .htaccess. Le parti proprie del sito stanno in wp-content e in wp-config.php. Le strade sono tre:

  • Strumento di backup dell’hosting. Molti hosting lo offrono: chiedi al tuo quali servizi mette a disposizione.
  • Sincronizzazione. WinSCP e programmi simili tengono una copia speculare del sito sul tuo disco.
  • Copia manuale. Con un client FTP o dalla shell copia tutta la cartella di WordPress sul computer, poi comprimila in zip.

La copia che l’hosting fa del server non basta da sola: la documentazione fa notare che chiederla richiede tempo, mentre il ripristino deve essere rapido. Tieni da tre a cinque backup recenti in posti diversi, per esempio sul server, su un servizio cloud e sul computer.

Esportare il database con phpMyAdmin o mysqldump

Il database contiene articoli, pagine, commenti e impostazioni. Si esporta in un file, di solito .sql, .gz o .bz2, da salvare insieme ai file.

Interfaccia di phpMyAdmin sulla scheda Export con la modalità di esportazione rapida selezionata.
La schermata di esportazione del database WordPress in phpMyAdmin. — Immagine: WordPress

Dalla bacheca dell’hosting con phpMyAdmin

Apri phpMyAdmin dal pannello. In cPanel passa da MySQL Databases al link phpMyAdmin. In Plesk vai su Websites & Domains e premi Open accanto al database di WordPress. La pagina Backing Up Your Database descrive due procedure. Quella rapida:

  1. A sinistra seleziona il database di WordPress.
  2. Apri la scheda Export.
  3. Lascia selezionata l’opzione Quick e premi Go.
  4. Salva il file sul computer.

Per ripristinare un export Quick, la documentazione chiede che il database di destinazione non abbia tabelle. Se vuoi poter importare il backup sopra il database esistente, al punto 3 scegli Custom invece di Quick:

  • nella sezione Table lascia selezionate tutte le tabelle; se il database serve anche ad altri programmi, tieni solo quelle con il prefisso wp_ o con il table_prefix indicato in wp-config.php;
  • nella sezione Output puoi scegliere «zipped» o «gzipped» nel campo Compression per comprimere i dati;
  • nella sezione Format controlla che sia selezionato SQL;
  • nella sezione Object creation options spunta «Add DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER statement»;
  • premi Go in fondo alla pagina e salva il file.

Al ripristino ogni tabella esistente viene cancellata prima di essere ricreata. phpMyAdmin non regge i database grandi: in quel caso usa i comandi da terminale.

Via SSH con mysqldump

Collegati al server e spostati nella cartella dove vuoi salvare il backup. Nell’esempio della documentazione db01.example.net è il server del database, dbocodex l’utente e wp il nome del database. Sostituisci questi tre valori con i dati di connessione che WordPress tiene in wp-config.php. Gli esempi ufficiali sono scritti per una shell Linux sul server.

mysqldump --add-drop-table -h db01.example.net -u dbocodex -p wp > blog.bak.sql

L’opzione -p fa chiedere la password del database, che così non compare nel comando:

Enter password: (type password)

Nella cartella compare blog.bak.sql. Per un database grande puoi creare anche una copia compressa al volo. Per un database grande, la documentazione indica gzip come alternativa più veloce di bzip2:

mysqldump --add-drop-table -h db01.example.net -u dbocodex -p wp | gzip > blog.bak.sql.gz

Se crei la versione .gz, conserva anche blog.bak.sql: il motivo è nella sezione sul ripristino. Scarica i file sul computer insieme alla copia del sito.

Verificare il backup e sapere come ripristinarlo

Prima di aggiornare controlla tre cose. Hai sia la copia dei file sia l’export del database. Le due copie sono state fatte a poca distanza. Il file del database è in formato SQL. Per i backup automatici la documentazione raccomanda di affiancare ogni tanto un backup manuale, per avere la certezza che il processo funzioni.

Finestra Data Import e Restore in MySQL Workbench con il pulsante Start Import evidenziato.
Ripristino del database tramite la schermata Data Import di MySQL Workbench. — Immagine: WordPress

Il ripristino segue l’ordine inverso: prima i file, poi il database.

Attenzione: il ripristino sostituisce il database attuale e lo riporta allo stato del backup. Tutto quello che è stato scritto sul sito dopo il backup va perso. Prima di procedere verifica che il database selezionato sia quello indicato in wp-config.php del sito da riportare indietro.

Con phpMyAdmin conta come hai esportato. Per un export Quick la documentazione chiede un database di destinazione senza tabelle. Un export Custom con l’opzione «Add DROP TABLE» elimina le tabelle esistenti prima di ricrearle. Se hai solo un export Quick e vuoi importarlo sopra il database attuale, rifai subito l’export con la procedura Custom, prima di aggiornare.

Per importare apri Databases e seleziona il database di destinazione, poi la scheda Import. Premi Browse e scegli il file di backup. Controlla che nel menu Format sia selezionato SQL e premi Go. Al termine compare una schermata di conferma.

Da SSH si usa mysql. Sostituisci mysqlhostserver, mysqlusername e databasename con server, utente e nome del database, gli stessi usati per l’export.

mysql -h mysqlhostserver -u mysqlusername -p databasename < blog.bak.sql

Anche qui viene chiesta la password. Il comando legge il file non compresso blog.bak.sql. Le pagine consultate spiegano come decomprimere i file .bz2 e .tar.gz, non i .gz. Per questo, accanto alla copia .gz, tieni anche quella non compressa.

Aggiornare il core dalla bacheca

Da WordPress 3.7 gli aggiornamenti minori e di sicurezza si installano da soli in background. Succede sulla maggior parte dei siti, se WordPress riesce ad aggiornarsi senza chiedere le credenziali FTP. Le versioni maggiori possono aggiornarsi automaticamente: nelle nuove installazioni da WordPress 5.6 questa è l'impostazione predefinita, salvo rilevamento di un sistema di controllo versione. Controlla in Bacheca > Aggiornamenti se sul tuo sito devi avviarle a mano.

Attenzione: l'aggiornamento tocca tutti i file e le cartelle dell'installazione principale. Le modifiche fatte a mano ai file del core vanno perse.

  1. Vai in Bacheca > Aggiornamenti (Dashboard > Updates), oppure clicca il link nel banner della nuova versione.
  2. Nella pagina «Aggiorna WordPress» premi «Aggiorna ora» (Update Now).
  3. Aspetta la fine del processo.

Se compare una finestra che chiede le credenziali di connessione, la causa è la proprietà dei file. WordPress scrive direttamente solo se i file appartengono all'utente con cui gira il server web. Spesso invece appartengono all'account FTP che li ha caricati: inserisci le credenziali di quell'account e l'aggiornamento prosegue.

Aggiornare i plugin dalla bacheca

Prima di aggiornare i plugin serve un backup recente: la documentazione avverte che durante l'aggiornamento possono sorgere problemi. Un plugin non aggiornato dopo l'ultima versione del core può essere incompatibile. Il link «View details» nell'elenco dei plugin installati mostra la compatibilità.

  • Da Bacheca > Aggiornamenti: scorri fino alla sezione Plugin, spunta quelli da aggiornare e premi «Aggiorna plugin» (Update Plugins).
  • Dalla pagina Plugin: sotto un plugin cerca la riga «There is a new version…» e clicca «update now».
  • In blocco: nella pagina Plugin clicca «Aggiornamenti disponibili» (Update Available) e seleziona i plugin. Dal menu «Azioni di gruppo» (Bulk Actions) scegli «Aggiorna» (Update) e premi «Applica» (Apply). Se tutto va bene, compare un messaggio di aggiornamento completato.

Da WordPress 5.5 puoi rendere automatici gli aggiornamenti dei singoli plugin. In Plugin > Plugin installati, nella colonna più a destra, usa il link «Abilita aggiornamenti automatici» (Enable auto-updates). Il link «Disable auto-updates» li toglie.

Facoltativo: aggiornare il core con WP-CLI

Questa parte riguarda solo chi ha accesso SSH. Vale lo stesso avviso: il backup va fatto prima. Dopo il backup, collegati via SSH e spostati nella cartella dell'installazione WordPress da aggiornare. Esegui da lì tutti i comandi WP-CLI riportati sotto; in alternativa aggiungi a ciascuno --path=/percorso/del/sito, sostituendo il percorso con quello reale.

wp core update

Senza opzioni il comando porta WordPress all'ultima versione. Secondo la pagina del comando, con --minor si installano solo le release minori, per esempio da 4.3 a 4.3.3 invece che a 4.4.2. Con --version=<version> si sceglie una versione precisa. Se l'aggiornamento riesce, l'ultima riga è:

Success: WordPress updated successfully.

Facoltativo: aggiornare tutti i plugin con WP-CLI

Il comando aggiorna tutti i plugin che hanno un aggiornamento disponibile. Durante l'operazione WP-CLI attiva la modalità manutenzione e la disattiva alla fine.

wp plugin update --all

Per lasciarne fuori qualcuno usa --exclude, che accetta nomi separati da virgole. Nell'esempio della documentazione di WP-CLI resta escluso Akismet:

wp plugin update --all --exclude=akismet

Alla fine compare una tabella con versione vecchia, versione nuova e stato di ogni plugin.

Aggiornare i temi dalla bacheca o con WP-CLI

Serve il backup già fatto. Attenzione: aggiornare un tema sovrascrive le personalizzazioni apportate direttamente ai suoi file. Prima di procedere, trasferisci le modifiche in un tema child. Dal browser vai in Bacheca > Aggiornamenti, seleziona i temi nella sezione Temi e premi «Aggiorna temi». In alternativa, con WP-CLI, per aggiornare tutti i temi che hanno un aggiornamento disponibile:

wp theme update --all

Per aggiornare solo alcuni temi scrivi i loro nomi dopo il comando. Nell'esempio della documentazione di WP-CLI sono Twenty Fifteen e Twenty Sixteen: sostituiscili con i temi installati sul tuo sito.

wp theme update twentyfifteen twentysixteen

Una tabella finale riporta, tema per tema, la versione di partenza e quella installata.

Sbloccare il sito rimasto in manutenzione

Un aggiornamento non riuscito può lasciare il messaggio «failed update». Collegati con il client FTP e cancella il file .maintenance dalla cartella di WordPress: il messaggio sparisce.

Poi rifai l'aggiornamento a mano, come descritto nella sezione Manual Update di Updating WordPress.

Attenzione: la procedura manuale cancella e sostituisce i file del core. Parti solo se hai il backup di file e database. Chi ha personalizzato i temi predefiniti senza rinominarli non deve sovrascriverne i file, altrimenti perde le modifiche.

  1. Scarica l'ultimo pacchetto zip (o tar.gz) di WordPress e scompattalo sul computer.
  2. Disattiva i plugin.
  3. Sul server cancella le vecchie cartelle wp-includes e wp-admin e carica al loro posto quelle nuove.
  4. Carica i singoli file della nuova wp-content dentro quella esistente, sovrascrivendoli. Non cancellare la cartella né i file che contiene: lì ci sono temi e plugin.
  5. Carica i file sciolti della radice della nuova versione, come index.php e wp-login.php, nella radice del sito. Il tuo wp-config.php resta al sicuro.
  6. Confronta wp-config-sample.php con il tuo wp-config.php per vedere se ci sono impostazioni nuove da aggiungere.

Passa subito al controllo finale: l'eventuale aggiornamento del database va fatto il prima possibile.

Controllare che il sito funzioni

  1. Apri /wp-admin. WordPress può chiederti di accedere di nuovo.
  2. Se serve aggiornare il database, WordPress lo rileva e propone un link a wp-admin/upgrade.php. Seguilo e completa le istruzioni.
  3. Riattiva i plugin, se li avevi disattivati.
  4. Se usi una cache, svuotala. Altrimenti i visitatori, e anche tu, vedono la versione vecchia finché la cache non si aggiorna.
  5. Naviga il sito e controlla che le pagine si carichino.

Se non riesci ad accedere, cancella i cookie del browser.

Se qualcosa va storto

  • Il sito non funziona dopo l'aggiornamento. Ripristina il backup, prima i file e poi il database. Sostituire soltanto i file con una vecchia release può creare incompatibilità con il database; una versione precedente può inoltre reintrodurre vulnerabilità corrette dagli aggiornamenti.
  • Il problema è iniziato dopo l'aggiornamento di un plugin. Disattivalo e riattivalo. Se non basta, lascialo disattivato e cerca un plugin simile. Se non sai quale plugin sia, disattivali uno alla volta finché il problema non sparisce.
  • Su un server IIS l'aggiornamento chiede le credenziali FTP. Secondo la documentazione è probabilmente una questione di permessi. Nella IIS Management Console, nelle impostazioni avanzate dell'application pool del blog, imposta Process Model Id su LocalSystem. Poi in Sites, con il tasto destro sul blog, scegli Edit permissions e nella scheda di sicurezza aggiungi gli utenti autenticati.
  • WP-CLI risponde «Error: Another update is currently in progress.». Verifica prima che non ci sia davvero un altro aggiornamento in corso. Solo dopo, come indica la pagina di wp core update, cancella l'opzione core_updater.lock.

Documentazione di riferimento

Pagine ufficiali consultate il 30 ottobre 2026.

Leggi anche