Avete appena ricreato alcune pagine del vostro sito. Le vecchie hanno un buon posizionamento sui motori di ricerca e non volete perderlo. Come potete fare per inoltrare il traffico delle vecchie pagine alle nuove senza perdere il vostro posizionamento ? Potete farlo con il Redirect 301.
Che cosa è un redirect 301 ?
Il redirect 301 è il miglior metodo che abbiamo per mantenere il ranking sui motori quando reindirizziamo una pagina del nostro sito.
Il codice “301″ viene infatti interpretato come “moved permanently”. Dopo il codice infatti va poi specificata la vecchia pagina seguita da uno spazio e poi la nuovo pagina.
Per implementarlo basta aggiungere questo codice all’interno del file .htaccess (oppure direttamente nel virtualhost)
Cosa è il file .htaccess ?
Quando un visitatore/spider richiede una pagina web, il web server controlla la presenza del file .htaccess.
Il file .htaccess contiene istruzioni specifiche per alcuni tipi di richieste, incluse sicurezza, redirect e gestione errori.
Come implementare un redirect 301
- Per creare un file .htaccess aprite un qualsiasi editor di testo, create un nuovo file e salvatelo come .htaccess (senza estensioni). Nel caso di windows potreste avere problemi a salvare il file iniziando con il punto (.) quindi in questo caso chiamatelo htaccess.txt e poi una volta inviato via FTP sul server rinominatelo.
- Se avete già un file .htaccess sul vostro server, scaricatelo ed editatelo.
- Inserite il seguente codice nel vostro file .htaccess:
redirect 301 /vecchia/vecchia.html http://www.tuodominio.com/nuovapagina.html - Se il vostro file .htaccess contiene già delle righe di codice saltate una linea e scrivete l’istruzione lì senza cancellare quelle già presenti.
- Salvate il file .htaccess
- Inviate il file nella cartella root del vostro server.
- Testate il tutto scrivendo nel browser la vecchia pagina. Dovreste essere immediatamente inoltrati alla nuova.
Note: E’ importantissimo non aggiungere “http://www” alla prima parte dell’istruzione, ma mettere solamente il percorso a partire dal livello più alto del vostro sito.
Assicuratevi inoltre che ci sia lo spazioe tra questi due elementi:
redirect 301 (l’istruzione che indica che la pagina è spostata per sempre)
/vecchia/vecchia.html (il percorso e nome del file da spostare)
http://www.tuodominio.com/nuovapagina.html (il nuovo percorso e nome del file)
Quando gli spider dei motori di ricerca passeranno in esame il tuo sito seguiranno le regole che hai inserito nel file .htaccess.
In realtà gli spider non leggono il file .htaccess, ma riconoscono la risposta dal server come valida.
Durante il successivo aggiornamento dei motori il vecchio file verrà eliminato e rimpiazzato con il nuovo. A volte può capitare di vedere alternanze tra i file e alcune fluttuazioni che possono durare dalle 6 alle 8 settimane in riferimento alle linee guida di Google.
Altri metodi per implementare il redirect 301
- Per reindirizzare tutti i file di un tuo dominio puoi usare queste regole nel tuo file
.htaccess se sei su server linux/unix:redirectMatch 301 ^(.*)$ http://www.dominio.comredirectMatch permanent ^(.*)$ http://www.dominio.comPuoi anche usare una regola delle seguenti nel .htaccess file:
redirect 301 /index.html http://www.dominio.com/index.htmlredirect permanent /index.html http://www.dominio.com/index.htmlredirectpermanent /index.html http://www.dominio.com/index.htmlQuesto farà il redirect della pagina “index.html” verso un altro dominio usando un
redirect 301-Moved permanently. - Se hai bisogno di fare redirect da http://miosito.com a
http://www.miosito.com e hai il mod_rewrite abilitato sul tuo server puoi inserire le seguenti regole nel tuo file .htaccess:Options +FollowSymLinksRewriteEngine onRewriteCond %{HTTP_HOST} ^miosito.comRewriteRule ^(.*)$ http://www.miosito.com/$1 [R=permanent,L]oppure questo:
Options +FollowSymLinksRewriteEngine OnRewriteCond %{HTTP_HOST} ^miosito.com$ [NC]RewriteRule ^(.*)$ http://www.miosito.com/$1 [R=301,L] - Se vuoi reindirizzare le tue pagine .html verso pagine .php e hai il mod_rewrite abilitato sul tuo server puoi inserire queste regole nel tuo file .htaccess:
RewriteEngine onRewriteBase /RewriteRule (.*).html$ /$1.php - Se vuoi reindirizzare le tue pagine .html o .htm verso delle pagine .shtml perché usi Server Side Includes (SSI) aggiungi queste regole al tuo .htaccess:
AddType text/html .shtmlAddHandler server-parsed .shtml .html .htmOptions Indexes FollowSymLinks IncludesDirectoryIndex index.shtml index.html

Ok, informazione interesante e completa, ci stò provando per tutto il sito su un nuovo dominio … ha funzionato per un giorno e adesso non mi reindirizza. Proverò con una delle altre stringhe e vi tengo aggiornati su quella che funziona meglio
Come ha funzionato ed ora non funziona più ?
Questo è un po’ strano.
Ti ringrazio tantissimo, il tuo how to mi ha aiutato a risolvere un bel problema.
Grazie mille!
Sono davvero felice !!!
Ma l’immagine del header del tuo blog, non sarebbe stato più bello
{
return ($nome==’andrea’ && $cognome==’pernici’);
}
AHAHAH
Ciao.
Ciao Andrea
Puoi darmi assistenza per fare un redirect 301?
Puoi contattarmi tramite mail?
Grazie
non ho capito cosa scrivere sul file .htacces… almeno mi sembra di aver capito che se il voglio reindirizzare un pagina es:
redirect 301 /http://mionome.it/gallina.html poi metto lo spazio e poi nuova pagina http://www.mionome.it/galline_fritte.html
giusto???
scusate per le galline ma nn mi veniva nulla in mente:-)
Puoi usare questo:
redirect 301 /gallina.html http://www.mionome.it/galline_fritte.html
perfetto grazie mille, oggi provo a spostare tutto perche e da un quasi un mese e ancora ci sono le pagine cecchie in giro..
grazie a presto
ciao ho rifatto tutti le redirectori ma adesso del sito non si vede piu nulla…neanche la home page..dice errore 500 (se puo interessare uso mozilla) ciao e grazie
Molto probabilmente non hai la possibilità di usare il .htaccess nel tuo host.
grazie per l’informazione!
Ciao Andrea, il Global translator ha colpito anche me.
Traffico aumentato anche dall’estero, ma un sacco di errori 404.
Volevo utilizzare la tua stessa tecnica però il modo in cui il traduttore crea le mie pagine è diverso da come lo hai descritto tu e non so come agire.
Nel mio caso i 404 sono relativi a pagine così:
http://www.nomesito.it/2009/10/29/nome-articolo/2/&rurl=translate.google.com&lang=it&usg=ALkJrhgxr8SDra1HOh9xPgJRPSJyx30jFA
Cosa ci scrivo nell’htacces?
A cosa fai riferimento quando parli del Global Traslator che ha colpito anche te ?
Inoltre cosa vuoi dire quando dici che il traslator non crea la pagina come l’ho descritto io ?
Scusa il ritardo nella risposta
Ciao Andrea, preso dalla foga non sono stato molto chiaro. Avevo un plugin installato per tradurre il blog in altre lingue; mi ha causato un sacco di errori 404 e volevo risolvere col 301. Solo che ho centinaia di pagine non trovate con url simili a quello indicato. Ti sarei grato se mi potessi dare qualche indicazione.
Così non posso aiutarti purtroppo…dovresti mostrarmi il tuo sito e darmi qualche informazione in più.
Grazie della disponibilità Andrea, l’url del blog è faresoldierisparmiare.it.
Se mi dici quale tipo di informazioni ti servono te le posto immediatamente.
Ho trovato in rete queste due soluzioni ma non so quale sia più indicata o corretta.
Ho preso spunto da un post su google webmaster: http://tinyurl.com/37s22sq
Soluzioni trovate:
RedirectMatch 301 ^/(en|fr|es|ru|de)/(.*)$
http://www.nomesito.it/$2
RewriteCond %{HTTP_HOST} ^.*$
RedirectMatch 301 ^/(en|fr|es|ru|de)/(.*)$
http://www.nomesito.it/$2
Ora non usi più quel plugin.
Hai provato ad usare il plugin segnalato nel forum ?
Purtroppo non conosco il plugin in questione quindi non so dirti .
Queste direttive htaccess le hai provate ?
Usavo il plugin indicato nel forum. L’ho disinstallato
ma ho lasciato in cache le pagine tradotte. Poi ne
ho bloccata l’indicizzazione tramite robots ma le pagine
erano già in errore 404. Grazie comunque della
tua disponibilità. Solo un’ultima cosa, visto che sto per
provare una delle due direttive. Cosa cambia nei 2 esempi
tra RedirectMatch …. e RewriteCond %{HTTP_HOST} ?
Grazie della disponibilità.
IN uno fai operazioni singole nell’altro fai un match più ampio.
Salve a tutti, come faccio a fare un redirect di:
www. miosito.it/ pagina
su
www. miosito.it/ pagina.html
google le vede come due pagine distinte ha dato perfino due punteggi differenti a entrambe e mi da contenuto duplicato please aiutatemi!
Filippo è scritto sopra nella guida…cmq:
redirect 301 /pagina http://www.miosito.it/pagina.html
Oppure usa il tag canonical nell’header.
il problema è che non riesco ad entrare nell’header di /pagina
(con file zilla non la trovo..esce solo pagina.html)
ma solo nell’header di /pagina.html poi dovrei mettere
è sufficiente mettere il tag canonical solo nella pagina.html
(che è quella che voglio venga indicizzata)??
il redirect 301 come mi hai mandato non funziona
Scusa filippo ma dove lo metti il codice per il redirect ?
Cosa vuol dire che non riesci ad entrare nell’header della pagina con filezilla ?
Credo che tu stia proprio sbagliando qualcosa.
Ciao Andrea ti chiedo gentilmente, ho fatto un restyling ad un sito in wordpress (lnx.marinaresidence.it) il vecchio sito http://www.marinaresidence.it è su server aruba (windows) che mi viena l’accesso al file .htaccess e mi vieta cmq di crearlo. Come posso fare il redirect 301 di tutto il sito vecchio sul nuovo??
Basta inserire il redirect solo nella home del vecchio sito come suggerisce aruba?
Grazie
Ciao Emiliano, se il vecchio sito è in wordpress allora puoi semplicemente includere il redirect nell’header.php del tuo tema.
In questo modo avrai redirect per ogni pagina.
Purtroppo no…
è su server windows e non sono “ferrato” ma penso sia in html
ti posto uno stralgio di index.. come posso fare il 301 su wordpress?
MARINA RESIDENCE HOTEL VILLAGGIO – Castro, Lecce, Salento, Puglia.
<!–
function openPictureWindow_Fever(imageName,imageWidth,imageHeight,alt,posLeft,posTop) {
newWindow = window.open("","newWindow","width="+imageWidth+",height="+imageHeight+",left="+posLeft+",top="+posTop);
newWindow.document.open();
newWindow.document.write('’+alt+”);
newWindow.document.write(”);
newWindow.document.write(”);
newWindow.document.close();
newWindow.focus();
}
//–>
Grz
Qui trovi tutte le modalità per fare il 301 anche via HTML:
http://www.giorgiotave.it/wikigt/os/Redirect_301#HTML
Grazie. Scusa se sono “duro” ma devo inserirlo solo nel file index o in tutte le pagine del sito???
Ovviamente in tutte le pagine…se è in html non c’è altra via.
Grazie.. e visto che sono duro ti chiedo.. le pagine devo svuotarle per nonc reare doppi contenuti o inserirsco solo i redirect tra gli head??
E’ indifferente puoi fare come vuoi.
GRAZIE DAVVERO E SORRY