
Mixed content ontstaat wanneer een pagina die via het beveiligde https wordt geladen, zelf nog onderdelen ophaalt via het onbeveiligde http — een afbeelding, een script, een stylesheet. De browser toont dan een waarschuwing (soms een doorgestreept slotje, soms een expliciete melding dat niet alle content veilig is) en kan de onveilige onderdelen zelfs stilzwijgend blokkeren, waardoor afbeeldingen ineens niet meer laden of opmaak wegvalt. Dit probleem duikt vrijwel altijd op ná het installeren van een SSL-certificaat: de site draait dan technisch op https, maar oudere content in de database of thema-instellingen verwijst nog met een vaste, absolute http-link naar zichzelf.
Open de ontwikkelaarstools van uw browser (rechtermuisknop > Inspecteren) en bekijk het tabblad Console: daar meldt de browser exact welke bestanden nog via http worden opgevraagd. Let op dat dit probleem zich soms alleen op specifieke pagina's voordoet, niet per se overal op de site — controleer daarom meerdere paginatypes (homepage, een artikel, een productpagina) afzonderlijk, en vergeet ook pagina's opgebouwd met een aparte pagebuilder niet, omdat die soms hun eigen, losse afbeeldingsverwijzingen opslaan buiten de gewone contentvelden om.
Zoek in uw database en thema-bestanden naar `http://` in combinatie met uw eigen domeinnaam en vervang dit door `https://`, of nog beter, door een relatieve link (bijvoorbeeld `/afbeeldingen/foto.jpg` in plaats van een volledig adres met protocol). Gebruik bij een WordPress-database bij voorkeur een dedicated tool zoals Better Search Replace in plaats van een losse SQL-query, omdat WordPress veel gegevens serialized opslaat en een directe tekstvervanging die structuur kan beschadigen, met beschadigde pagina's als gevolg.
Zodra alle mixed content is opgelost, dwingt u af dat de site altijd via https wordt bezocht door in het `.htaccess`-bestand een doorverwijzing van http naar https toe te voegen. Dit voorkomt dat bezoekers via een oude, opgeslagen http-link alsnog op de onbeveiligde versie belanden.
Als extra vangnet kunt u de header `Content-Security-Policy: upgrade-insecure-requests` toevoegen. Deze zorgt ervoor dat de browser resterende http-verzoeken automatisch naar https omzet, zodat een enkele over het hoofd geziene verwijzing niet meteen weer tot een waarschuwing leidt.
Naast de ontwikkelaarstools van de browser bestaan er gratis onlinetools die uw hele site in één keer scannen op mixed content, zodat u niet elke pagina afzonderlijk hoeft te controleren. Een SSL-controletool (zoals SSL Labs) beoordeelt daarnaast de certificaatconfiguratie als geheel, wat nuttig is om te zien of eventuele waarschuwingen echt aan mixed content liggen of aan iets anders in de SSL-opzet, zoals een verouderd of onvolledig geïnstalleerd certificaat. Gebruikt u een CDN-dienst zoals Cloudflare, dan bieden veel van die diensten een instelling die http-verwijzingen automatisch naar https omzet voordat ze de bezoeker bereiken — een praktische extra laag bovenop het structureel oplossen van de bron zelf, maar geen vervanging daarvoor.
Mixed content is een van de minder voor de hand liggende oorzaken van afbeeldingen die niet laden, en komt vaak voor kort na het herstellen van een verlopen SSL-certificaat of het voor het eerst installeren van SSL. Neem een mixed content-check daarom standaard op na elke wijziging aan uw certificaat of domeininstellingen, in plaats van te wachten tot een bezoeker de waarschuwing meldt. Ook na het overzetten van content vanuit een oudere versie van de site, of na het importeren van artikelen uit een ander systeem, is een korte controle op verdwaalde http-verwijzingen aan te raden.