La negociación de código de respuesta es una técnica de diseño que, en el procesamiento de una redirección, cambia de forma dinámica el código de estado HTTP que se devuelve según el tipo y las condiciones del origen de la solicitud. Un ejemplo de este uso diferenciado es devolver, para la misma URL corta, un 301 (redirección permanente) a los bots de los motores de búsqueda y un 302 (redirección temporal) o un 307 a los navegadores comunes.
Como contexto técnico, los motores de búsqueda tratan de forma distinta el 301 y el 302. La documentación de Google explica que las redirecciones permanentes se usan como señal para considerar el destino como URL canónica, mientras que las redirecciones temporales no se usan como esa señal. En los acortadores de URL, se dan los dos casos: cuando quien crea el enlace quiere que la propia URL corta permanezca en los resultados de búsqueda y cuando quiere que el destino se trate como URL canónica.
En la implementación de la negociación, el análisis de la cabecera User-Agent es la base. Se identifican rastreadores conocidos como Googlebot o Bingbot y se devuelve a cada uno el código de estado que le corresponde. Sin embargo, como es fácil falsificar el User-Agent, conviene combinarlo con la verificación por búsqueda inversa de la dirección IP.
Como precaución, Google puede considerar el cloaking (devolver contenido distinto a los bots y a los usuarios) una infracción de sus directrices. El cambio de código de respuesta presupone que el destino de la redirección sea el mismo, y hay que distinguirlo claramente de un diseño que sirve contenido distinto según quién accede.