Il y a quelques jours, les images dun site Web que je maintiens ont cessé dêtre affichées dans Gmail. Le proxy de cache dimage de Google renvoie 404 sur chaque image. Je peux confirmer quils sont accessibles sur le serveur lui-même et que la newsletter saffiche correctement en dehors de gmail.com, même dans lapplication mobile de Gmail (elle nutilise apparemment pas Google Image Procuration). Je peux même confirmer que le bot de Google récupère ces images régulièrement sur le serveur lui-même, le serveur répondant à létat 200 et envoyant limage. Les images en question sont png et jpg, pas de svgs (qui semblent avoir eu des problèmes dans le passé selon mes recherches)
Existe-t-il un remède connu pour cela et pourquoi Google est-il ce mal? Y a-t-il un en-tête spécial à définir pour cela? Comme len-tête Cache-Control qui est requis par leur proxy dimage spécifiquement?
Réponse
Lapplication PHP diffusait une image corrompue alors quelle ne traitait pas correctement len-tête Accept-Language que Google Bot envoie. Idem une mauvaise gestion sest produite lors de lenvoi daucun en-tête supplémentaire à la page.
Sur la page où était censée être une image, il y avait un avis disant:
Undefined index: HTTP_ACCEPT_LANGUAGE in /var/www/myweb.com/public/constants.php on line 3
Lavis signale un état HTTP 200, cest pourquoi je nai pas pu lattraper tout de suite. Google Bot la cependant récupéré comme une image invalide et à son tour repo a renvoyé une erreur 404.
Je lai résolu en installant le package php-intl .