Todos los códigos de respuesta Http
En el mundo de la web, todos los códigos de respuesta HTTP juegan un papel esencial en la comunicación entre los servidores y los navegadores. Estos códigos indican el estado de las solicitudes realizadas a los servidores, ayudando a los usuarios y a los motores de búsqueda a entender si una página se ha cargado correctamente o si ha ocurrido algún error. Desde los códigos que indican éxito, como el 200 OK, hasta aquellos que reflejan problemas más complejos, como el 500 Internal Server Error, conocerlos es fundamental tanto para administradores web como para cualquier profesional del SEO. Como consultor SEO en Madrid, sé que la correcta interpretación y manejo de estos códigos no solo mejora la experiencia del usuario, sino que también influye en el rendimiento y posicionamiento de un sitio web en los motores de búsqueda.
¿Qué son los códigos de respuesta HTTP?
Los códigos de respuesta HTTP son códigos numéricos enviados por el servidor en respuesta a una solicitud del cliente (como un navegador). Estos códigos indican el resultado de la solicitud y ayudan a diagnosticar problemas o confirmar que la solicitud se ha procesado correctamente. Los códigos de respuesta HTTP se dividen en cinco categorías principales, cada una de las cuales tiene un significado específico que abordaremos a continuación.
Explicación de los diferentes códigos HTTP
Los códigos de respuesta HTTP son clasificados en cinco categorías principales, cada una representando un tipo de respuesta diferente del servidor al navegador. Estos códigos son esenciales para entender cómo se procesan las solicitudes realizadas a los servidores web y son clave tanto para los desarrolladores como para los expertos en SEO, ya que afectan tanto a la experiencia del usuario como al rendimiento de un sitio web en los motores de búsqueda.
1XX - Códigos Informativos
Los códigos 1XX son respuestas informativas que indican que el servidor ha recibido la solicitud del cliente y está procesándola. Esta categoría generalmente se utiliza para confirmar que la solicitud está en proceso y no ha sido completada todavía. No son respuestas que el usuario final vea con frecuencia, pero son útiles para los desarrolladores y administradores de sistemas.
2XX - Códigos de Éxito
Los códigos 2XX indican que la solicitud fue procesada con éxito por el servidor. Esto significa que el servidor ha entendido la solicitud y ha respondido correctamente a ella, ya sea proporcionando la página solicitada o confirmando que se ha realizado alguna acción. Estos códigos son esenciales para la correcta visualización y funcionamiento de un sitio web.
3XX - Códigos de Redirección
Los códigos 3XX indican que el servidor ha recibido la solicitud, pero se requiere una acción adicional, generalmente una redirección a otra URL. Esto puede ser debido a cambios en la estructura de la URL, migraciones de página o la necesidad de redirigir a los usuarios a una ubicación más relevante. Los códigos de esta categoría son importantes para la gestión de tráfico web y la preservación de la autoridad SEO cuando se realizan cambios en la estructura del sitio.
4XX - Códigos de Error del Cliente
Los códigos 4XX son generados cuando hay un error en la solicitud del cliente. Esto significa que el navegador no puede procesar la solicitud correctamente, ya sea porque la página solicitada no existe, la solicitud está mal formada o el usuario no tiene permisos para acceder al recurso. Estos errores son críticos para la experiencia del usuario, ya que pueden resultar en una mala navegación en el sitio web y posibles penalizaciones por parte de los motores de búsqueda.
5XX - Códigos de Error del Servidor
Los códigos 5XX indican que el servidor ha fallado al procesar una solicitud válida. Aunque la solicitud del cliente era correcta, el servidor experimentó un error al intentar completarla. Estos errores son generalmente más graves, ya que pueden hacer que el sitio web esté temporalmente fuera de servicio, afectando tanto a los usuarios como al SEO.
Códigos HTTP 1XX
Los códigos HTTP 1XX se clasifican como respuestas informativas y generalmente no son visibles para el usuario final. Su propósito es indicar que el servidor ha recibido la solicitud del cliente y está comenzando a procesarla, pero la respuesta completa aún no está disponible. Estos códigos son fundamentales en la comunicación entre el servidor y el cliente, especialmente durante procesos de redirección o cuando la solicitud aún está en curso.
- 100 – Continuar: Es una respuesta provisional que indica que el servidor ha recibido la solicitud inicial del cliente. En este caso, el servidor está pidiendo al cliente que continúe con la solicitud. Este código suele usarse en escenarios donde el servidor espera más información antes de proceder con la acción final. Por ejemplo, en solicitudes POST de datos, el servidor puede enviar este código para asegurar que el cliente envíe más información.
- 101 – Cambio de protocolo: Es una respuesta a una solicitud de cabecera que indica que el servidor está dispuesto a cambiar el protocolo de comunicación. Este código se utiliza cuando un cliente solicita que el servidor cambie de un protocolo a otro. Por ejemplo, un cliente puede pedir al servidor que se comunique a través de un protocolo diferente como HTTP/2 o WebSocket, y el servidor respondería con este código para confirmar la solicitud de cambio.
- 102 – Procesando: Es un estado que indica que el servidor ha recibido la solicitud y está procesándola, pero aún no ha generado una respuesta completa. Este código es útil cuando el proceso detrás de la solicitud es complejo o consume mucho tiempo, como en la ejecución de una consulta a una base de datos o el procesamiento de una carga pesada de datos. Este código previene que el cliente piense que la solicitud ha fallado debido al tiempo que tarda en procesarse.
- 103 – Sugerencias anticipadas: Es utilizado junto con la cabecera «Link» para permitir que los navegadores precarguen recursos mientras el servidor está preparando la respuesta final. Esto es útil cuando el servidor sabe que ciertos recursos serán necesarios más tarde, como hojas de estilo CSS o scripts JavaScript. Este código permite al servidor enviar una sugerencia al cliente para que empiece a cargar estos recursos antes de recibir la respuesta final, mejorando así la eficiencia y la experiencia del usuario.
Códigos HTTP 2XX
Los códigos HTTP 2XX indican que la solicitud enviada por el cliente fue procesada correctamente por el servidor. Estos códigos son fundamentales para asegurar que el contenido se ha entregado de manera correcta y que no ha habido ningún problema en la comunicación entre el cliente y el servidor. Cada uno de estos códigos proporciona una respuesta que varía según el tipo de acción realizada por el cliente y la naturaleza de la respuesta del servidor.
- 200 – De acuerdo: Es la respuesta más común y estándar cuando una solicitud HTTP se procesa correctamente. El significado exacto de esta respuesta depende del tipo de método utilizado en la solicitud:
- GET: El recurso solicitado se ha obtenido correctamente y está incluido en el cuerpo del mensaje de respuesta.
- HEAD: Las cabeceras de la respuesta se devuelven, pero no se incluye el cuerpo del mensaje.
- POST o PUT: El recurso que describe el resultado de la acción realizada (como la creación o actualización de datos) se incluye en el cuerpo del mensaje.
- TRACE: El cuerpo de la respuesta contiene el mensaje de solicitud tal como fue recibido por el servidor. Este código es esencial para indicar que la solicitud fue completamente procesada y que el cliente puede proceder con la siguiente acción.
- 201 – Creado: Se utiliza cuando una solicitud ha sido completada correctamente y como resultado se ha creado un nuevo recurso en el servidor. Este código es comúnmente utilizado después de una solicitud POST o PUT, cuando el servidor ha aceptado la creación de un nuevo elemento, como un nuevo registro en una base de datos o un archivo cargado. En la respuesta, el servidor también puede incluir la ubicación del nuevo recurso, generalmente a través de la cabecera Location.
- 202 – Aceptada: Indica que la solicitud ha sido aceptada para su procesamiento, pero aún no ha sido completada. Este código se utiliza típicamente en situaciones en las que el servidor no puede completar inmediatamente la solicitud, como cuando se requiere que otra parte procese la solicitud o cuando el procesamiento es asincrónico. En escenarios como la gestión de solicitudes por lotes o la interacción con otros servicios, este código es esencial para comunicar que la solicitud está en curso.
- 203 – Información no autorizada: Se devuelve cuando el servidor responde a una solicitud con datos que no provienen directamente de la fuente original, sino de una versión modificada obtenida de un tercero. Este código es útil en situaciones donde un servidor intermedio (como un proxy o caché) devuelve información que ha sido alterada o adaptada para el cliente.
- 204 – Sin contenido: Se utiliza cuando la solicitud fue procesada correctamente, pero no hay contenido para devolver en la respuesta. Esto puede ocurrir cuando se ha realizado una operación exitosa, como la eliminación de un recurso, pero no es necesario devolver datos al cliente. Las cabeceras de la respuesta pueden seguir siendo útiles para transmitir información adicional.
- 205 – Restablecer contenido: Indica que el servidor ha cumplido con la solicitud, pero solicita que el cliente restablezca el documento que estaba en uso. Esto es común cuando el servidor desea que el cliente recargue o restablezca el estado de un formulario o interfaz de usuario después de realizar una acción, como una actualización o eliminación.
- 206 – Contenido parcial: Se utiliza cuando el servidor está entregando solo una parte del recurso solicitado. Este código se emplea cuando el cliente ha enviado una cabecera Range que solicita una fracción de un recurso, como cuando se descargan archivos grandes en partes o cuando se solicita una sección específica de un archivo. Este código es especialmente útil en el manejo de descargas de archivos o transmisión de medios.
- 207 – Multiestado: Es utilizado en protocolos como WebDAV para indicar que el servidor está proporcionando el estado de múltiples recursos después de una solicitud que involucra varias sub-solicitudes. Este código es útil cuando un cliente realiza múltiples peticiones a diferentes recursos y el servidor desea devolver el estado de todos ellos de manera simultánea.
- 208 – Ya informado: Se utiliza para evitar la repetición de información. Este código es devuelto cuando los miembros de un conjunto de recursos (por ejemplo, en una operación WebDAV) ya han sido previamente listados en una respuesta y no es necesario repetirlos. Es útil para optimizar el rendimiento y evitar redundancias en las respuestas del servidor.
- 226 – Mi utilizado: Se utiliza cuando el servidor ha completado una solicitud GET, y la respuesta incluye uno o más resultados de manipulación de instancias. Este código se emplea cuando se solicita la manipulación de recursos en lugar de solo la entrega de su contenido, por ejemplo, cuando se está realizando una operación sobre un recurso y se devuelve la manipulación efectuada como resultado.
Códigos HTTP 3XX
Los códigos de estado de esta categoría muestran que el recurso está en una ubicación diferente, y el usuario es redirigido como resultado.
- 300 – Opción múltiple: La solicitud tiene más de una respuesta posible, y el usuario debe elegir una de ellas.
- 301 – Movido permanentemente: Este código de estado de redirección indica que el recurso solicitado se ha movido permanentemente a una nueva URL. El navegador muestra la nueva URL.
- 302 – Encontrado: Anteriormente conocido como «Movido temporalmente», este código indica que el recurso solicitado se ha movido temporalmente a una nueva URL.
- 303 – Ver otros: El servidor redirige al usuario al recurso solicitado con una petición GET en otra URL.
- 304 – No modificado: Se utiliza con fines de almacenamiento en caché. La respuesta no ha sido modificada, por lo que el cliente puede seguir utilizando la misma versión en caché del recurso solicitado.
- 307 – Redirección temporal: El recurso solicitado se ha movido temporalmente a una URL diferente. La única diferencia respecto al código 302 es que el usuario no debe cambiar el método HTTP utilizado.
- 308 – Redirección permanente: El recurso solicitado se ha movido permanentemente a una URL diferente. La diferencia entre este código y el 301 es que el usuario no debe cambiar el método de petición HTTP.
Códigos HTTP 4XX
Esta categoría indica que el servidor no puede acceder a una página debido a un error en el lado del cliente.
- 400 – Solicitud incorrecta: El servidor no puede o no quiere procesar la solicitud debido a un error del cliente. Por ejemplo, marco de mensaje de solicitud no válido, enrutamiento engañoso de la solicitud, tamaño demasiado grande, etc.
- 401 – No autorizado: El usuario no tiene credenciales de autenticación válidas para obtener el recurso solicitado.
- 402 – Pago requerido: Reservado para un uso futuro; inicialmente estaba destinado a los sistemas de pago digitales. Se utiliza muy raramente, y ninguna convención estándar lo regula.
- 403 – Prohibido: El cliente no tiene derechos de acceso al contenido. Por ejemplo, puede requerir una contraseña. A diferencia del código de error HTTP 401, el servidor sí conoce la identidad del cliente.
- 404 – No encontrado: El servidor no puede encontrar el recurso solicitado y no se ha establecido ninguna redirección. Los códigos de errores HTTP 404 pueden perjudicar tus esfuerzos de SEO.
- 405 – Método no permitido: El servidor admite el método de solicitud, pero el recurso de destino no.
- 406 – No aceptable: El servidor no encuentra ningún contenido que satisfaga los criterios dados por el usuario según las cabeceras Accept solicitadas.
- 407 – Se requiere autenticación del proxy: Es similar a un 401, pero el proxy debe autenticar al cliente para continuar.
- 408 – Tiempo de espera de la solicitud: El servidor agotó el tiempo de espera porque el cliente no produjo una petición en el tiempo asignado.
- 409 – Conflicto: El servidor no puede satisfacer la solicitud porque hay un conflicto con el recurso. Mostrará información sobre el problema para que el cliente pueda solucionarlo y volver a enviar la solicitud.
- 410 – Desaparecido: El contenido solicitado se ha eliminado permanentemente del servidor y no se restablecerá.
- 411 – Longitud requerida: El servidor rechaza la petición porque requiere una longitud definida de la longitud del contenido del campo de cabecera.
- 412 – Precondición fallida: El cliente indica condiciones previas en los campos de cabecera que el servidor no cumple.
- 413 – Carga demasiado grande: La petición del cliente es mayor que los límites definidos por el servidor y este se niega a procesarla.
- 414 – URI demasiado largo: El URI (Identificador Uniforme de Recursos) solicitado por el cliente es demasiado largo para que lo procese el servidor.
- 415 – Tipo de soporte no admitido: La petición utiliza un formato de soporte que el servidor no admite.
- 416 – Rango no satisfecho: Significa que la solicitud no puede ser satisfecha. Más concretamente, indica que la solicitud era para una parte de un recurso que el servidor no podía devolver.
- 417 – Expectation failed: La llamada web falla y el usuario no obtiene una respuesta adecuada del servidor web que espera.
- 421 – Petición mal dirigida: El cliente envía una petición a un servidor que no es capaz de responder.
- 422 – Entidad no procesable: El cliente envía correctamente la solicitud, pero el servidor no puede procesarla debido a errores semánticos o problemas similares.
- 423 – Bloqueado: El recurso del método solicitado está bloqueado y es inaccesible.
- 424 – Dependencia fallida: La petición falló porque una petición de la que dependía la petición inicial también falló.
- 425 – Demasiado pronto: El servidor no está dispuesto a procesar una petición que podría repetirse.
- 426 – Actualización requerida: El servidor se niega a procesar la solicitud utilizando el protocolo actual a menos que el cliente se actualice a un protocolo diferente.
- 428 – Precondición necesaria: El servidor necesita que la petición sea condicional.
- 429 – Demasiadas peticiones: El usuario envía demasiadas peticiones en un tiempo determinado.
- 431 – Campos de cabecera de solicitud demasiado grandes: El servidor no puede procesar la solicitud porque los campos de cabecera son demasiado grandes.
- 451 – No disponible por motivos legales: El usuario solicita un recurso que el servidor no puede proporcionar legalmente.
Códigos HTTP 5XX
Esta categoría incluye los errores del lado del servidor.
Pueden ser perjudiciales para tu SEO, ya que los motores de búsqueda pueden pedir a los rastreadores que ralenticen el rastreo y eliminen las URL indexadas que devuelvan continuamente estos errores.
- 500 – Error interno del servidor: El servidor ha encontrado un error inesperado y no puede completar la solicitud.
- 501 – No implementado: El servidor no puede satisfacer la petición o no reconoce el método de petición.
- 502 – Puerta de enlace incorrecta: El servidor actúa como pasarela y recibe una respuesta no válida de un host entrante.
- 503 – Servicio no disponible: El servidor no puede procesar la solicitud. Esto suele ocurrir cuando un servidor está sobrecargado o inactivo por mantenimiento.
- 504 – Tiempo de espera de la puerta de enlace: El servidor estaba actuando como puerta de enlace o proxy y se agotó el tiempo de espera de una respuesta.
- 505 – Versión HTTP no admitida: El servidor no admite la versión HTTP de la solicitud.
- 506 – La variante también negocia: El servidor tiene un error interno de configuración.
- 507 – Almacenamiento insuficiente: El servidor no dispone de almacenamiento suficiente para procesar correctamente la solicitud.
- 508 – Bucle detectado: El servidor detecta un bucle infinito mientras procesa la petición.
- 511 – Autenticación de red requerida: El cliente debe autenticarse para acceder a la red. El error debe incluir un enlace donde el usuario pueda enviar sus credenciales.
Cómo Comprobar el Código HTTP de una Página
Comprobar el código HTTP de una página es una tarea útil para analizar el estado de un recurso web. Existen varias formas de verificarlo, tanto de manera manual como automática. A continuación, te explico algunas de las opciones más comunes:
Usar herramientas de desarrollo del navegador
La mayoría de los navegadores modernos como Chrome, Firefox y Edge tienen herramientas de desarrollo que permiten comprobar los códigos HTTP de las páginas de manera sencilla.
Pasos:
- Abre la página web en tu navegador.
- Haz clic derecho y selecciona Inspeccionar (o presiona Ctrl + Shift + I).
- Ve a la pestaña Red (Network).
- Recarga la página (presiona F5 o el botón de recarga).
- En la lista de solicitudes que aparece, selecciona la solicitud de la página principal.
- En la parte inferior o a la derecha de la pantalla, verás el código de estado HTTP.
Utilizar herramientas online
Existen varias herramientas en línea que permiten comprobar el código HTTP de cualquier URL sin necesidad de utilizar el navegador o herramientas de desarrollo.
Algunas de las herramientas son:
- GTmetrix: Ofrece información detallada sobre el rendimiento de la página junto con los códigos de estado HTTP.
- Is It Down Right Now?: Proporciona un rápido chequeo del estado de un sitio web, incluyendo su código HTTP.
Utilizar extensiones de Google
Existen extensiones específicas para navegadores que te permiten ver fácilmente los códigos HTTP de las páginas.
Algunas de las más populares son:
- Link Redirect Trace: Esta extensión para Google Chrome permite verificar los redireccionamientos de un enlace y obtener detalles sobre los códigos de estado HTTP, la cadena de redirección y más.
- Redirect Path: Es otra extensión útil que muestra los códigos HTTP, incluyendo redirecciones 301, 302, 404, y otros. Además, presenta la información de cabecera HTTP en un formato fácil de entender.
Códigos HTTP y SEO
El código HTTP de una página web no solo es importante para la comunicación entre el servidor y el navegador, sino que también tiene un impacto directo en el rendimiento de la página en los motores de búsqueda. Los motores de búsqueda, como Google, utilizan los códigos HTTP para entender cómo interactuar con un sitio web y determinar su accesibilidad, relevancia y si debe indexarse correctamente.
Impacto de los códigos HTTP en el rastreo e indexación
Los motores de búsqueda envían sus bots para rastrear páginas web. Estos bots interpretan los códigos HTTP para saber si una página es accesible o si debe ser indexada. Aquí es donde el código HTTP juega un papel crucial:
- Códigos 2XX (como el 200): Indican que la página se ha cargado correctamente y está disponible para el rastreo. Es fundamental que las páginas importantes de tu sitio devuelvan un código 200 para asegurar que sean indexadas y aparezcan en los resultados de búsqueda.
- Códigos 3XX (como el 301 y 302): Estos códigos indican redirecciones. Las redirecciones, si están bien configuradas, pueden ser útiles para mantener el flujo de autoridad de la página, pero las redirecciones mal implementadas (como las múltiples redirecciones encadenadas) pueden dificultar el rastreo de tu sitio web.
- Códigos 4XX (como el 404): Los errores 404 indican que la página no se encuentra. Estos errores pueden afectar negativamente al SEO, ya que los motores de búsqueda no pueden indexar el contenido de una página si no está disponible. Tener muchas páginas con errores 404 puede hacer que el sitio pierda autoridad y relevancia en los motores de búsqueda.
- Códigos 5XX (como el 500): Son errores del servidor, lo que significa que el sitio web no está funcionando correctamente. Si tu sitio devuelve estos errores con frecuencia, los motores de búsqueda pueden reducir la frecuencia de rastreo de tu página y, en casos extremos, eliminarla de sus índices.
La experiencia del usuario y los códigos HTTP
El SEO no solo depende de los motores de búsqueda; la experiencia del usuario también juega un papel importante en el posicionamiento. Los códigos HTTP influyen directamente en cómo los usuarios interactúan con tu sitio:
- Un código 200 OK asegura que los usuarios puedan acceder al contenido de la página de forma rápida y eficiente, mejorando la experiencia.
- Los errores 404 o 500 pueden frustrar a los usuarios, lo que aumenta las tasas de rebote. Si los usuarios no pueden acceder al contenido que buscan, es probable que abandonen el sitio, lo que a su vez puede perjudicar tu clasificación en los motores de búsqueda.
Cómo mejorar el SEO a través de los códigos HTTP
Asegurarse de que tu sitio devuelva los códigos HTTP correctos es clave para optimizar el SEO. Aquí algunas recomendaciones:
- Monitoreo Regular: Utiliza herramientas como Google Search Console para identificar errores 404 y otros códigos HTTP problemáticos que puedan afectar el rastreo e indexación.
- Redirecciones Correctas: Configura las redirecciones 301 correctamente para redirigir el tráfico de páginas antiguas o eliminadas a nuevas páginas, manteniendo la autoridad de las páginas.
- Optimiza el Tiempo de Carga: Los códigos de error 503 y 504, que indican problemas de servidor o tiempo de espera, pueden afectar la velocidad de carga de la página. Asegúrate de que tu servidor esté optimizado para evitar estos errores.
- Evita los Errores de Servidor: Los errores 500 deben resolverse de inmediato, ya que pueden hacer que tu sitio sea inaccesible para los motores de búsqueda y los usuarios.
Lista de todos los códigos HTTP
Código | Significado |
---|---|
1XX | Información |
100 | Continuar |
101 | Cambio de protocolo |
102 | Procesando |
2XX | Éxito |
200 | OK |
201 | Creado |
202 | Aceptado |
203 | Información no autorizada |
204 | Sin contenido |
205 | Restablecer contenido |
206 | Contenido parcial |
207 | Multiestatus |
208 | Ya reportado |
226 | IM utilizado |
3XX | Redirección |
300 | Opción múltiple |
301 | Movido permanentemente |
302 | Encontrado |
303 | Ver otros |
304 | No modificado |
307 | Redirección temporal |
308 | Redirección permanente |
4XX | Errores del cliente |
400 | Solicitud incorrecta |
401 | No autorizado |
402 | Pago requerido |
403 | Prohibido |
404 | No encontrado |
405 | Método no permitido |
406 | No aceptable |
407 | Autenticación del proxy requerida |
408 | Tiempo de espera de la solicitud |
409 | Conflicto |
410 | Desaparecido |
411 | Longitud requerida |
412 | Precondición fallida |
413 | Carga demasiado grande |
414 | URI demasiado largo |
415 | Tipo de soporte no admitido |
416 | Rango no satisfecho |
417 | Expectation failed |
421 | Petición mal dirigida |
422 | Entidad no procesable |
423 | Bloqueado |
424 | Dependencia fallida |
425 | Demasiado pronto |
426 | Actualización requerida |
428 | Precondición necesaria |
429 | Demasiadas peticiones |
431 | Campos de cabecera demasiado grandes |
451 | No disponible por motivos legales |
5XX | Errores del servidor |
500 | Error interno del servidor |
501 | No implementado |
502 | Puerta de enlace incorrecta |
503 | Servicio no disponible |
504 | Tiempo de espera de la puerta de enlace |
505 | Versión HTTP no admitida |
506 | La variante también negocia |
507 | Almacenamiento insuficiente |
508 | Bucle detectado |
511 | Autenticación de red requerida |