406 Not Acceptable significa que el recurso de destino no tiene ninguna representación que coincida con los encabezados de negociación del cliente, como Accept, Accept-Language o Accept-Encoding, y que el servidor no está dispuesto a enviar una representación predeterminada. El cuerpo debería listar las representaciones disponibles para que el usuario o el cliente pueda elegir.
En la práctica, la mayoría de los servidores ignoran las preferencias que no pueden satisfacer y envían una representación predeterminada, algo que la RFC 9110 permite de forma explícita. Por eso el 406 aparece sobre todo en API que solo sirven ciertos tipos de medios, por ejemplo una API JSON que recibe Accept: application/xml.
Algunos proveedores de alojamiento configuran módulos de seguridad como ModSecurity para responder con 406 a las solicitudes bloqueadas, así que un 406 también puede ser una decisión del firewall y no un problema de negociación.
Ejemplo de respuesta
HTTP/1.1 406 Not Acceptable
Date: Fri, 06 Nov 2026 10:15:32 GMT
Vary: Accept
Content-Type: application/json
Content-Length: 57
{"error":"Available formats: application/json, text/csv"} SEO y verificación de redirecciones
Los rastreadores envían encabezados Accept amplios, así que no deberían recibir un 406; si lo reciben, la URL se trata como un error 4xx y no se indexa. Cuando una verificación de redirecciones devuelve 406 pero la página carga en un navegador, revisa los encabezados Accept personalizados que hayas agregado o busca una regla de seguridad que coincida con el User-Agent o con la URL.
Causas frecuentes y casos de uso
- Una API solo admite JSON, pero el cliente pidió XML u otro formato.
- Una configuración estricta de
Accept-Languageno tiene una traducción que coincida ni una alternativa. - Una regla de ModSecurity o de un WAF en un alojamiento compartido bloquea la solicitud con 406.