• User Attivo

    SEO e 404.

    Ciao a tutti.

    Secondo voi conviene ridirezionare i 404 ad un'apposita pagina o, come ho fatto io, per fare prima, direttamente alla home? Per l'utente, in fondo, è la stessa cosa, ma per i motori?
    Forse per i motori no, nel senso che, in teoria, la pagina customizzata per il 404 (in realtà una pagina reale a cui reindirizzare tramite .htaccess) potrebbe essere concepita come doorway/landing meglio di quanto non sia concepita una home page.

    Io non ho ancora preso una posizione sull'argomento. Voi che ne pensate?


  • Super User

    Per i motori la cosa importante è che l'intestazione http contenga un codice 404 e non un 200 o un 301 o 302.

    Per gli utenti forse sarebbe utile indicare che la risorsa cercata non esiste più. Cosa che la home page, per quanto bella e funzionale, non fa.

    :ciauz:


  • User Attivo

    Conferno, basta che il codice sia corretto, e potrai verificarlo anche in google sitemaps.
    Discutibile la scelta di fargli vedere subito la home, l'utente si deve rendere conto che ha sbagliato a digitare o che la pagina linkata non è quella che tu gli fai vedere e quindi suggerigli di cercarla nel sito.


  • Super User

    Se l'utente (che ha sempre fretta) incappa in una pagina di errore hai perso un'opportunità di fargli trovare quello che cerca. Potrebbe spazientirsi e quindi effettuare la ricerca su di un altro sito.

    Se fai un redirect verso la home non è detto che questa informazione sia individuabile in pochi secondi, anzi magari è posta in una pagina interna, ad un livello inaccessibile direttamente dalla home. In questo caso ti sei giocato la seconda opportunità e, di fatto, hai perso l'utente.

    Se invece crei una pagina 404 customizzata e, soprattutto, dotata di certe caratteristiche, allora ci sono grosse probabilità che tu riesca ad accontentarlo.

    Vediamo alcune di queste caratteristiche:

    1. Crea una frase breve e sintetica nella 404 in cui spieghi che la risorsa al momento non è disponibile e spiega il perchè. A mio avviso scrivere che la pagina non esiste o che non è disponibile (e/o comunque utilizzare proprio il termine "errore 404") limita molto la possibilità di far permanere l'utente. Questo può pensare di aver sbagliato sito o che il motore di ricerca abbia restituito un link sbagliato o, ancora, non capisce/conosce il termine 404. Meglio pertanto scrivere che la risorsa potrebbe essere momentaneamente non disponibile, che la pagina è in fase di aggiornamento o comunque dare l'impressione che la situazione sia transitoria.

    2. Utilizza uno stile minimalista per la 404. Se la rendi di fatto identica alle altre pagine del sito, rischi che i tempi di caricamento si allunghino e che l'utente si distragga. La 404 sta intralciando la via della conoscenza, è un ostacolo in più che gli viene posto, pertanto, meno lo fai aspettare e più probabile è che non si spazientisca.

    3. Inserisci un box di ricerca (ovviamente se disponibile un motore di ricerca interno, cosa utile per qualsiasi sito oltre le 5 pagine) ben visibile nella pagina. Questo permette all'utente di cercare direttamente all'interno del sito (e non dal motore di ricerca esterno) ciò che gli interessa e, di conseguenza, garantisci la sua permanenza nel tuo sito.

    4. Inserisci un link alla mappa del sito; se il layout te lo consente puoi anche includere nella 404 il primo livello di navigazione. Anche in questo caso "costringi" l'utente a soffermarsi nel tuo sito e ti garantisci, ancora una volta, un'ulteriore opportunità.

    5. Se possibile evita l'utilizzo di javascript o comunque di script lato client, Flash e animazioni, per i motivi addotti nella 2.

    6. Se disponi della conoscenza necessario allo scopo, puoi creare un sistema intelligente di ricerca, per cui, a fronte della restituzione della 404 (che ovviamente è in serp per una certa chiave di ricerca), vengano forniti anche link a pagine alternative che trattano del medesimo argomento.

    :ciauz:


  • User Attivo

    @claudioweb said:

    Per i motori la cosa importante è che l'intestazione http contenga un codice 404 e non un 200 o un 301 o 302.

    :ciauz:
    Grazie per le risposte. Su alcune cose non sono d'accordo. La mia home dà tutte le info e già ha i link al motore di ricerca interno e a tutte le risorse. Il mio sito tratta di poche cose e, diciamo, tutto ciò di cui tratta serve a spingere un solo prodotto di cui si parla in 7 o 8 pagine su qualche migliaio di documenti (vi assicuro che funziona, e che, se quando ho progettato il sito fossi stato più esperto, funzionerebbe di più). Ho pensato a dare un'alternativa al 404 perché molti link spontanei ad url dinamici presenti su vari siti spesso cambiano e portano al nulla.

    Quanto detto da claudioweb, invece, mi preoccupa: in fin dei conti io ho solo messo un redirect in .htacces in questo modo

    ErrorDocument 404 http://www.sito.com/

    Ecco, secondo voi ciò è dannoso?


  • Super User

    @tarr said:

    ErrorDocument 404 http://www.sito.com/

    Ecco, secondo voi ciò è dannoso?

    Così dovrebbe andare benone 🙂

    Ma ogni tanto dare un controllata alle intestazioni non fa mai male...
    http://www.webconfs.com/http-header-check.php

    Digita un nome di pagina non esistente e vedi un po' che ti racconta 😉


  • User Attivo

    Grazie per illink al tool, Claudioweb 🙂

    Allora, mi dà un 302 Found

    HTTP/1.1 302 Found =>
    Date => Wed, 01 Nov 2006 16:29:48 GMT

    perché in effetti trova la home.
    Ora il problema è: come la vede 'sta cosa Big G?


  • Super User

    Mi correggo in questa affermazione....
    @claudioweb said:

    Così dovrebbe andare benone 🙂

    Questa sintassi:
    @tarr said:

    ErrorDocument 404 http://www.sito.com/
    è errata...
    Se usi un url assoluto Apache ti restituisce un 302.

    Devi usare un url relativo (risepetto alla root del sito).
    Qualcosa del genere:

    ErrorDocument 404 /root/
    

    Ciao :ciauz:


  • User Attivo

    Grazie, claudioweb 🙂
    Tuttavia non ho capito perché un 302 sarebbe "errato" :mmm:


  • Super User

    Ogni codice di stato ha un suo significato, come puoi leggere qui
    http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

    Ti faccio un esempio con un parallelismo...

    Vai in cerca di un determinato negozio (pagina web) in una città che non è la tua (server).

    Ti rechi all'indirizzo (url) dove ti aspettavi che il negozio fosse aperto (codice di stato 200).
    Un passante esperto della zona (header http) ti dice che il negozio là non c'è.

    Le motivazioni che può darti sono diverse:

    a) il negozio non esiste più (codice 404), o forse non è mai esistito, e ti consiglia di cercare sulle pagine gialle uno simile (pagina d'errore a cui si viene rediretti);

    b) il negozio si è trasferito definitivamente ad un nuovo indirizzo (redirect 301);

    c) il negozio si è trasferito temporaneamente ad un nuovo indirizzo per lavori in corso (redirect 302);

    Già da questo si capisce come le risposte implichino conseguenze del tutto diverse.
    Però sono tutte verosimili.

    Veniamo con lo stesso esempio al perché il 302 o il 301 son sbagliati.

    Se il passante ti ha detto che il negozio si è trasferito, dopo averlo ascoltato, insospettito che non ti stia dando informazioni esatte, provi a metterlo alla prova.
    Chiedi allora informazioni su un negozio che non esiste, inventando un nome a caso (url a caso).
    Se ti dice che non lo conosce (ancora 404), è tutto ok.

    Se invece ti risponde dicendo:"si si... lo conosco... si è trasferito anche questo allo stesso indirizzo." (302 di prima)
    Poi ancora un altro nome a caso. Sempre la stessa risposta.
    Poi un altro negozio che sappiamo essere chiuso. Sempre la stessissima risposta.
    Etc...

    A questo punto tu che diresti? Questo mi vuol prendere in giro, solo per farmi andare all'indirizzo che mi ha indicato: o è un pazzo, o mi vuol ingannare.

    Spero di essere stato chiaro seppur prendendola alla larga 😉


  • User

    buon giorno a tutti ,
    tempo fa ho impostato per un sito web con un webserver iis6.0 la pagina 404 "page not found" facendola redirigere alla home page.Questo perchè molte delle pagine presenti nella directory google non esistevano più a seguito del restiling e spostamento del sito su un altro server.Risultato:ban di google dall'indice per la presenza di pagine con script redirect.❌x


  • User Attivo

    @hakapilot said:

    buon giorno a tutti ,
    tempo fa ho impostato per un sito web con un webserver iis6.0 la pagina 404 "page not found" facendola redirigere alla home page.Questo perchè molte delle pagine presenti nella directory google non esistevano più a seguito del restiling e spostamento del sito su un altro server.Risultato:ban di google dall'indice per la presenza di pagine con script redirect.❌x

    Non so se ho capito bene, ma intuisco che tu abbia fatto come tarr, e pertanto rischia pure lui.
    Ovvero in IIS hai impostato la pagina di errore su (per esempio) "/errore404.asp" e in quella pagina hai scritto:
    <%
    response.redirect "/default.asp"
    %>
    Giusto???
    Bene il response.redirect sovrascrive il l'errore 404 con il 302 "pagina temporanemante spostata", e non è da fare.

    Semplicemente dovevi scrivere "pagina non trovata" e mettere un link alla home page o al limite fare il redirezionamento con
    un meta http content refresh impostato a un paio di secondi, in questo modo Google vede il codice corretto per quella pagina inesistente, ovvero il 404.


  • User

    Ciao ,
    ho messo la ridirezione alla home page.
    quindi tutto quello che non trovava andava alla home page.
    nel file ho messo /defaul.asp al posto della pagina di errore.E' una nuova
    funzionalità di IIS60 che mi sembrava calzare a fagiolo.
    Google mi ha bannato per 1 mese con il cliente infuriato.
    Purtroppo l' 80 % delle ricerche viene da google anche se in altri motori il
    sito è posizionato bene semplicemente la gente usa google...
    Dopo un mese esatto il sito è ritornato negli indici.
    Ho provato preso dal panico a chiamare google a milano ma hanno solo
    degli uffici commerciali.Niente da fare ho dovuto aspettare 1 mese esatto.


  • User Attivo

    @claudioweb said:

    Ogni codice di stato ha un suo significato, come puoi leggere qui
    http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

    Ti faccio un esempio con un parallelismo...

    [...]

    A questo punto tu che diresti? Questo mi vuol prendere in giro, solo per farmi andare all'indirizzo che mi ha indicato: o è un pazzo, o mi vuol ingannare.

    Spero di essere stato chiaro seppur prendendola alla larga 😉

    Claudioweb, grazie ancora per le tue risposte.
    Non mi è, però, chiara una cosa.
    Se invece di ridirezionare alla home con quel comando in .htaccess io ridirezionassi ad una 404 customizzata, ovver ad un ipotetico file errore404.htm, non sarebbe la stessa cosa? Non otterrei comunque un 302? A questo punto,mi chiedo, come faccio a ridirigere i visitatori che giungono da linlk sbagliati, o vecchi, verso qualcosa di utile senza frami bannare?


  • Super User

    @tarr said:

    Se invece di ridirezionare alla home con quel comando in .htaccess io ridirezionassi ad una 404 customizzata, ovver ad un ipotetico file errore404.htm, non sarebbe la stessa cosa? Non otterrei comunque un 302? A questo punto,mi chiedo, come faccio a ridirigere i visitatori che giungono da linlk sbagliati, o vecchi, verso qualcosa di utile senza frami bannare?
    No assolutamente... non ottieni un 302... 😉

    Usa il tool che ti avevo indicato prima e vedrai che le intestazioni http segnalano un 404 not found.

    Se usi un 404 dici: "non esiste più, vai qui."
    Se usi 302 dici: "esiste ancora, ma si è trasferita."

    Purtroppo non so come altro chiarirti il concetto.. 🙂

    Posso solo dirti che sono due cose profondamente diverse. Nonostante l'effetto per l'utente sia lo stesso di andare a finire nell'altra pagina.

    L'importante è che se inventi un nome di pagina inesistente, esso restituisca un 404 tramite quel tool...

    Ciao :ciauz:


  • User Attivo

    Allora, ho creato una pagina errore404.htm e nel file .htaccess ho inserito

    ErrorDocument 404 http://www.miosito.com/errore404.htm
    

    come immaginavo, anche così ottengo un 302 dal tool linkato da claudioweb. In fondo o è index.htm, o è errore404.htm è la stessa cosa, no?


  • Super User

    @tarr said:

    Allora, ho creato una pagina errore404.htm e nel file .htaccess ho inserito

    >ErrorDocument 404 http://www.miosito.com/errore404.htm
    >``` 
    come immaginavo, anche così ottengo un 302 dal tool linkato da claudioweb. In fondo o è index.htm, o è errore404.htm è la stessa cosa, no? 
    Opss ma allora non hai letto :)
    
    @claudioweb said:
    > Questa sintassi:
    

    ErrorDocument 404 http://www.sito.com/

    *** è errata...***
    Se usi un url assoluto Apache ti restituisce un 302.

    *** Devi usare un url relativo*** (risepetto alla root del sito).
    Qualcosa del genere:

    >ErrorDocument 404 /root/
    >``` 

  • User Attivo

    Azz, mi ero dimenticato :rollo:
    Provo subito...


  • Super User

    Riporto dalla documentazione di Apache:

    ErrorDocument directive

    Note that when you specify an ErrorDocument that points to a remote URL (ie. anything with a method such as "http" in front of it), Apache will send a redirect to the client to tell it where to find the document, even if the document ends up being on the same server. This has several implications, the most important being that the client will not receive the original error status code, but instead will receive a redirect status code. This in turn can confuse web robots and other clients which try to determine if a URL is valid using the status code. In addition, if you use a remote URL in an ErrorDocument 401, the client will not know to prompt the user for a password since it will not receive the 401 status code. Therefore, if you use an "ErrorDocument 401" directive then it must refer to a local document.


  • User Attivo

    ok,
    ho inserito in .htaccess la riga

    ErrorDocument 404 /errore404.htm
    ``` e tutto fila, però...
    però se il file richiesto non è immaginato nella cartella principale, ma, ad esempio in miosito.com/forum/idsijodiodsoiNONESISTO.htm
    la pagina che appare non trova le immagini ed i file css del template, visto che il file errore404.htm è nella root
    di conseguenza o esiste un modo per evitare il problema oppure conviene creare un file errore404.htm senza immagini nel template e,magari, con i css in linea...
    Che ne dite?