Gestendo un sito web, può capitare di dover/voler rimuovere dei contenuti che, per le ragioni più diverse, reputiamo inutili o obsoleti. Cancellare una pagina è una cosa assolutamente fisiologica e normale nell’arco dell’esistenza di un sito web, ma esistono diversi modi per gestirla, soprattutto dal punto di vista SEO (ottimizzazione per i motori di ricerca).
Se utilizzi un sito WordPress, sai benissimo che cancellare una pagina o un articolo è un’operazione estremamente semplice. Inoltre WordPress ha il vantaggio di disporre di un cestino, ossia una sorta di anticamera alla cancellazione definitiva di tali contenuti. Tutto quello che è stato spostato nel cestino di WordPress non è più raggiungibile dai visitatori, ma può comunque essere recuperato dal proprietario del sito.

L’aspetto che però mi preme sottolineare in questo post, sono le ragioni che possono portare all’eliminazione di un post, dato che diverse motivazioni richiedono azioni differenti.
Eliminazione o reindirizzamento
Se ad esempio decidi di cancellare un articolo che tratta dell’argomento X semplicemente perché ne hai scritto uno nuovo che affronta quel tema in maniera più completa e aggiornata, forse la soluzione più adatta è quella di eliminare il vecchio articolo e impostare un reindirizzamento di tipo 301 verso l’URL del nuovo contenuto. Per fare questo, su WordPress ti consiglio l’utilizzo di plugin come Safe Redirect Manager o Redirection (il primo è molto più leggero ed efficiente). Anche numerosi plugin SEO per WordPress offrono una funzionalità simile.
Lo stesso discorso vale se, per un qualsiasi motivo, hai la necessità di modificare l’URL di una pagina. Se ad esempio vuoi trasformare l’URL www.pippo.it/2011/12/1o/ricetta-uova-in-camicia/ in www.pippo.it/ricetta-uova-in-camicia/ è sicuramente opportuno predisporre un reindirizzamento permanente (quindi di tipo 301) dal vecchio al nuovo URL.
Redirect 301
Il redirect 301 è il metodo migliore per informare i visitatori ed i motori di ricerca che il contenuto cercato è stato spostato. Questo sistema è quello che generalmente crea meno problemi per quanto riguarda l’indicizzazione delle pagine del sito da parte dei motori di ricerca. È utile sia quando si tratta di reindirizzare i contenuti all’interno dello stesso dominio, sia quando hai la necessità di spostare il tuo intero sito su un nuovo dominio.
I redirect 301 hanno un impatto significativo anche sulla gestione dei backlink, cioè i link provenienti da altri siti web che puntano al tuo sito. Quando un motore di ricerca vede un redirect 301, interpreta questo come un segnale che il contenuto della pagina originale è stato spostato permanentemente alla nuova URL. Di conseguenza, la maggior parte del “link juice” o valore SEO del backlink originale viene trasferita alla nuova pagina. Questo può aiutare a mantenere o migliorare la classificazione della pagina nei risultati di ricerca.
Anche senza utilizzare alcun plugin, ecco alcuni metodi per effettuare il redirect 301.
Redirect 301 con PHP
<?php
// URL di destinazione
$redirect_url = "http://www.example.com";
// Redirect 301
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . $redirect_url);
exit();
?>
Redirect 301 con .htaccess
Puoi sfruttare il file .htaccess, normalmente presente nella directory principale di un sito WordPress per impostare dei reindirizzamenti, ad esempio in questo modo:
Redirect 301 /url-vecchio-post/ https://www.dominio.com/url-nuovo-post/
Come gestire le pagine da eliminare in modo permanente
Se però decidi di cancellare definitivamente (e sottolineo definitivamente) una pagina o un articolo, allora la soluzione più appropriata è quella di impostare un codice di risposta HTTP 410 (Gone) per quel determinato URL. Tale codice di risposta informa il richiedente (ad esempio il crawler di un motore di ricerca) che tale pagina non esiste più e che non è destinata a ritornare. Se sei interessato, qui puoi trovare una spiegazione di tutti i principali codici di risposta HTTP.
Rispetto al più tradizionale codice di risposta HTTP 404 (Not Found) c’è una apparentemente sottile, ma sostanziale differenza. Il codice 404 infatti informa genericamente il richiedente che tale risorsa (pagina, articolo o qualsivoglia file) non è stata trovata, ma senza fornire ulteriori dettagli. Potrebbe essere una pagina temporaneamente non disponibile oppure mai esistita che non fa alcuna differenza. Il codice 410 invece informa che tale pagina esisteva, che ora non c’è e che non tornerà mai più disponibile. Il codice 410 è quindi il codice di risposta HTTP ideale per gestire quelle pagine che desideriamo eliminare in modo permanente da un sito.
Su WordPress tale codice di risposta 410 può essere facilmente impostato con il plugin 410 for WordPress, scaricabile gratuitamente dal repository ufficiale di WordPress
Una volta installato, questo plugin crea una pagina all’interno della sezione Plugin dell’interfaccia di amministrazione di WordPress che consente di inserire gli URL per i quali desideriamo attivare il codice di risposta 410. Il plugin 410 for WordPress consente inoltre di visualizzare una lista dei più recenti errori 404 permettendo di trasformarli, se desideriamo, in 410.

La pagina sottostante mostra 3 codici di risposta differenti per lo stesso URL in questi 3 rispettivi casi:
- articolo pubblicato sul sito
- articolo eliminato dal sito e spostato nel cestino di WordPress
- articolo eliminato dal sito, spostato nel cestino di WordPress e codice di risposta 410 impostato

Se ti interessa vedere che codice di risposta HTTP restituisce una pagina, ci sono vari strumenti per farlo:
- da riga di comando digitando curl -I http://www.dominio.com se hai disposizione un terminale e hai installato curl;
- usando applicazioni come ad esempio Screaming Frog, decisamente eccessivo per questo scopo;
- oppure usando uno dei tanti servizi online disponibili gratuitamente come ad esempio urivalet.com, httpstatus.io o Monitorbacklinks.
Giusto per tranquillizzarti, non è che se fino ad ora per tutte le pagine che hai eliminato sul tuo sito hai utilizzato il codice 404 anziché il 410, finirai nel girone dantesco degli ignavi ;)
Lo stesso John Mueller di Google sulla questione relativa all’impiego dei codici 404 e 410 non si è espresso con toni drammatici:

Anche se, a dire il vero, tra la comunicazione di Google e la realtà a volte ci sono delle belle differenze ;)
Personalmente ho verificato più di una volta una considerevole differenza di velocità da parte di Google nell’apprendere che una pagina è stata effettivamente eliminata usando un codice 410 rispetto a un generico e tradizionale 404. Quindi, se hai il tempo, la voglia e la possibilità: usa il codice 410 quando è necessario.
Il codice 404 non è necessariamente un male
Il codice 404 inoltre, non va visto necessariamente sempre come un problema. Anzi, è buona cosa che ci sia e che il web server che ospita il proprio sito lo gestisca correttamente. Il codice 404 ad esempio va assolutamente utilizzato quando vengono richiesti URL inesistenti su un sito.
Purtroppo ho visto spesso web server configurati in modo da rispondere sempre con un codice di risposta HTTP di tipo 200 per qualsiasi URL venisse richiesto. Tale comportamento non è corretto e se richiedo un URL inventato di sana pianta è giusto che il web server mi restituisca un codice 404.
Ciao, vorrei chiederti un consiglio, non riesco ad effettuare su htaccess un redirect 301 per questo link
‘www.miosito/tag/titoloartico?lang=it ==> ‘www.miosito/tag/titoloartico’
Sai darmi una soluzione?
Grazie
Ciao,
questo potrebbe funzionare:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/tag/titoloartico$ [NC]
RewriteRule ^(.*)$ tag/titoloartico/? [R=301,L]
Ciao Tiziano,
io ho un sito multilingua ottimizzato per l’italiano, e alcune traduzioni di alcune pagine (chiaramente non visibili dall’utente). Al momento, vorrei eliminare definitivamente queste traduzioni (che sono comunque state scansionate da google), per poi magari riprenderle in mano tra diversi mesi. Secondo te è corretto utilizzare il codice 410 per ognuna delle pagine tradotte che vado ad eliminare?
Ciao,
ti consiglio di dare un’occhiata alle indicazioni fornite da Google: https://support.google.com/webmasters/answer/1663419?hl=it
Diciamo che teoricamente il 404 può bastare, ma il 410 può aiutare a velocizzare il processo.
Ciao Tiziano, bell’articolo!
ma se io ho un articolo scritto tempo fa e ormai indicizzato su google, e però decido che voglio modificare l’url, la cambio da modifica articolo di wordpress, clicco aggiorna. E poi devo impostare un redirect se quindi l’url è passato da /pippo-pluto-paperino/ a /paperino-pippo-nonnapapera/ ?
devo impostare un redirect 301 dal primo al secondo? non lo fa in automatico wordpress quando aggiorno un articolo modificando l’url?
Ciao!
Ciao Marco, sì, se aggiorni lo slug del post WordPress solitamente si occupa anche di attivare un redirect 301 dal vecchio al nuovo URL. Ti consiglio comunque di verificare che sul tuo server questa cosa funzioni correttamente.
Tieni però presente che modificando l’URL di un post vai a perdere il conteggio delle condivisioni social precedenti.
Grazie Tiziano. Molto gentile.
Ho controllato con screamingfrog per vedere se mi avesse fatto il 301 e si, é tutto ok. Per i conteggi social non lo sapevo. Grazie.
Cercherò di non modificare gli slug dei post in futuro. L’ho fatto solo con due articoli per aggiustare le parole chiave e avere un posizionamento seo migliore.
Ciao Tiziano, ti seguo da un po’…. anche grazie alla collaborazione che hai con SiteGround. Ti chiedo una conferma, per questo mi allaccio a questa domanda… sono nuova di WP e quindi mi sta capitando di sistemare gli articoli dopo averli già pubblicati anche per ottimizzarli Seo. Quindi mi è capitato di modificare anche più volte il permalink ( che è url del mio articolo giusto ? ). Ora se ho ben capito se, dovendo fare delle modifiche, sistemo il permalink e anche lo slug ( che dovrebberero essere uguali ) posso evitare il reindirizamento 301???? ( per non complicarmi la vita … ). E poi che strumento posso usare per verificare che Google abbia aggiornato l’indirizzo del mio articolo ?
Grazie
Paola
Ciao Paola, solitamente quando vai a modificare il permalink di un articolo già pubblicato, WordPress si occupa già del reindirizzamento 301. Il problema è che non è comunque consigliato modificare spesso gli URL degli articoli.
Ad esempio quando cambi l’URL di un articolo, come prima cosa vai a perdere il conteggio delle condivisioni social che avevi con il vecchio URL.
Per verificare che Google abbia indicizzato un tuo contenuto, il comando più facile è l’operatore info: su Google. In pratica ti basta cercare su Google usando il comando info:URL_DELLA_TUA_PAGINA per verificare se tale indirizzo è indicizzato.
Grazie !!! In pratica devo fare una prova come utente …. In effetti modificare l’articolo è sintomo di ” insicurezza ” … bisogna definirlo in tutto e non modificarlo più, o se necessità farlo apparire come revisionato dallo scritto ( per un valido motivo).
Revisionare e mantenere aggiornati i contenuti di pagine e articoli va benissimo. Ma non cambiare permalink ogni volta che lo aggiorni. Anche perché il nome permalink è relativo al fatto che il link permane.
Su WordPress se non volessi utilizzare il plugin che suggerisci, come potrei procedere usando il file htaccess? Basta inserire Errordocument 410 /page/ ??
No,
con
ErrorDocument 410 /4pagina-410.html
imposti la pagina da visualizzare in caso di errore.
Per fare in modo che una pagina restituisca il codice 410 devi usare
redirect gone /pagina-rimossa.html
o
redirect 410 /pagina-rimossa.html
Ciao Tiziano io invece credo di averla combinata grossa, ho cambiato dai permalink il modo di visualizzare i link /10/2/16/bbbbbbbwrgrtgh in titolo post, ho installato redirection ma non mi prendei redirect ho circa 50000 contenuti e sono nella cacca da 2000 visite giornaliere sono passato a 300 una soluzione sarebbe far rifunzionare i redirect ma non ci si riesce
Ciao, se usi https://it.wordpress.org/plugins/redirection/ e se ho capito correttamente quello che hai fatto, puoi provare questa regola:
URL di partenza:
^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$
URL di arrivo:
http://www.tuosito.it/$4
per farla funzionare devi “flaggare” il checkbox Regex
Ciao, io ho un problema particolare.
Il mio server per gravi problemi tecnici mi ha incasinato il database, per farla breve ho perso definitivamente 113 articoli non più recuperabili (di 2-3 mesi fa) su 8k articoli.
Ecco, nella search di google continuano ad apparire tutti questi link con codice errore 404, ho anche provato a cancellarli attraverso la rimozione url….Non so, cosa può accadere? Sarò penalizzato in qualche maniera, posso rimediare?
Ciao, difficile a dirsi. Di per sé non è un problema eliminare dei contenuti dal proprio sito. Non è che Google ti penalizza automaticamente se elimini delle pagine. Il problema semmai è se quei 113 articoli erano i tuoi contenuti di punta che generavano la maggior parte del traffico organico.
Ciao Tiziano,
complimenti per l’articolo. Molti trattano questo argomento ma spesso in maniera poca chiara.
Avevo un sito in html realizzato anni fa. Aveva una struttura molto semplice.
‘www.nomesito/paginaarticolo.it’
Successivamente sono passato a wp inserendo anche le categorie. Per cui le url sono diventate:
‘www.nomesito/nomecategoria/paginaarticolo.it’
Ora scansionando con gli strumenti di google il sito mi ha tirato fuori una marea di errori 404.. Più di 200.
Sono tutte le vecchie url ‘www.nomesito/paginaarticolo.it’
Mi sembra di aver capito che era necessario fare un 301. In realtà adesso se vado su wp le vecchie url non esistono più (ma google le rileva ancora dandomi errori 404) come faccio adesso a risolvere questo problema?
Perchè google mi rileva tutte le vecchie url se non esistono più?
Grazie infinite per tutti i chiarimenti che mi vorrai darmi!
Enzo
Ciao Vincenzo, se quei vecchi URL del tipo “www.nomesito.it/paginaarticolo” ora sono stati sostituiti da pagine come “www.nomesito.it/nomecategoria/paginaarticolo” allora ti consiglio di impostare un reindirizzamento di tipo 301 in modo che anche i motori di ricerca siano correttamente informati del nuovo URL di quelle pagine.
Buongiorno Tiziano
quasi stesso problema
sito vecchio www.sito.it/index.php/pagina
sito dopo restiling www.sito.it/pagina
quindi le vecchie pagine hanno cambiato URL, ma WP reindirizza “da solo” alla nuova e Google Search Console mi segnala problemi di indicizzazione causa reindirizzamento.
Come posso risolvere?
Grazie
Non tutto quello che segnala Google Search Console è un problema. Ad esempio è diverso se ti segnala delle pagine con reindirizzamento, rispetto alla segnalazione di errori di reindirizzamento. Poi, senza conoscere tutti i dettagli della situazione non posso dirti come risolvere. Se i vecchi URL sono reindirizzati correttamente con un codice 301, non dovrebbe generare alcun problema.
Ciao, ho eseguito la procedura e ho installato il plugin inserendo l’url che voglio far eliminare. In particolare voglio eliminare le pagine di allegato delle immagini che wordpress mi genera automaticamente (persino se metto come link immagine su “nessuna”). Purtroppo non funziona, le pagine continuano a essere presenti nel Blog. Mi potresti darmi una mano ? Ho bisogno che quando creo un articolo con una immagine, wordpress non mi debba creare una pagina di allegato, anche perché se nella barra di ricerca inserisco un termine nullo “” mi escono come risultati tutti gli articoli inclusi quindi quelli degli allegati immagini. Ho notato che la tua barra di ricerca filtra solo gli articoli se non erro, come faccio ad avere un risultato simile ? Se mi puoi essere d’aiuto, sono disposto a mettermi in contatto con te e ricevere maggior supporto pagandoti. Grazie
Se utilizzi il plugin Yoast SEO, vai nella sezione “Aspetto della ricerca” -> Media e imposta su SÌ la voce “Reindirizzare gli URL degli allegati all’allegato stesso?”
Altrimenti, se non usi Yoast SEO, puoi installare il plugin https://it.wordpress.org/plugins/attachment-pages-redirect/
Ciao, una domanda da poco pratica di WordPress.
Ho eseguito il reindirizzamento di due pagine utilizzando un plug-in che ho trovato su WordPress, avvenute per entrambe con successo.
Non capisco però come mai viene mantenuto il titolo (url) sul motore di ricerca (Google Chrome) della vecchia pagina.
Devo fare qualcosa d’altro per fare in modo che si aggiorni titolo e descrizione?
Grazie mille, buona serata,
Francesca
Ciao Francesca, è necessario attendere un po’ di tempo prima che Google recepisca le modifiche effettuate sul sito.