Gravatar de Armonth

Fix definitivo para el problema del header 404 en WordPress

Hace un tiempo comente sobre un problema con las cabeceras HTTP 404 Not Found, HTTP 200 OK, Google y WP-Cache y como lo solucionaba la versión 2.0.18 de WP-Cache. El problema para hacer memoria era (y es) este:

Cuando una página NO existe debe enviar una cabecera HTTP 404 Not Found:

wget -S http://sigt.net/pagina-inexistente/
Petición HTTP enviada, esperando respuesta... 
HTTP/1.1 404 Not Found
...
...
22:18:26 ERROR 404: Not Found.

Pero por aquella época WP-Cache lo que hacía era enviar un error 404 la primera vez, cachear la página y luego devolver un HTTP 200 OK o dicho en cristiano: ahora la web no existe, ahora sí.

Esto puede fastidiar el posicionamiento e incluso herramientas como Google Sitemaps dejan de funcionar, leed lo que dice Google (en castellano).

Lo bueno es que ahora no es culpa de WP-Cache ya que activado o no, siempre devuelve HTTP 200 OK.

Por ello vamos a solucionarlo, forzando que las páginas de Error 400 den un encabezado 404 y en un simple paso.

Sólo tenemos que editar nuestro tema, el fichero header.php poniendo como primera línea (arriba del todo):

<?php if (is_404()) { 
  header('HTTP/1.0 404 Not Found'); 
} ?>

O en cristiano: si es una página de Error 404, añademe el **to encabezado 404.

Comprobando que funciona

Podéis utilizar esta herramienta para ver los encabezados/headers, introducís una URL ficticia de vuestra web y deberíais ver:

 HTTP Status Code: HTTP/1.1 404 Not Found

9 Comentarios (feed)

  1. Gravatar de FrIkI FrIkI nos comenta:

    Cuando una página NO existe debe enviar una cabecera HTTP 404 Not Modified: ??

    Será Not Found, no?

    Domingo, 7 de Enero/2007 @ 23:12

  2. Gravatar de Armonth Armonth nos comenta:

    Uups… me parece que lo que devuelve un “HTTP 404 Not Found” es mi neurona reumática, corregido.

    Domingo, 7 de Enero/2007 @ 23:14

  3. Gravatar de aNieto2k aNieto2k nos comenta:

    Hector, esto no es un fallo, o por lo menos yo no lo veo asi.

    Me explico, si tu estas buscando una página y el navegador no encuentra nada es normal que muestre una página 404 pero si encuentra, aunque sea una página que diga que no encuentra lo que buscas es lógico que no devuelva un 404… o por lo menos eso creo yo.

    Domingo, 7 de Enero/2007 @ 23:20

  4. Gravatar de Armonth Armonth nos comenta:

    Como ya lo he discutido contigo por Gtalk, no voy a repetirme por eso pongo la conclusión en la que lo deje: si muestra un error 404 (sea “personalizado” o el feo-estándar de Apache) sigue siendo un “Not Found” y por tanto debe llevar la cabecera, aunque sólo sea para no dar problemas como es el caso de Sitemaps…

    Lunes, 8 de Enero/2007 @ 0:05

  5. Gravatar de Laslo Laslo nos comenta:

    Pues yo he probado esa herramienta que recomiendas al final de tu post con una pagina que no existe dentro de mi WP, con un 404 personalizado, y siempre me da
    HTTP Status Code: HTTP/1.1 404 Not Found

    Y eso que uso WP-Cache.
    ¿Qué está pasando en este caso entonces?

    Martes, 9 de Enero/2007 @ 10:26

  6. Gravatar de Armonth Armonth nos comenta:

    Laslo usas WordPress 2.0.5 por eso no te da ningún problema… el problema era con versiones viejas de WP-Cache y con la nueva de WordPress (2.0.6).

    Martes, 9 de Enero/2007 @ 10:50

  7. Gravatar de Exequiel Garrido Exequiel Garrido nos comenta:

    Google
    Error

    Not Found
    The requested URL /roms_gba/Pokemon_Mistery_Dungeon_Red_English.rar was not found on this server.

    Hola Caperusos…este mensaje que les adjunto , en la que el encabezado no es un httm , si no un URL…..¿Que es?..tengo un Ciber y me saleen todo los Pc`s….”No Siempre”

    Miércoles, 31 de Enero/2007 @ 22:05

  8. Gravatar de Armonth Armonth nos comenta:

    Pues que ha intentado bajar una rom y el fichero ya no existe … pero esto y el tema tratado no tiene nada que ver **ejem**.

    Miércoles, 31 de Enero/2007 @ 23:22

  9. Gravatar de pablo pablo nos comenta:

    la pagina http 404 no la encuetra y me tiene mas que loco ¿que puedo hacer?

    Sábado, 9 de Junio/2007 @ 18:32

No seas tímido, da tu opinión

Sé respetuoso con los demás, la diferencia de opiniones enriquece la discusión, los comentarios bajo ciertas circunstancias pueden ser moderados y requerir aprobación.