Een paar dagen geleden werden afbeeldingen van een website die ik onderhoud niet meer weergegeven in Gmail. De Image Cache Proxy van Google retourneert 404 op elke afbeelding. Ik kan bevestigen dat ze toegankelijk zijn op de server zelf en de nieuwsbrief geeft prima weer buiten gmail.com, zelfs in de eigen mobiele app van Gmail (het maakt blijkbaar geen gebruik van Google Image Proxy). Ik kan zelfs bevestigen dat de bot van Google deze afbeeldingen regelmatig van de server zelf ophaalt, waarbij de server 200 status reageert en de afbeelding verzendt. De afbeeldingen in kwestie zijn png en jpg, geen svgs (die problemen lijken te hebben gehad in het verleden volgens mijn onderzoek)

Is hier een bekende remedie voor en waarom is Google dit kwaad? Is er een speciale header die hiervoor moet worden ingesteld? Zoals de Cache-Control-header die vereist is door hun Image Proxy specifiek?

Answer

De PHP-applicatie leverde een beschadigde afbeelding bij het onjuist afhandelen van de Accept-Language-header die Google Bot verzendt. er is een verkeerde afhandeling opgetreden bij het verzenden van geen extra headers naar de pagina.

Op de pagina waar een afbeelding zou moeten zijn, stond een bericht met de tekst:

Undefined index: HTTP_ACCEPT_LANGUAGE in /var/www/myweb.com/public/constants.php on line 3

De melding meldt een 200 HTTP-status, daarom kon ik het niet meteen vinden. Google Bot haalde het echter op als een ongeldige afbeelding en op zijn beurt repo rted een 404-fout.

Ik heb het opgelost door php-intl pakket te installeren.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *