<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>aggiornamento WordPress - Web Design | Creazione Siti Internet</title>
	<atom:link href="https://www.mrtux.it/tag/aggiornamento-wordpress/feed" rel="self" type="application/rss+xml" />
	<link>https://www.mrtux.it</link>
	<description>Sviluppo Siti Web - Assistenza WordPress</description>
	<lastBuildDate>Mon, 01 Jun 2026 18:38:52 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://www.mrtux.it/wp-content/uploads/2022/06/favicon-150x150.png</url>
	<title>aggiornamento WordPress - Web Design | Creazione Siti Internet</title>
	<link>https://www.mrtux.it</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WordPress 7.0: come aggiornare in produzione senza downtime</title>
		<link>https://www.mrtux.it/wordpress-7-0-come-aggiornare-in-produzione-senza-downtime</link>
					<comments>https://www.mrtux.it/wordpress-7-0-come-aggiornare-in-produzione-senza-downtime#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Mon, 01 Jun 2026 14:30:09 +0000</pubDate>
				<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[aggiornamento WordPress]]></category>
		<category><![CDATA[devops WordPress]]></category>
		<category><![CDATA[manutenzione WordPress]]></category>
		<category><![CDATA[staging WordPress]]></category>
		<category><![CDATA[WordPress 7.0]]></category>
		<category><![CDATA[zero downtime]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3433</guid>

					<description><![CDATA[WordPress 7.0 introduce cambiamenti profondi (PHP 7.4+, nuovo DataViews admin, collaboration real-time). Aggiornare un sito in produzione senza downtime richiede un metodo ingegneristico: staging, backup verificati, freeze dei plugin, manutenzione controllata e rollback rapido. Ecco la procedura operativa.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">WordPress 7.0, rilasciato ufficialmente il <strong>20 maggio 2026</strong>, è la major release più impattante dal 5.0: <em>real-time collaboration</em> sui contenuti, amministrazione ridisegnata con il sistema <strong>DataViews</strong>, requisiti minimi innalzati a <strong>PHP 7.4</strong> e una nuova <em>AI infrastructure</em> nativa. Per chi gestisce siti in produzione, questo significa una cosa sola: la finestra di errore si riduce, perché il delta tra un sito WordPress 6.x e 7.0 attraversa stack, plugin e template.</p>



<p class="wp-block-paragraph">L'approccio "aggiorno e vedo cosa succede" non regge più. Serve una procedura ingegneristica, ripetibile, con rollback misurato. In questa guida ti spiego il metodo che usiamo sui siti in produzione dei nostri clienti, con i punti di attenzione specifici introdotti dal 7.0.</p>



<p class="wp-block-paragraph">Se vuoi invece una panoramica completa di tutte le novità, puoi leggere <a href="https://www.mrtux.it/le-novit-di-wordpress-70-guida-completa-a-tutte-le-funzional-3" data-wpel-link="internal" target="_self" rel="noopener">la nostra guida completa a WordPress 7.0</a>. Qui ci concentriamo solo sull'<strong>operatività dell'aggiornamento</strong>.</p>



<h2 class="wp-block-heading">I tre rischi specifici di WordPress 7.0</h2>



<p class="wp-block-paragraph">Prima di toccare la produzione, mappa i rischi concreti introdotti da questa release. WordPress 7.0 non è un aggiornamento incrementale: cambia abbastanza sotto al cofano da rendere insufficienti le checklist del 6.x.</p>



<ul class="wp-block-list">
<li><strong>Stack non più compatibile</strong> — Il core richiede PHP 7.4 minimo e MySQL 8.0+. Hosting datati (PHP 7.2, MariaDB 10.2) vengono tagliati fuori. Verificare prima se il proprio provider ha già aggiornato la versione di PHP disponibile.</li>



<li><strong>Temi block-based con override profondi</strong> — I temi Full Site Editing che facevano largo uso di hook personalizzati su block templates possono rompersi a causa del nuovo <em>Block Locking API</em>. I layout che "forzavano" proprietà ora potrebbero entrare in conflitto.</li>



<li><strong>Plugin di terze parti non pronti</strong> — Molti plugin usano <code>admin_print_footer_scripts</code>, <code>manage_posts_extra_tablenav</code> e altri hook legacy. La nuova interfaccia DataViews può renderli invisibili o non funzionanti. Serve un audit plugin per plugin.</li>
</ul>



<h2 class="wp-block-heading">Architettura minima per aggiornare senza downtime</h2>



<p class="wp-block-paragraph">Prima ancora di pensare a "come aggiornare", serve un'<strong>architettura che lo permetta</strong>. Se il sito è su un singolo server condiviso senza staging, l'obiettivo zero downtime è irrealistico. Ecco cosa serve.</p>



<h3 class="wp-block-heading">1. Un ambiente di staging vero, non una copia a mano</h3>



<p class="wp-block-paragraph">Lo staging deve essere una <strong>replica bit-per-bit</strong> della produzione: stesso PHP, stesso MySQL, stessi plugin, stesse versioni, stesso tema child. Se cloni a mano e ti dimentichi il file <code>wp-config.php</code> o il cron di sistema, stai facendo theatre, non devops.</p>



<p class="wp-block-paragraph">Un setup minimo per iniziare: usa <a href="https://www.mrtux.it/container-docker-php-setup-minimale" data-wpel-link="internal" target="_self" rel="noopener">container Docker per PHP</a> localmente e poi replica la configurazione sul server di staging. La parola chiave è <em>parità ambientale</em>: se produzione gira su PHP 8.2 con OPcache attivo, anche lo staging deve girare così.</p>



<h3 class="wp-block-heading">2. Backup verificati e ripristinabili</h3>



<p class="wp-block-paragraph">Un backup che non hai mai provato a ripristinare non è un backup, è una preghiera. Prima dell'aggiornamento a 7.0:</p>



<ul class="wp-block-list">
<li>Backup completo di file e database, <strong>non incrementale</strong></li>



<li>Ripristino di prova su un terzo ambiente (anche locale) entro 7 giorni</li>



<li>Conservazione off-site per almeno 30 giorni</li>
</ul>



<h3 class="wp-block-heading">3. Accesso SSH e WP-CLI sul server di produzione</h3>



<p class="wp-block-paragraph">Operare da browser con la pagina di aggiornamento del backend significa: timeout, lock parziali, modalità manutenzione che resta attiva se qualcosa va storto. Con WP-CLI puoi gestire tutto da terminale, anche su connessioni instabili. Verifica che <code>wp --info</code> risponda prima di iniziare.</p>



<h2 class="wp-block-heading">La procedura operativa in 8 step</h2>



<p class="wp-block-paragraph">Una volta che l'architettura è in piedi, l'aggiornamento vero e proprio è una checklist ripetibile. Segui gli step nell'ordine indicato.</p>



<h3 class="wp-block-heading">Step 1 — Audit plugin e temi</h3>



<p class="wp-block-paragraph">Scarica un export JSON di tutti i plugin e temi installati (<code>wp plugin list --format=json</code>). Per ognuno verifica:</p>



<ul class="wp-block-list">
<li>Data di ultimo aggiornamento: se >12 mesi, rischio alto</li>



<li>Compatibilità dichiarata con PHP 8.x: se non c'è, rischio altissimo</li>



<li>Test contro WordPress 7.0 RC4 su staging (WordPress.org rilascia i release candidate proprio per questo)</li>
</ul>



<h3 class="wp-block-heading">Step 2 — Clona la produzione sullo staging</h3>



<p class="wp-block-paragraph">Copia file + database. Modifica solo <code>wp-config.php</code> per puntare al nuovo DB e cambia gli URL in <code>siteurl</code> e <code>home</code> con WP-CLI:</p>



<pre class="wp-block-code"><code># clona database di produzione sullo staging
wp db export /tmp/staging_db.sql --allow-root
scp /tmp/staging_db.sql staging:/tmp/
ssh staging 'wp db import /tmp/staging_db.sql --allow-root'

# aggiorna URL sullo staging
ssh staging "wp option update siteurl 'https://staging.example.com' --allow-root"
ssh staging "wp option update home 'https://staging.example.com' --allow-root"</code></pre>



<h3 class="wp-block-heading">Step 3 — Aggiorna prima plugin e temi sullo staging</h3>



<p class="wp-block-paragraph">Questo è il punto in cui emergono i conflitti reali. Aggiorna un plugin alla volta, testando dopo ognuno. Su WordPress 7.0 la regola è: <strong>se un plugin ha una versione compatibile con 7.0, prendila; se non ce l'ha, congelalo</strong> e documenta la deroga. I plugin bloccanti vanno sostituiti, non disattivati: una disattivazione silenziosa di un plugin SEO o di cache può rompere il sito in modi non immediatamente visibili.</p>



<h3 class="wp-block-heading">Step 4 — Aggiorna il core a 7.0 sullo staging</h3>



<p class="wp-block-paragraph">Solo dopo che plugin e temi sono puliti. Usa WP-CLI con <code>--skip-themes</code> e <code>--skip-plugins</code> per isolare l'aggiornamento del core:</p>



<pre class="wp-block-code"><code># aggiorna solo il core WordPress, lasciando stare plugin e temi
wp core update --skip-themes --skip-plugins --allow-root

# poi rilancia gli aggiornamenti di plugin e temi separatamente
wp plugin update --all --allow-root
wp theme update --all --allow-root</code></pre>



<h3 class="wp-block-heading">Step 5 — Test funzionali sullo staging</h3>



<p class="wp-block-paragraph">Non "visito la home e mi sembra ok". Serve un test <strong>funzionale</strong>:</p>



<ul class="wp-block-list">
<li>Login come editor, autore, amministratore: ogni ruolo vede il backend corretto?</li>



<li>Crea un articolo di prova con tutti i blocchi che usi (cover, gallery, tabelle, group/columns)</li>



<li>Effettua un acquisto di test se gestisci WooCommerce</li>



<li>Controlla i log PHP (<code>/var/log/php-fpm/</code>) e gli errori 5xx su Nginx/Apache</li>



<li>Verifica l'output dei form di contatto e delle newsletter</li>
</ul>



<h3 class="wp-block-heading">Step 6 — Misura i tempi</h3>



<p class="wp-block-paragraph">Sullo staging, cronometra quanto dura ogni fase. L'aggiornamento core su 7.0 su un sito medio è di circa 30-90 secondi, ma il delta arriva dalla cache: invalidazione oggetti, ricostruzione autoload, rigenerazione rewrite rules. Pianifica una finestra di <strong>5-10 minuti</strong> per il "passaggio" in produzione.</p>



<h3 class="wp-block-heading">Step 7 — Esegui l'aggiornamento in produzione</h3>



<p class="wp-block-paragraph">Quando staging è verde, ripeti la stessa sequenza in produzione. Sequenza comandi:</p>



<pre class="wp-block-code"><code># 1. backup di sicurezza immediato
ssh prod "wp db export /var/backups/wp_pre70_$(date +%Y%m%d).sql --allow-root"

# 2. attiva manutenzione
ssh prod "wp maintenance-mode activate --allow-root"

# 3. aggiorna il core
ssh prod "wp core update --skip-themes --skip-plugins --allow-root"

# 4. aggiorna plugin e temi uno a uno
ssh prod "wp plugin update --all --allow-root"
ssh prod "wp theme update --all --allow-root"

# 5. disattiva manutenzione
ssh prod "wp maintenance-mode deactivate --allow-root"</code></pre>



<p class="wp-block-paragraph">La finestra in cui il sito mostra la pagina "Sito in manutenzione" è idealmente <strong>sotto i 60 secondi</strong>: il tempo necessario a scaricare il nuovo core, decomprimerlo, aggiornare il DB e spegnere la modalità. Per ridurla, puoi pre-scaricare il pacchetto del core sul server ed eseguire un aggiornamento "minore" da file system.</p>



<h3 class="wp-block-heading">Step 8 — Smoke test post-aggiornamento</h3>



<p class="wp-block-paragraph">Subito dopo aver spento la manutenzione, esegui:</p>



<ul class="wp-block-list">
<li>Verifica HTTP 200 su homepage, una pagina interna, il backend (<code>wp post list</code> via WP-CLI)</li>



<li>Controlla i log delle ultime 5 minuti: nessun errore fatale PHP o MySQL?</li>



<li>Apri Chrome DevTools, disabilita cache, ricarica: la pagina risponde in &lt;1s?</li>



<li>Controlla che i cron di sistema siano partiti (<code>wp cron event list</code>)</li>
</ul>



<h2 class="wp-block-heading">Strategia di rollback: il piano B</h2>



<p class="wp-block-paragraph">Nonostante tutta la preparazione, può succedere che qualcosa si rompa. Avere un rollback misurato è la differenza tra un'ora di stress e un downgrade in 10 minuti. Le opzioni sono tre, in ordine di robustezza.</p>



<h3 class="wp-block-heading">Confronto rapido delle tre opzioni di rollback</h3>



<p class="wp-block-paragraph">Prima di scegliere, valuta pro, contro e casi d'uso. La soluzione giusta dipende da quanto tempo hai e da quale rischio devi mitigare.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading">Rollback via backup DB + file</h4>



<p class="wp-block-paragraph"><strong>Funziona quando:</strong> il problema è nel core o nei plugin aggiornati e vuoi tornare a una versione pulita.</p>



<p class="wp-block-paragraph"><strong>Pro:</strong> ripristino totale, riporta il sito allo stato esatto pre-aggiornamento.</p>



<p class="wp-block-paragraph"><strong>Contro:</strong> perdi i contenuti pubblicati durante la finestra di aggiornamento (in genere pochi minuti, ma potrebbero esserci commenti e ordini WooCommerce).</p>



<p class="wp-block-paragraph"><strong>Tempo di esecuzione:</strong> 5-15 minuti, dipende dalla dimensione del DB.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading">Downgrade core mirato</h4>



<p class="wp-block-paragraph"><strong>Funziona quando:</strong> il problema è solo nel core di WordPress 7.0, plugin e temi vanno bene.</p>



<p class="wp-block-paragraph"><strong>Pro:</strong> tieni plugin aggiornati, contenuti recenti, configurazioni correnti. Ripristini solo il core.</p>



<p class="wp-block-paragraph"><strong>Contro:</strong> richiede la stessa versione esatta del core 6.x da cui sei partito. Il DB potrebbe avere migrazioni non reversibili in 7.0.</p>



<p class="wp-block-paragraph"><strong>Tempo di esecuzione:</strong> 2-5 minuti.</p>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<h4 class="wp-block-heading">Disattivazione mirata del plugin rotto</h4>



<p class="wp-block-paragraph"><strong>Funziona quando:</strong> un singolo plugin incompatibile sta generando l'errore.</p>



<p class="wp-block-paragraph"><strong>Pro:</strong> minimo impatto, il resto del sito continua a girare su 7.0. Spesso è la soluzione più rapida.</p>



<p class="wp-block-paragraph"><strong>Contro:</strong> lasci una funzionalità scoperta finché non trovi un sostituto o il plugin non rilascia una patch.</p>



<p class="wp-block-paragraph"><strong>Tempo di esecuzione:</strong> 30 secondi, ma richiede di aver già identificato il plugin colpevole.</p>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p class="wp-block-paragraph">Per approfondire la parte di selezione e gestione dei plugin in ambienti critici, vale la pena rileggere <a href="https://www.mrtux.it/5-wordpress-plugins-indispensabili-per-sicurezza-seo-e-performance" data-wpel-link="internal" target="_self" rel="noopener">la nostra guida ai 5 plugin WordPress indispensabili</a>: il concetto di "indispensabile" deve essere rivisto dopo un major upgrade, perché il contorno dei plugin cambia.</p>
</div>
</div>



<h2 class="wp-block-heading">Punti di attenzione specifici del 7.0</h2>



<p class="wp-block-paragraph">Alcuni comportamenti sono nuovi rispetto al 6.x e meritano un check mirato.</p>



<h3 class="wp-block-heading">Real-time collaboration e conflitti di sessione</h3>



<p class="wp-block-paragraph">La collaboration real-time di WordPress 7.0 apre WebSocket persistenti. Verifica che il reverse proxy (Nginx, Cloudflare) li gestisca correttamente. Timeout troppo bassi o buffering aggressivo possono bloccare la funzionalità senza generare errori visibili, lasciando gli editor con modifiche non salvate.</p>



<h3 class="wp-block-heading">Auth a due fattori nativa</h3>



<p class="wp-block-paragraph">Se avevi un plugin 2FA attivo (es. <em>Two Factor</em> o <em>Wordfence Login Security</em>), disattivalo <strong>prima</strong> di aggiornare per evitare lockout sugli account amministratore. La 2FA nativa di 7.0 non va in conflitto ma può generare richieste doppie di codice TOTP, e gli utenti non capiscono quale plugin sta chiedendo cosa.</p>



<h3 class="wp-block-heading">AI infrastructure e privacy</h3>



<p class="wp-block-paragraph">WordPress 7.0 porta funzionalità AI native (riassunti, generazione bozze, tag suggeriti). Se il sito gestisce dati personali di utenti UE, verifica con il DPO se queste funzionalità trasmettono contenuti a endpoint esterni. In caso, disabilita i blocchi AI fino a quando non hai una DPIA aggiornata.</p>



<h2 class="wp-block-heading">Manutenzione post-aggiornamento</h2>



<p class="wp-block-paragraph">L'aggiornamento non finisce quando spegni la manutenzione. I primi 7 giorni sono i più delicati.</p>



<ol class="wp-block-list">
<li><strong>Giorno 1-2:</strong> monitora log PHP/MySQL, tassi di errore 5xx, tempo medio di risposta</li>



<li><strong>Giorno 3-5:</strong> raccogli feedback da editor e autori, soprattutto su collaborazione real-time e template</li>



<li><strong>Giorno 7:</strong> primo <code>wp db optimize</code> e verifica dimensione tabella options (l'autoload si gonfia)</li>



<li><strong>Giorno 14:</strong> rimuovi plugin di staging/debug aggiunti temporaneamente e ripulisci le tabelle di transients scaduti</li>
</ol>



<h2 class="wp-block-heading">Quando <em>non</em> aggiornare a 7.0</h2>



<p class="wp-block-paragraph">Non tutti i siti devono saltare sul 7.0 il primo giorno. Valuta attentamente di restare su 6.x LTS se ti riconosci in uno di questi casi:</p>



<ul class="wp-block-list">
<li>Stack di hosting bloccato su PHP 7.2/7.3 e provider non reattivo</li>



<li>Plugin core del business senza aggiornamenti da oltre 18 mesi</li>



<li>Temi custom profondamente modificati senza documentazione o manutenzione attiva</li>



<li>Siti e-commerce WooCommerce con flussi di checkout dipendenti da plugin non aggiornati</li>
</ul>



<p class="wp-block-paragraph">In questi casi, meglio investire 1-2 sprint nel risanare lo stack e arrivare al 7.0 in sicurezza, che forzare l'aggiornamento e scoprire i problemi in produzione.</p>



<h2 class="wp-block-heading">Conclusioni</h2>



<p class="wp-block-paragraph">Aggiornare WordPress 7.0 in produzione senza downtime non è magia: è <strong>processo</strong>. Architettura con staging, backup verificati, audit plugin, test funzionali, sequenza di comandi ripetibile, rollback misurato. Una volta che la procedura è in piedi, diventa applicabile a tutte le release future, non solo a questa.</p>



<p class="wp-block-paragraph">WordPress 7.0 è un'evoluzione importante. Affrontarla con metodo ingegneristico significa trasformare un potenziale momento di panico in una <strong>manutenzione programmata di routine</strong>. E una manutenzione di routine è esattamente quello che vuoi, soprattutto se hai un business che gira sul tuo sito.</p>



<p class="wp-block-paragraph">Se stai pianificando l'aggiornamento di un sito complesso e vuoi una mano con la procedura o con la diagnosi di plugin incompatibili, <a href="https://www.mrtux.it/contatti" data-wpel-link="internal" target="_self" rel="noopener">contattaci</a>: facciamo audit pre-upgrade e accompagnamento al deploy da diversi anni e abbiamo visto praticamente ogni tipo di rottura immaginabile.</p>



<hr class="wp-block-separator has-css-opacity"/>



<p class="wp-block-paragraph"><em>Hai già aggiornato a WordPress 7.0? Quali plugin o temi ti hanno creato problemi? Racconta la tua esperienza nei commenti, può essere utile ad altri che stanno per fare lo stesso passaggio.</em></p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/wordpress-7-0-come-aggiornare-in-produzione-senza-downtime/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
