Mixed content error oplossen na SSL installatie
Je hebt een SSL-certificaat geïnstalleerd en je website draait op HTTPS — maar in de browser zie je een waarschuwing dat de verbinding "niet volledig beveiligd" is. Het slotje is grijs of er verschijnt een waarschuwingsdriehoek. Dit is een mixed content error: je pagina wordt via HTTPS geladen, maar bevat elementen die nog via HTTP worden opgehaald.
Wat is mixed content?
Mixed content ontstaat wanneer een HTTPS-pagina bronnen (afbeeldingen, scripts, stylesheets, fonts) laadt via een onversleutelde HTTP-verbinding. De browser beschouwt dit als een beveiligingsrisico en toont een waarschuwing.
Er zijn twee soorten mixed content:
- Mixed passive content — afbeeldingen, video's en audio die via HTTP worden geladen. De browser laadt ze wel, maar toont een waarschuwing.
- Mixed active content — scripts, stylesheets en iframes die via HTTP worden geladen. De browser blokkeert deze standaard, wat kan leiden tot een kapotte website.
Mixed content vinden met Chrome DevTools
Volg deze stappen om mixed content op je website te vinden:
1. Open Chrome DevTools
Ga naar je website in Google Chrome en druk op F12 (of rechtsklik → Inspecteren). Klik op het tabblad "Console.
2. Zoek naar waarschuwingen
Mixed content waarschuwingen zijn geel of rood gemarkeerd en zien er als volgt uit:
Mixed Content: The page at 'https://domein.nl/' was loaded over HTTPS, but requested an insecure image 'http://domein.nl/images/logo.png'. This content should also be served over HTTPS.
Elke waarschuwing vertelt je precies welk bestand via HTTP wordt geladen en op welke pagina.
3. Controleer meerdere pagina's
Mixed content kan per pagina verschillen. Controleer in elk geval je homepage, blog, product- en contactpagina. Gebruik eventueel een tool als WhyNoPadlock.com voor een complete scan.
Mixed content oplossen
1. Wijzig hardcoded HTTP-URLs in je database
De meeste mixed content bij WordPress komt door URLs die als http:// in de database staan. Gebruik de plugin Better Search Replace:
- Installeer en activeer Better Search Replace
- Zoek naar:
http://domein.nl - Vervang door:
https://domein.nl - Selecteer alle tabellen
- Voer eerst een dry run uit om te controleren hoeveel vervanging er zijn
- Voer de echte vervanging uit
Let op: Maak altijd een database backup voordat je een search-replace uitvoert.
2. Gebruik de Really Simple SSL plugin
De plugin Really Simple SSL lost de meeste mixed content automatisch op:
- Installeer en activeer Really Simple SSL
- De plugin detecteert automatisch je SSL-certificaat
- Klik op "Activeer SSL
- De plugin herschrijft HTTP-URLs naar HTTPS in de output
Dit is een snelle oplossing, maar het is beter om de URLs permanent te wijzigen in de database (methode 1) zodat je niet afhankelijk bent van een plugin.
3. Forceer HTTPS via .htaccess
Zorg dat alle verkeer wordt doorgestuurd naar HTTPS:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Dit lost mixed content niet direct op (het redirect alleen pagina-verzoeken, geen embedded bronnen), maar zorgt er wel voor dat bezoekers altijd op HTTPS terechtkomen.
4. Pas thema en plugin bestanden aan
Soms bevatten thema- of pluginbestanden hardcoded HTTP-URLs. Zoek in je themabestanden naar:
http://in afbeelding-URLshttp://in script- en stylesheet-tags- Externe bronnen die alleen via HTTP beschikbaar zijn
Vervang http:// door https:// of gebruik protocol-relatieve URLs (//domein.nl/...).
5. Controleer externe bronnen
Als je website bronnen laadt van externe diensten (fonts, analytics, widgets), controleer dan of deze via HTTPS beschikbaar zijn. De meeste moderne diensten ondersteunen HTTPS. Als een externe bron alleen via HTTP beschikbaar is, zoek dan een alternatief of host het bestand lokaal.
Mixed content voorkomen
- Installeer SSL direct bij het opzetten van je website — dan worden alle URLs meteen als HTTPS opgeslagen
- Gebruik relatieve URLs —
/images/logo.pngin plaats vanhttp://domein.nl/images/logo.png - Stel WordPress Site URL in op HTTPS — Instellingen → Algemeen → beide URLs op https://
- Content Security Policy — voeg een CSP header toe die mixed content blokkeert:
Content-Security-Policy: upgrade-insecure-requests
Veelgestelde vragen over mixed content
Is mixed content gevaarlijk voor mijn bezoekers?
Mixed passive content (afbeeldingen) is een beperkt risico. Mixed active content (scripts, stylesheets) is een serieus beveiligingsrisico omdat een aanvaller deze kan onderscheppen en wijzigen. Moderne browsers blokkeren mixed active content automatisch, maar dit kan je website kapot maken.
Waarom zie ik mixed content na het installeren van een SSL certificaat?
Omdat je website-inhoud (pagina's, berichten, widgets) nog verwijst naar bronnen via http://. Het installeren van een SSL certificaat versleutelt de verbinding, maar wijzigt niet automatisch de URLs in je database of bestanden. Je moet deze URLs handmatig of met een plugin bijwerken.
Lost Really Simple SSL alle mixed content op?
De plugin lost de meeste mixed content op door URLs in de HTML-output te herschrijven. Maar het is een runtime-fix — de database bevat nog steeds http:// URLs. Het is beter om een search-replace uit te voeren voor een permanente oplossing. De plugin is wel een goede snelle fix als je het probleem direct wilt verhelpen.
Kan mixed content mijn SEO beïnvloeden?
Ja. Google geeft voorkeur aan volledig beveiligde HTTPS-websites. Mixed content waarschuwingen kunnen je website als "niet volledig beveiligd" markeren, wat het vertrouwen van bezoekers vermindert en indirect je rankings kan beïnvloeden. Los mixed content altijd op na het installeren van een SSL-certificaat.
SSL zonder zorgen? Bekijk onze webhostingpakketten met gratis Let's Encrypt SSL, automatische HTTPS-redirect en deskundige support voor mixed content problemen.
0 van 0 vonden dit nuttig