Module 4 · 4.1
https en een goede doorsturing
Module 4: Snelheid, mobiel en https · Leestijd: 11 minuten
Leerdoel: Na deze les kun je uitleggen waarom https telt voor zoekmachines en bezoekers, het verschil tussen een permanente en een tijdelijke doorsturing benoemen, en controleren dat alle varianten van je adres in één stap op dezelfde https-pagina uitkomen.
Kernbegrippen: https, certificaat, doorsturing (redirect), 301 en 308 (permanent), 302 en 307 (tijdelijk), doorstuurketen, voorkeursadres, www of zonder www, HSTS, gemengde inhoud
Vier adressen voor één homepage
Typ je de naam van een website in de adresbalk, dan kan je browser op vier plekken uitkomen:
| Variant | Voorbeeld |
|---|---|
| http zonder www | http://example.com/ |
| http met www | http://www.example.com/ |
| https zonder www | https://example.com/ |
| https met www | https://www.example.com/ |
Voor jou is dat één site. Voor een zoekmachine zijn het vier verschillende adressen. Geven ze alle vier dezelfde pagina, dan moet Google zelf kiezen welke het "echte" adres is. Google noemt dat het canonieke adres (les 3.5 gaat daar dieper op in). Google raadt aan om zelf één adres als voorkeursadres te kiezen en de andere varianten daarheen door te sturen. Dan is er geen twijfel, en tellen links naar elke variant mee voor dezelfde pagina.
Bloemenatelier Lotte kiest https://www.example.com/. De drie andere varianten sturen daarheen door. Of je met of zonder www kiest, maakt voor zoekmachines niet uit. Belangrijk is dat je één keuze maakt en je er overal aan houdt: in je menu, je sitemap, je canonical en je bedrijfsprofiel.
Waarom https
https betekent dat de verbinding tussen browser en server versleuteld is met een certificaat. Niemand onderweg kan meelezen of iets in de pagina veranderen, bijvoorbeeld op een openbare wifi.
Voor zoekmachines telt https op twee manieren:
- Als signaal. Google maakte in 2014 bekend dat https een rankingsignaal is, maar noemde het toen "een heel licht signaal" dat minder weegt dan goede inhoud. In de documentatie over pagina-ervaring staat https als een van de vragen die je jezelf moet stellen ("worden je pagina's veilig geleverd?"). Overdrijf het dus niet: https alleen brengt je niet bovenaan.
- Voor bezoekers. Browsers zetten "Niet beveiligd" bij een pagina op http, zeker bij een formulier. Een bezoeker die dat ziet, haakt sneller af. Dat merk je in je bezoek, niet in een rangschikkingsregel.
Een geldig certificaat is tegenwoordig gratis te krijgen via Let's Encrypt. Bij de meeste hostingbedrijven, ook bij WebOké, wordt het automatisch aangevraagd en vernieuwd. Let op dat het certificaat beide namen dekt: zonder en met www. Dekt het alleen example.com, dan geeft https://www.example.com/ een certificaatfout, nog vóór de doorsturing kan gebeuren.
Permanent of tijdelijk doorsturen
Een doorsturing (redirect) is een antwoord van de server: "deze pagina staat ergens anders". Dat gebeurt met een statuscode van drie cijfers die met een 3 begint, plus een kopregel Location met het nieuwe adres.
| Code | Betekenis | Wat Google ermee doet |
|---|---|---|
| 301 | Permanent verplaatst | Sterk signaal dat het doel het canonieke adres is |
| 308 | Permanent verplaatst (methode blijft gelijk) | Hetzelfde als 301 |
| 302 | Tijdelijk gevonden | Geen signaal; het oude adres blijft vaak in de resultaten |
| 307 | Tijdelijk (methode blijft gelijk) | Hetzelfde als 302 |
Volgens Google Search Central gebruikt de indexering een permanente doorsturing als signaal dat het doel canoniek moet worden. Bij een tijdelijke doorsturing gebeurt dat niet: het oude adres blijft meestal in de resultaten staan. Voor http naar https en voor www of zonder www is de situatie blijvend. Gebruik dus 301 of 308.
Je kunt een doorsturing zelf zien. In een terminal:
$ curl -sI http://example.com/
HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/Of in je browser: open de ontwikkelaarshulpmiddelen (F12), tabblad Netwerk, zet de optie aan die het logboek bewaart bij het laden van een nieuwe pagina, en laad het http-adres. Je ziet dan elke stap met zijn code.
Doorstuurketens
Een doorstuurketen is een doorsturing naar een adres dat zelf weer doorstuurt. Een veelvoorkomend voorbeeld:
http://example.com/ 301 → https://example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200Dat werkt, maar het kost bij elk eerste bezoek een extra heen-en-weer naar de server. web.dev noemt doorsturingen een van de oorzaken van een trage eerste reactie van de server (les 4.3): elke stap telt op, en ketens nog meer. Beter is dat elke variant in één stap op het voorkeursadres uitkomt:
http://example.com/ 301 → https://www.example.com/
http://www.example.com/ 301 → https://www.example.com/
https://example.com/ 301 → https://www.example.com/
https://www.example.com/ 200Bij het oude http-adres met de andere naam lukt dat niet altijd in één stap, omdat de server bij sommige instellingen eerst naar https van dezelfde naam stuurt en dan pas naar de andere naam. Twee stappen is dan acceptabel; drie of meer is een reden om de instellingen na te kijken. Een lus (A stuurt naar B, B stuurt weer naar A) is altijd fout: de pagina opent dan helemaal niet.
HSTS: de browser onthoudt het
HSTS (HTTP Strict Transport Security, RFC 6797) is een kopregel die de server meestuurt over https:
Strict-Transport-Security: max-age=31536000Een browser die dit eenmaal heeft gezien, gaat daarna voor deze site zelf meteen naar https, zonder eerst http te proberen. Dat scheelt de eerste doorsturing en beschermt tegen meekijkers. web.dev noemt HSTS ook als manier om de doorsturing van http naar https te vermijden. Voor zoekmachines is HSTS geen signaal; voor je bezoekers is het een verbetering. Zet het pas aan als https op alle namen goed werkt, want de browser onthoudt het zolang max-age zegt. De cursus Veilig online gaat daar verder op in.
Gemengde inhoud
Een https-pagina die een afbeelding, script of stylesheet via http:// laadt, heeft gemengde inhoud (mixed content). Browsers blokkeren onveilige scripts en stylesheets, of tonen een waarschuwing. Na de overstap naar https zie je dit vaak bij oude afbeeldingen in teksten of bij een thema met vaste adressen. Zoek in de broncode naar src="http:// en href="http:// en vervang ze door https of door een relatief adres.
In de praktijk: doorsturen naar https instellen
Bij een hostingpakket van WebOké zet je de doorsturing naar https in DirectAdmin aan bij de instellingen van het domein (schakelaar "Forceer SSL met https omleiding"), en kies je op dezelfde pagina bij "Omleiding forceren" of je met of zonder www werkt. Gebruik één plek voor de doorsturing: twee regels die elk iets anders doen (bijvoorbeeld in het paneel en in een plugin) geven makkelijk een lus. Een site die met de AI Builder is gemaakt, krijgt bij het publiceren een certificaat en een eigen adres. In WordPress vul je bij Instellingen, Algemeen het WordPress-adres en het siteadres met https:// en je gekozen naam in; de doorsturing zelf regel je op de server. Bij andere aanbieders en websitebouwers werkt het vergelijkbaar, alleen heten de knoppen anders.
Wil je het via .htaccess doen (Apache of LiteSpeed), dan stuurt dit alle varianten in één stap naar https://www.example.com:
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]Controleer daarna altijd alle vier de varianten, ook met een pad erachter (http://example.com/contact): het pad moet behouden blijven, niet naar de homepage springen.
Samenvatting
- Kies één voorkeursadres (https, met of zonder www) en stuur de andere varianten daarheen door.
- Gebruik voor blijvende doorsturingen 301 of 308; 302 en 307 zijn tijdelijk en geven Google geen signaal over het canonieke adres.
- Laat elke variant in één stap, hoogstens twee, op het voorkeursadres uitkomen; ketens kosten tijd en lussen breken de site.
- https is volgens Google een licht rankingsignaal; voor bezoekers is het vooral een kwestie van vertrouwen. Het certificaat moet beide namen dekken.
- HSTS laat de browser zelf naar https gaan; gemengde inhoud ruim je op na de overstap.
Quiz
Opdracht
Opdracht A4.1: Gaat alles in één stap naar https? Vul je domeinnaam in (zonder www). Het programma probeert alle vier de varianten (http en https, met en zonder www), volgt elke doorsturing stap voor stap en controleert het certificaat van beide namen. Je ziet per variant de keten met statuscodes, of ze allemaal op hetzelfde https-adres uitkomen, en of er een HSTS-kopregel is. Geen eigen site? Gebruik rijksoverheid.nl.
Verder lezen
De stappen in deze artikelen gelden voor de panelen van WebOké; bij andere aanbieders werkt het vergelijkbaar.
- DirectAdmin handleiding 6.4: Bezoekers altijd naar https sturen
- DirectAdmin handleiding 4.3: Instellingen van een domein: SSL, PHP, www en private_html
- DirectAdmin handleiding 6.3: Certificaat voor www, subdomeinen en wildcard
- Bezoekers verplicht doorsturen naar https
- Gratis DNS-cursus 3.4: www, doorsturen en wat DNS niet doet
- Google Search Central, Redirects and Google Search: https://developers.google.com/search/docs/crawling-indexing/301-redirects
- Google Search Central Blog, HTTPS as a ranking signal (2014): https://developers.google.com/search/blog/2014/08/https-as-ranking-signal
- RFC 6797 (HSTS): https://www.rfc-editor.org/rfc/rfc6797
