Stamattina ho deciso di risolvere un piccolo problema su uno dei miei siti che, pur essendo piccolo, mi infastidiva da temo: i self-pingback che appaiono nella sezione commenti dei siti WordPress.
Il meccanismo di funzionamento dei pingback è semplice: se qualche sito esterno cita i vostri contenuti, nella sezione commenti appare un avviso con link alla pagina in cui siete citati: in un’epoca in cui gli inbound link, ovvero i link in entrata verso un sito, facevano tutta la differenza del mondo in quanto a posizionamento organico, questa era (e rimane) una funzione assolutamente utile.
Il problema è che, se gestite i contenuti con una buona struttura di link interni, ovvero collegamenti ad argomenti correlati contenuti sempre nel vostro sito, il meccanismo vi segnala comunque il pingback in arrivo, sporcando di fatto i dati.
Come risolvere quindi?
WordPress fornisce solo un primitivo interruttore acceso/spento: o avete il traccimento dei pingback, o non lo avete.
Punto.
QUindi come risolvere?
Semplice, con uno snippet di codice da inserire nel vostro file functions.php (mi raccomando, usate un tema child).
Eccolo.
function wordpress_no_self_ping( &$links ) {
$home = wp_parse_url( home_url(), PHP_URL_HOST );
foreach ( $links as $l => $link ) {
$link_host = wp_parse_url( $link, PHP_URL_HOST );
if ( $link_host === $home ) {
unset( $links[ $l ] );
}
}
}
add_action( ‘pre_ping’, ‘wordpress_no_self_ping’ );
Ultimi contenuti pubblicati
>> AI e narrativa
FAQ
I pingback sono notifiche automatiche che WordPress può generare quando un sito inserisce un link verso un vostro articolo o una vostra pagina. In pratica, se un altro sito vi cita, WordPress può mostrarvi quella citazione nella sezione commenti del contenuto linkato.
In teoria è una funzione utile: vi aiuta a capire chi sta collegando i vostri contenuti e, in alcuni casi, può diventare un piccolo segnale della circolazione del vostro articolo in rete. Il problema è che, come spesso accade con WordPress, una funzione nata per essere utile può diventare fastidiosa se lasciata lavorare senza controllo.
Pingback e trackback servono entrambi a segnalare che un contenuto è stato linkato da un altro sito, ma non funzionano nello stesso modo.
Il trackback è più vecchio e più manuale: viene inviato intenzionalmente e può includere anche un estratto del contenuto che vi sta citando. Il pingback, invece, è automatico: WordPress rileva il link e invia una notifica senza allegare un vero estratto del testo.
I self-pingback sono pingback generati dal vostro stesso sito.
Succede quando, dentro un articolo, inserite un link verso un altro contenuto pubblicato sempre sullo stesso dominio. Dal punto di vista della SEO e dell’esperienza utente, i link interni sono una buona pratica: aiutano Google a comprendere meglio la struttura del sito e aiutano i lettori ad approfondire.
Il problema è che WordPress, se i pingback sono attivi, può interpretare anche quei link interni come collegamenti da notificare. Risultato: vi ritrovate nella sezione commenti una serie di segnalazioni generate dal vostro stesso sito. Non proprio il massimo della pulizia.
No, nella maggior parte dei casi non sono pericolosi. Non indicano un problema di sicurezza, non significano che il sito sia stato compromesso e non penalizzano automaticamente il posizionamento su Google.
Sono però fastidiosi e poco utili. Sporcano la sezione commenti, rendono meno leggibile la moderazione e possono confondere chi usa i commenti anche come piccolo strumento di monitoraggio delle citazioni esterne.
In altre parole: non è un incendio, ma è una perdita dal rubinetto. E, se avete un sito con molti contenuti e molti link interni, prima o poi vi ritrovate il lavandino pieno.
Dipende dal tipo di sito.
Se gestite un blog personale, un sito aziendale, un magazine o un progetto editoriale in cui vi interessa sapere quando altri siti vi linkano, disattivare completamente i pingback può essere una scelta troppo drastica.
WordPress permette di intervenire da Impostazioni → Discussione, disattivando le notifiche dei link da altri blog, cioè pingback e trackback. Questa opzione però spegne la funzione in modo generale, non distingue tra link interni e link esterni.
La soluzione più elegante, quindi, è bloccare solo i self-pingback e lasciare attivi i pingback provenienti da altri domini.
No. Eliminare i self-pingback non significa eliminare i link interni.
Questa è la distinzione fondamentale: lo snippet non rimuove i collegamenti tra i vostri contenuti, non cambia la struttura dei link interni e non impedisce a Google di scoprire le vostre pagine. Si limita a evitare che WordPress invii a sé stesso una notifica ogni volta che trova un link verso il proprio dominio.
I link interni restano dove sono, continuano a essere utili per la navigazione, per la distribuzione del valore tra le pagine e per la comprensione semantica del sito. Semplicemente, non vi intasano più la sezione commenti.
Entrambe le soluzioni possono funzionare, ma dipende dal vostro livello di confidenza con WordPress.
Un plugin è più comodo per chi non vuole toccare codice. Lo installate, lo attivate e delegategli il lavoro. Lo svantaggio è che aggiungete un altro componente al sito, con relativi aggiornamenti, compatibilità e manutenzione.
Lo snippet, invece, è una soluzione più leggera: poche righe di codice nel file functions.php del tema child, oppure in un plugin personalizzato per funzioni del sito. È una strada più pulita, ma richiede un minimo di attenzione: un errore di sintassi in PHP può bloccare il sito.
Perché se modificate direttamente il functions.php del tema principale, rischiate di perdere la modifica al primo aggiornamento del tema.
Il tema child serve proprio a questo: permette di personalizzare il comportamento del sito senza toccare direttamente i file del tema padre. È una buona pratica generale in WordPress, non solo per i pingback.
In alternativa, potete inserire lo snippet in un piccolo plugin personalizzato o in uno strumento affidabile per la gestione degli snippet. L’importante è non infilare codice a caso nel sito “finché funziona”, perché WordPress perdona molto, ma non tutto.
No, se scritto correttamente blocca solo i pingback generati dal vostro stesso dominio.
Il codice controlla l’elenco dei link trovati nel post prima che WordPress invii i pingback. Se un link appartiene allo stesso dominio del sito, viene rimosso dalla lista dei link da notificare. I link verso siti esterni, invece, restano nella lista e possono continuare a generare pingback.
È proprio questo il vantaggio rispetto all’interruttore generale di WordPress: non spegne tutto, filtra solo ciò che non serve.
Sì. Lo snippet impedisce la generazione di nuovi self-pingback, ma non rimuove automaticamente quelli già presenti.
Per pulire lo storico dovete intervenire dalla sezione Commenti di WordPress, cercare i pingback interni e cancellarli manualmente. Su siti molto grandi può essere utile procedere con più attenzione, magari filtrando o usando strumenti di gestione del database, ma su un sito normale la pulizia manuale è spesso sufficiente.
Prima di cancellare in blocco, comunque, meglio controllare: non tutti i pingback sono inutili. Alcuni potrebbero arrivare davvero da siti esterni e avere un valore informativo.
Meno di una volta, ma non sono necessariamente inutili.
Nei primi anni del blogging erano un modo semplice per seguire le conversazioni tra siti diversi. Oggi molte citazioni passano dai social, dalle newsletter, dai motori di ricerca, dai sistemi di analytics o da strumenti SEO più evoluti.
Detto questo, in alcuni contesti i pingback possono ancora segnalare citazioni reali e link in entrata interessanti. Il punto non è demonizzarli, ma gestirli con criterio. Disattivarli del tutto può avere senso su alcuni siti; filtrare i self-pingback è invece una soluzione più chirurgica.
La soluzione migliore, nella maggior parte dei casi, è mantenere i link interni, evitare i self-pingback e lasciare a WordPress la possibilità di ricevere notifiche da siti esterni.
In pratica: non buttate via lo strumento solo perché WordPress lo usa con la delicatezza di un elefante in un negozio di cristalli. Correggete il comportamento che vi disturba e tenete il resto.
È esattamente quello che fa lo snippet: non spegne i pingback, non tocca la SEO, non elimina i link interni. Si limita a dire a WordPress una cosa molto semplice: “grazie, ma non ho bisogno che tu mi avvisi quando mi linko da solo”.

