• User

    Rimozione pagine obsolete e http status 410

    Salve a tutti,

    Ho un sito gestito con un CMS e vorrei sapere rimuovendo dei contenuti, come fare per far sapere a GOOGLE di togliere dall'indice quella pagina ma al tempo stesso non far comparire al navigatore una pagina di errore ma reindirizzandolo ad una pagina del sito esempio la home page.

    Leggendo quà e là ho appreso dei vari header da restituire ma non ho trovato molto su come restituire un HTTP/1.1 410 Gone con un reindirizzamento ad un altra pagina.

    COn PHP sarebbe un: header("HTTP/1.1 410 Gone"); ma a questo punto il mio dubbio è se ci aggiungo un header("Location: pagina.est"); nei confronti di GOOGLE compio un operazione penalizzante?

    Mi spiego: GOOGLE si aspetterebbe un redirect a seguito di un HTTP/1.1 301 Moved Permanently ma nel caso di un HTTP/1.1 410 Gone posso far seguire un reindirizzamento?

    In oltre cosi facendo mi troverei la pagina tra gli strumenti per webmaster nella sezione URL non trovati (che hanno restituito lo status 410) e poi potrei provvedere alla rimozione oppure posso aspettare che faccia GOOGLE da solo?

    Grazie,
    Max


  • User Attivo

    Ciao massimo1974,
    il senso del redirect 301 è proprio quello di informare che la pagina che si sta cercando ha cambiato indirizzo permanentemente. E' quindi uno strumento molto utile nel caso di cambio di URL ad una pagina (pagina che deve comunque essere presente).
    Gli spider che troveranno il redirect 301 infatti provvederanno a indirizzarsi verso la nuova pagina, il motore cancellerà la vecchia URL dall'indice ed inserirà il nuovo indirizzo senza significative perdite di posizione.

    Nel tuo caso però mi sembra di capire che non si tratta di un cambio di URL ma proprio di una rimozione di contenuto. In questo caso lo status corretto è il 410 che citavi (o il 404).
    Puoi comunque personalizzare la pagina di errore che mostri ai visitatori (che a mio parere è comunque più corretto rispetto a mostrare la home page, in modo da dare evidenza del fatto che il contenuto è stato rimosso).

    Riguardo la richiesta di rimozione URL, puoi forzarla tramite i wmt in modo che avvenga velocemente, oppure attendere che Google provveda in automatico a rimuovere la pagina dall'indice.


  • User

    Ciao Apusoft,

    Intanto grazie della risposta...

    In effetti rileggendo la guida di google nella sezione come creare una pagina 404 personalizzata lui stesso ci suggerisce di crearla indirizzarci gli utenti (c'è una sezione apposta!) e credo che implicitamente tra le righe si dica di fare esempio in php...

    header("HTTP/1.1 404 Not Found");
    header("Location: pagina-errore-personalizzata.est");

    ma a questo punto mi sorge un dubbio tra l'usare il 404 o il 410.

    Sulla guida di google e sui wmt ho letto principalmente di 404 mentre su altri siti ho letto che da test risulta piu approrpiata la 410...

    Sarà meglio usare la 404 anche se teoricamente per un contenuto DEFINITIVAMENTE rimosso sarebbe piu indicata la 410?


  • User Attivo

    La pagina 404 personalizzata proposta da Google non comporta un redirect. Semplicemente fornisce un codice JavaScript che controlla il contenuto della tua pagina di errore 404, fornendo informazioni utili ai visitatori.
    Nel caso non lo sapessi, la pagina di errore 404 che viene mostrata dipende dalle impostazioni del tuo server e, generalmente, viene offerta la possibilità di personalizzarla.
    A titolo di esempio, su Apache si definisce tramite il file .htaccess con questa direttiva: ```
    ErrorDocument 404 /tua_pagina_404.htm

    
    Riguardo la scelta dello status 404 o 410 ti segnalo questo interessante test eseguito di recente: http://www.simonecarletti.it/blog/2009/02/serve-a-qualcosa-lo-status-http-410/
    Personalmente, da quando l'ho letto, cerco di preferire il 410 al 404.

  • User

    Si lo avevo letto quel post ed era riferito a quello che dicevo che il 410 sembra piu appropriato ed efficace.

    Comunque grazie il mio dubbio era propio se restituendo un 410 potevo fare un redirect lato server ma come tu mi dici devo personalizzare la pagina offerta dal server oppure usare gli strumenti per Web Master di GOOGLE (però in quel caso restituire un 404 altrimenti non funziona presumo)

    Ma in quel caso usando il 410 con .htaccess sarà quindi...

    ErrorDocument 410 /tua_pagina_410.htm ..... GIUSTO?


  • User Attivo

    Sì sì, scusami, la direttiva corretta è ```
    ErrorDocument 410 /not-found.html


  • User

    Mi interessa molto questa cosa , anche perchè non ne so molto.
    Se risolvi, saresti gentile da postare un resoconto?

    Grazie.


  • User Attivo

    Massimo, ripensandoci in pausa pranzo mi vien il dubbio di aver creato un po' di confusione. Riassumo un attimo quello che intendevo dire...

    La direttiva ErrorDocument permette di informare Apache sulla pagina da mostrare nel caso si verifichi l'errore a cui è associata. Quindi usando ErrorDocument 410 /pagina.htm il server mosterà pagina.htm quando rileva un errore 410. L'errore quindi deve essere rilevato dal server e non gestito dalle intestazioni che generi tu con php. Tra l'altro è probabile che il server restituirà l'errore 404 invece che il 410.

    Le intestazioni generate con php le puoi invece gestire tu ed in questo caso puoi usare a piacere il 404 o il 410. Non è necessario il redirect perchè il server mostrerà il contenuto della pagina stessa che genera l'intestazione di errore.

    Per fare un esempio concreto, nel caso volessi usare lo script di Google la pagina sarebbe nel formato ```
    <?php header("HTTP/1.1 410 Gone"); ?>
    ....
    <body>
    <script ... >// lo script di Google per la pagina di errore personalizzata</script>
    </body>...


  • User

    Ok grazie della delucidazione...nel frattempo anche io sto leggendo qua e la e voglio fare una prova pratica.

    Quindi dici di:

    1)Far restituire un header 410 alla pagina dinamica indicizzata da GOOGLE il cui contenuto viene rimosso.

    1. Personalizzare contattando il servizio di hosting la pagina di errore con lo script fornito da google.

    A questo punto mi dovrei trovare gli url delle pagine rimosse tra quelli non trovati di google nei WMT (e qui mi sorge il dubbio..non riporta solo quelli che restituiscono 404?) e a quel punto decidere se attendere la rimozione di google o accelerare la cosa rimuovendoli con lo strumento per la rimozione...giusto?

    Max


  • User Attivo

    I due punti che hai riportato sono corretti ma non sono legati fra loro. Come ti dicevo nel mio ultimo intervento, l'header 410 (o 404) che restituisci tu con php non è quello generato da Apache a cui si applica la pagina indicata da ErrorDocument

    Cerco di essere più chiaro:

    • ErrorDocument informa Apache relativamente alla pagina da mostrare in caso di un certo tipo di errore
    • il server genera l'errore 404 (410) se rileva che effettivamente un file non è presente sul server; in questo caso lo status 404 (o 410) viene gestito direttamente dal server e non c'è motivo di inviarlo da php
    • se invece un URL diventa non più esistente ma non si tratta di un mancato riferimento ad un file reale (uso di CMS, url rewrite....) allora lo status 404 (o 410) dovrà essere inviato da php. In questo caso la pagina che genera l'header di errore conterrà anche il contenuto da mostrare (tuo messaggio o script di Google).

    Si tratta insomma di due cose diverse; l'effetto mostrato al visitatore è lo stesso ma il motivo (e quindi il metodo) di generazione dell'header è diverso.

    Riguardo all'ultima domanda sul WMT, mi spiace ma non ho dati per rispondere. E' comunque una questione interessante, che potresti riproporre in un'altra discussione a parte.


  • User

    Ah ok...quindi nel mio caso poichè il mio problema è gestire le pagine dinamiche generate a partire da un DB, se rimuovo un contenuto che generava una pagina che veniva indicizzata da GOOGLE devo gestire dallo script che generava la pagina l'invio dello status 410 o 404 e la pagina di errore personalizzata tipo in PHP:

    if(contenuto esiste)
    {
    genera la pagina che viene anche indicizzata
    }
    else
    {
    header("HTTP/1.1 410 Gone");
    print(pagina di errore con script di google);
    }

    Forse sta volta ci siamo eh...:-)


  • User Attivo

    Perfetto Massimo, è esattamente quello che devi fare; ti posso garantire che una struttura di questo tipo darà i risultati più corretti.


  • User

    Ok ho già modificato lo script php ora ti aggiornerò su indicizzazione e come reagisce GOOGLE negli strumenti per web master.

    Grazie del prezioso aiuto.

    Massimo


  • User Attivo

    Ciao,
    come procede la cosa? Ci sono stati risultati in questi ultimi giorni?
    Te lo chiedo perchè anche io ho lo stesso tuo problema.

    Ciao


  • User

    procede bene direi...
    Nei Webmaster Tools di G trovi gli errori http (li segnala come errori
    4xx error ) relativi alle pagine dinamiche dei contenuti rimossi e man mano G li rimuove dall'indice.

    Pare funzioni bene isomma..

    Max