Skip to content

Tutto per WordPress, lo sviluppo web — e non solo

🔍 Cerca e sostituisci in phpMyAdmin: come sostituire testo e URL in un database WordPress

🔍 Cerca e sostituisci in phpMyAdmin: come sostituire testo e URL in un database WordPress

💡 Panoramica rapida:

  • cos'è la funzione cerca e sostituisci in phpMyAdmin e quando ti serve;
  • query SQL passo passo per sostituire testo in un intero database WordPress;
  • come sostituire in blocco i vecchi URL con quelli nuovi tramite phpMyAdmin;
  • panoramica di due plugin alternativi, Better Search Replace e Search & Replace.

Cos'è la funzione cerca e sostituisci in phpMyAdmin e perché ti serve

Immagina di aver cambiato dominio, fatto un rebranding o aggiornato la struttura dei permalink. Da qualche parte nel database di WordPress restano centinaia di vecchi riferimenti in articoli, campi meta e impostazioni del tema. Aprire ogni record e correggerlo a mano? Su un sito di cinque pagine, forse sì. Su duecento pagine, è una giornata persa.

phpMyAdmin è un'interfaccia web per la gestione di MySQL fornita con cPanel su praticamente qualsiasi hosting. Ti permette di eseguire una query SQL che trova e sostituisce una stringa specifica in tutti i record del database in un unico passaggio. Niente plugin, niente codice extra: solo tu, il tuo browser e la query giusta.

Questo metodo, però, ha un rischio: un errore di sintassi può compromettere dati errati. Per questo analizzeremo le query pezzo per pezzo e alla fine ti mostreremo un paio di plugin che eliminano il rischio manuale e offrono un'anteprima prima della sostituzione.

Come cercare e sostituire testo tramite phpMyAdmin

Lo scenario più comune è sostituire una parola o una frase in tutti gli articoli in una volta sola. Ad esempio, un vecchio nome aziendale con uno nuovo, un termine superato o un'email non più valida. Ti basta una query UPDATE in phpMyAdmin.

Passaggio 1: accedi a phpMyAdmin da cPanel

Apri il cPanel del tuo hosting, individua la sezione «Database» e clicca sull'icona phpMyAdmin. Effettua il login (di solito nome utente e password sono gli stessi del cPanel).

Passaggio 2: seleziona il database del tuo sito

Dopo il login, sulla sinistra compare un elenco di database. Clicca su quello che appartiene al tuo sito WordPress. Se non ricordi il nome, controlla il file wp-config.php: la riga define('DB_NAME', 'database_name').

Passaggio 3: vai alla scheda SQL

Nella barra degli strumenti in alto, clicca sul pulsante SQL per aprire la finestra di inserimento della query.

Finestra di query SQL nell'interfaccia di phpMyAdmin

Passaggio 4: inserisci la query SQL per sostituire il testo

La sintassi di base è la seguente:

1UPDATE table_name SET field_name =
2REPLACE(field_name, 'search_term', 'replacement_term');

Per sostituire testo in tutti gli articoli di WordPress, la query è:

1UPDATE wp_posts SET post_content =
2REPLACE(post_content, 'old text', 'new text');

Analizziamola: UPDATE wp_posts punta alla tabella degli articoli; SET post_content modifica il campo post_content; REPLACE(post_content, 'A', 'B') è una funzione che trova la sottostringa A e la sostituisce con B. Attenzione: il prefisso della tabella potrebbe non essere wp_; verifica il valore di $table_prefix in wp-config.php.

⚠️ Prima di eseguire la query, assicurati di fare un backup del database. In cPanel usa la sezione Backup, oppure un plugin come UpdraftPlus. Le query SQL sono irreversibili: non esiste un pulsante «annulla».

Passaggio 5: esegui la query

Clicca sul pulsante «Esegui» in basso a destra. phpMyAdmin eseguirà la query e mostrerà un messaggio con il numero di righe coinvolte (ad esempio, «Righe interessate: 47»). Significa che 47 record contenevano il testo cercato e sono stati aggiornati.

Risultato dell'esecuzione di una query SQL in phpMyAdmin

Fatto. Naviga nel sito e controlla alcune pagine: il vecchio testo dovrebbe essere stato sostituito.

Come sostituire gli URL in un database WordPress tramite phpMyAdmin

Sostituire gli URL è più complesso che sostituire del testo, perché gli indirizzi non sono memorizzati in un'unica tabella ma sono distribuiti in diverse. Ecco dove cercare:

Elenco delle tabelle del database WordPress in phpMyAdmin
  • Articoli e pagine: campo post_content nella tabella wp_posts
  • Meta campi (campi personalizzati): meta_value in wp_postmeta
  • Impostazioni di temi e plugin: option_value in wp_options
  • Commenti: comment_content in wp_comments
  • Menu (gestore link legacy): link_url e link_image in wp_links
  • Metadati utente: meta_value in wp_usermeta

Per coprire tutto in una volta sola, esegui questo set di query (copiane una alla volta e clicca su Esegui dopo ciascuna):

1UPDATE wp_options SET option_value =
2REPLACE(option_value, 'http://old-domain.com', 'https://new-domain.com')
3WHERE option_name = 'home' OR option_name = 'siteurl';
4
5UPDATE wp_posts SET post_content =
6REPLACE(post_content, 'http://old-domain.com', 'https://new-domain.com');
7
8UPDATE wp_postmeta SET meta_value =
9REPLACE(meta_value, 'http://old-domain.com', 'https://new-domain.com');
10
11UPDATE wp_comments SET comment_content =
12REPLACE(comment_content, 'http://old-domain.com', 'https://new-domain.com');
13
14UPDATE wp_links SET link_url =
15REPLACE(link_url, 'http://old-domain.com', 'https://new-domain.com');
16
17UPDATE wp_usermeta SET meta_value =
18REPLACE(meta_value, 'http://old-domain.com', 'https://new-domain.com');

⚠️ Ancora una volta: prima di eseguire, crea un backup completo. Se il tuo sito utilizza dati serializzati (la maggior parte dei temi e plugin lo fa), una semplice sostituzione testuale può rompere la struttura. In quel caso, è meglio usare i plugin della sezione successiva, che gestiscono correttamente la serializzazione.

Plugin per search and replace in WordPress

Il metodo manuale con phpMyAdmin è veloce ma poco sicuro per i principianti. I plugin risolvono due problemi principali: forniscono un'anteprima prima della sostituzione (dry run) e gestiscono correttamente i dati serializzati. Vediamo due opzioni affidabili.

Better Search Replace

Interfaccia del plugin Better Search Replace nel pannello di amministrazione di WordPress

Better Search Replace è il plugin gratuito più diffuso per questa attività, con oltre un milione di installazioni attive. È basato sullo script open source interconnect/it Search Replace DB e utilizza funzioni native di WordPress anziché query SQL dirette.

Come usare il plugin:

  • Installalo e attivalo da «Plugin → Aggiungi nuovo».
  • Vai su «Strumenti → Better Search Replace».
  • Nel campo «Cerca», inserisci il testo o l'URL da trovare.
  • Nel campo «Sostituisci con», inserisci il testo sostitutivo.
  • Nel blocco «Seleziona tabelle», scegli le tabelle necessarie (oppure tutte).
  • Attiva «Esegui come dry run» per un test senza sostituzione effettiva. Il plugin mostrerà quante corrispondenze sono state trovate e in quali tabelle.
Impostazioni del plugin Better Search Replace con l'opzione di prova

Dopo aver verificato, disattiva «Dry run» ed esegui di nuovo la sostituzione, questa volta salvando le modifiche reali.

Pro: gestisce correttamente i dati serializzati, quindi gli URL non si romperanno dopo la sostituzione. Contro: non crea un backup automatico prima della sostituzione (fallo tu con UpdraftPlus o simile).

Prezzo: gratuito.

🔗 Better Search Replace su WordPress.org

Search & Replace

Interfaccia del plugin Search and Replace nella bacheca di WordPress

Search & Replace del team WP Media è un'alternativa con backup integrato. Prima della sostituzione, il plugin può creare un dump del database e salvarlo. Se qualcosa va storto, ripristini dal backup in due clic.

Funzionalità aggiuntive:

  • sostituzione dominio/URL in un clic (scheda separata "Replace Domain / URL");
  • supporto CSV per sostituzioni massive (formato: "termine cercato; termine sostitutivo");
  • cambio del prefisso delle tabelle;
  • supporto multisito.

Il plugin ha oltre 100.000 installazioni attive e una valutazione di 4,3. Ufficialmente non è stato testato con le ultime versioni di WordPress, ma le recensioni degli utenti confermano un funzionamento stabile su WP 6.8 con PHP 8.2.

Contro: l'interfaccia è meno intuitiva di Better Search Replace, con una curva di apprendimento leggermente più alta.

Prezzo: gratuito.

🔗 Search & Replace su WordPress.org

Cosa scegliere: plugin o phpMyAdmin?

Guida rapida: se devi sostituire una o due parole nel testo dei post e hai dimestichezza con la sintassi SQL, phpMyAdmin è più veloce. Se stai cambiando domini, lavori con dati serializzati o non vuoi toccare il database manualmente, installa Better Search Replace e fai una prova a secco. Se ti servono backup integrato e sostituzione massiva, usa Search & Replace.

⁉️🤔 Domande frequenti

Posso annullare una sostituzione dopo aver eseguito una query SQL?

No, una query SQL in phpMyAdmin è irreversibile. È proprio per questo che un backup completo del database è obbligatorio prima di qualsiasi sostituzione. Crealo via cPanel (Backup → Download MySQL Database) o con un plugin come UpdraftPlus. Con un backup puoi sempre riportare il database allo stato precedente.

Cosa sono i dati serializzati e perché una semplice sostituzione di URL li danneggia?

La serializzazione è un metodo per impacchettare strutture complesse (array, oggetti) in una stringa per l'archiviazione nel database. WordPress la usa per impostazioni del tema, dati dei plugin e widget. La stringa s:26:"http://old-domain.com" significa «una stringa di 26 caratteri». Se sostituisci il dominio con uno più corto o più lungo, la lunghezza in s:26 non corrisponderà più al contenuto reale e WordPress non sarà in grado di leggere i dati. I plugin (Better Search Replace, Search & Replace) ricalcolano la lunghezza automaticamente. Una sostituzione SQL diretta no.

Devo per forza usare phpMyAdmin o posso usare WP-CLI?

WP-CLI è un'ottima alternativa se hai accesso SSH. Il comando wp search-replace 'old-domain' 'new-domain' fa la stessa cosa ma con gestione automatica della serializzazione. In realtà è più sicuro di phpMyAdmin perché WP-CLI lavora attraverso le API di WordPress anziché direttamente con MySQL. Tuttavia, non tutti i provider di hosting offrono accesso SSH nei piani più economici, mentre phpMyAdmin è disponibile quasi ovunque.

Posso sostituire solo in articoli specifici anziché nell'intero database?

Sì, aggiungi una condizione WHERE alla query SQL. Ad esempio, per sostituire testo solo negli articoli di una categoria specifica: prima trova l'ID della categoria, poi:

1> UPDATE wp_posts SET post_content =
2> REPLACE(post_content, 'old', 'new')
3> WHERE ID IN (
4> SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id = 12
5> );
6>

Ma è molto più semplice fare una sostituzione completa con una prova simulata in Better Search Replace; il plugin mostrerà la tabella e il numero di corrispondenze e potrai deselezionare manualmente le tabelle non necessarie.

Cosa devo fare se il sito smette di caricarsi dopo una sostituzione di URL?

Primo, niente panico. Secondo, ripristina il database dal backup (hai fatto il backup, vero?). Terzo, la causa probabile sono dati serializzati danneggiati. Usa il plugin Better Search Replace, che è progettato specificamente per la sostituzione di domini e gestisce correttamente la serializzazione. Dopo aver ripristinato il database, esegui la sostituzione tramite il plugin.

Quale metodo di ricerca e sostituzione scegliere: riepilogo finale

La scelta dipende da tre fattori: cosa stai modificando, quanto è grande il sito e il tuo livello di dimestichezza con SQL.

  • Testo in pochi articoli → phpMyAdmin con UPDATE wp_posts. Veloce, ma senza anteprima.
  • Cambio completo di dominio o migrazione HTTPS → Better Search Replace. La prova simulata mostra tutte le righe interessate prima della sostituzione reale e la gestione integrata della serializzazione previene dati danneggiati. È lo standard di riferimento per le migrazioni.
  • Necessità di backup integrato → Search & Replace. Crea un dump del database prima della sostituzione e può ripristinarlo.

La regola d'oro resta invariata: backup, backup e ancora backup prima di toccare il database in qualsiasi modo. Un singolo comando UPDATE senza backup può mandare giù il sito, ma con un backup è solo uno strumento di lavoro che fa risparmiare ore di lavoro ripetitivo.