Hace unos días, las imágenes de un sitio web que mantengo dejaron de mostrarse en Gmail. El proxy de caché de imágenes de Google devuelve 404 en cada imagen. Puedo confirmar que se puede acceder a ellas en el servidor y que el boletín se muestra bien fuera de gmail.com, incluso en la propia aplicación móvil de Gmail (aparentemente no usa Google Image Apoderado). Incluso puedo confirmar que el robot de Google obtiene estas imágenes regularmente desde el servidor con el servidor respondiendo el estado 200 y enviando la imagen. Las imágenes en cuestión son png y jpg, no svgs (que parecen haber tenido problemas en el pasado de acuerdo con mi investigación)
¿Existe un remedio conocido para esto y por qué Google es tan malvado? ¿Hay un encabezado especial que deba configurarse para esto? Como el encabezado Cache-Control que es requerido por su Proxy de imagen específicamente?
Responder
La aplicación PHP mostraba una imagen dañada cuando manejaba incorrectamente el encabezado Accept-Language que envía Google Bot. Mismo Se produjo un manejo incorrecto al no enviar encabezados adicionales a la página.
En la página donde se suponía que debía haber una imagen había un aviso que decía:
Undefined index: HTTP_ACCEPT_LANGUAGE in /var/www/myweb.com/public/constants.php on line 3
El aviso informa un estado HTTP 200, por lo que no pude detectarlo de inmediato. Sin embargo, Google Bot lo obtuvo como una imagen no válida y, a su vez, repo rté un error 404.
Lo resolví instalando el paquete php-intl .