{"id":18880,"date":"2020-08-19T16:57:00","date_gmt":"2020-08-19T14:57:00","guid":{"rendered":"https:\/\/www.combell.com\/nl\/blog\/?p=18880"},"modified":"2021-08-11T17:46:10","modified_gmt":"2021-08-11T15:46:10","slug":"advanced-tips-voor-een-nog-snellere-website","status":"publish","type":"post","link":"https:\/\/www.combell.com\/nl\/blog\/advanced-tips-voor-een-nog-snellere-website\/","title":{"rendered":"10 advanced tips om jouw website n\u00f2g sneller te maken"},"content":{"rendered":"<p>Een snelle, performante website zorgt voor gelukkige klanten! Maar het kan altijd beter - daarom deze 10 geavanceerde tips om zelfs een goed presterende website nog sneller te maken!<\/p>\n<h2>Extra optimalisatie van jouw laadtijd kan grote impact hebben<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-18892\" title=\"Je website sneller maken belangrijk voor je ranking\" src=\"https:\/\/www.combell.com\/nl\/blog\/files\/Je-website-sneller-maken-belangrijk-voor-je-ranking.png\" alt=\"Je website sneller maken belangrijk voor je ranking\" width=\"150\" height=\"150\" srcset=\"https:\/\/www.combell.com\/nl\/blog\/files\/Je-website-sneller-maken-belangrijk-voor-je-ranking.png 250w, https:\/\/www.combell.com\/nl\/blog\/files\/Je-website-sneller-maken-belangrijk-voor-je-ranking-50x50.png 50w, https:\/\/www.combell.com\/nl\/blog\/files\/Je-website-sneller-maken-belangrijk-voor-je-ranking-60x60.png 60w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/>Het belang van een performante website kan niet genoeg beklemtoond worden. Je bezoekers haken af wanneer een pagina er langer dan 3 seconden over doet om te laden. Een halve seconde sneller laden kan voor je webwinkel al meteen 10% verschil maken in online verkoop.<\/p>\n<p>Een performante website maakt niet alleen tevreden klanten, het zorgt ook voor een hogere ranking bij de zoekresultaten - Google beloont niet alleen snelle websites, <a href=\"https:\/\/www.combell.com\/nl\/blog\/google-chrome-straft-trage-websites-af\/\">het straft binnenkort ook trage websites af! <\/a><\/p>\n<p>In ons e-book \"Mythes over snelheid en wat w\u00e8l werkt om je site sneller te maken\" en onze artikels over performante <a href=\"https:\/\/www.combell.com\/nl\/blog\/wordpress-website-sneller-maken-9-tips\/\">WordPress<\/a> en <a href=\"https:\/\/www.combell.com\/nl\/blog\/8-tips-voor-een-snellere-drupal-website\/\">Drupal<\/a> websites reikten wij je al de grondregels aan voor een performante website.<\/p>\n<p style=\"text-align: center;\"><a class=\"cta_button\" href=\"https:\/\/on.combell.com\/nl\/ebooks\/mythes-over-snelheid-en-wat-wel-werkt-om-je-site-sneller-te-maken\" target=\"_blank\" rel=\"noopener\">Download ons e-book over laadsnelheid<\/a><\/p>\n<p>Ben je niet tevreden over je website? Of is je site al snel, maar ga je, zoals wij, alleen maar voor het allerbeste resultaat? Volg dan deze expert tips. Het klein beetje snelheidswinst dat je nog extra kan bereiken, kan wel degelijk een verschil maken in user experience en google ranking.<\/p>\n<p>Wij hebben op basis van deze tips de performantie van onze website combell.com geoptimaliseerd - met een hogere PageSpeed score als gevolg.<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-18920 size-full\" src=\"https:\/\/www.combell.com\/nl\/blog\/files\/combell-pagespeed.jpg\" alt=\"\" width=\"800\" height=\"280\" \/><\/p>\n<h2>Hou de vitals van je website in het oog!<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-18893\" title=\"Controleer je vitals om je website sneller te maken\" src=\"https:\/\/www.combell.com\/nl\/blog\/files\/Controleer-je-vitals-om-je-website-sneller-te-maken.jpg\" alt=\"Controleer je vitals om je website sneller te maken\" width=\"150\" height=\"148\" srcset=\"https:\/\/www.combell.com\/nl\/blog\/files\/Controleer-je-vitals-om-je-website-sneller-te-maken.jpg 1000w, https:\/\/www.combell.com\/nl\/blog\/files\/Controleer-je-vitals-om-je-website-sneller-te-maken-300x295.jpg 300w, https:\/\/www.combell.com\/nl\/blog\/files\/Controleer-je-vitals-om-je-website-sneller-te-maken-50x50.jpg 50w, https:\/\/www.combell.com\/nl\/blog\/files\/Controleer-je-vitals-om-je-website-sneller-te-maken-768x756.jpg 768w, https:\/\/www.combell.com\/nl\/blog\/files\/Controleer-je-vitals-om-je-website-sneller-te-maken-60x60.jpg 60w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/>Hoe kom je te weten hoe \"gezond\" jouw website eigenlijk \u00a0is? Dat kan je zelf uittesten op de <a href=\"https:\/\/developers.google.com\/speed\/pagespeed\/insights\/\" target=\"_blank\" rel=\"noopener noreferrer\">PageSpeed test van Google<\/a>. Je krijgt er niet alleen cijfers, maar meteen ook een lijstje met werkpunten.<\/p>\n<p>Bij die beoordeling houdt Google \u00a0rekening met \"web vitals\", dat zijn de essenti\u00eble indicatoren die aangeven hoe gezond een website is.\u00a0 Deze cijfers vertegenwoordigen telkens een facet van de gebruikservaring, en geven de re\u00eble ervaring van de gebruiker op het veld weer.<\/p>\n<p>De Core Web Vitals betreffen momenteel het laden, de interactiviteit en de visuele stabiliteit van je website:<\/p>\n<ul>\n<li><strong>Largest Contentful Paint<\/strong> (LCP): meet de laadperformantie. Voor een goede gebruikservaring moet die onder de 2,5 seconden liggen vanaf de pagina begint te laden.<\/li>\n<li><strong>First Input Delay (FID)<\/strong>: meet de interactiviteit, hoe snel je pagina reageert op een actie van de gebruiker. Voor een goede gebruikservaring moet de IFD lager liggen dan 100 milliseconden.<\/li>\n<li><strong>Cumulative Layout Shift<\/strong> (CLS): meet de visuele stabiliteit - dat de tekst bijvoorbeeld tijdens het laden niet voortdurend verspringt. Voor een goede gebruikservaring moet een pagina een CLS van minder dan 0.1 hebben.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/web.dev\/vitals\/\" target=\"_blank\" rel=\"noopener noreferrer\">WebDev<\/a> vertelt je meer over deze vital signs, en met welke tools je de metingen kan uitvoeren met code. Of je kan gebruik maken van de <a href=\"https:\/\/github.com\/GoogleChrome\/web-vitals-extension\" target=\"_blank\" rel=\"noopener noreferrer\">Web Vitals extensie voor de Chrome-browser<\/a>.<\/p>\n<p>Met de Web Vitals en de Google PageSpeed test beschik je over objectieve cijfers, en kan je aan de slag om de performantie op te krikken met onderstaande tips.<\/p>\n<p><strong>Deze 10 tips kan je samen of elk apart inzetten om je performantie op te krikken:<\/strong><\/p>\n<p>\u2192 <a href=\"#tip1\">Tip 1: WebP-afbeeldingen<\/a><br \/>\n\u2192 <a href=\"#tip2\">Tip 2: Native LazyLoading<\/a><br \/>\n\u2192 <a href=\"#tip3\">Tip 3: Critical CSS<\/a><br \/>\n\u2192 <a href=\"#tip4\">Tip 4: Preload externe content<\/a><br \/>\n\u2192 <a href=\"#tip5\">Tip 5: Display swap voor fonts<\/a><br \/>\n\u2192 <a href=\"#tip6\">Tip 6: Vervang externe scripts<\/a><br \/>\n\u2192 <a href=\"#tip7\">Tip 7: JavaScript Async\/Defer<\/a><br \/>\n\u2192 <a href=\"#tip8\">Tip 8: Activeer HTTP\/2<\/a><br \/>\n\u2192 <a href=\"#tip9\">Tip 9: Caching met Varnish\/Redis<\/a><br \/>\n\u2192 <a href=\"#tip10\">Tip 10: Caching in de browser<\/a><\/p>\n<h2 id=\"tip1\">1. WebP-afbeeldingen zijn tot 45% lichter dan PNG of JPG<\/h2>\n<p>Het oog wil ook wat, en mooie afbeeldingen geven je website veel allure. We weten allemaal wel dat we geen superzware afbeeldingen in volledige grootte moeten opladen - die kunnen nefast zijn voor het snel laden van je pagina. In ons <a href=\"https:\/\/on.combell.com\/nl\/ebooks\/mythes-over-snelheid-en-wat-wel-werkt-om-je-site-sneller-te-maken\" target=\"_blank\" rel=\"noopener\">e-book<\/a> vind je enkele tips om slim om te gaan met afbeeldingen.<\/p>\n<p>Maar je kan nog verder gaan in je optimalisatie. Namelijk door je afbeeldingen om te zetten naar het WebP formaat, in plaats van het PNG of JPG beeldformaat te gebruiken.<\/p>\n<p>Het <strong>WebP formaat, <\/strong>ontwikkeld door Google, maakt afbeeldingen immers gemiddeld 45% kleiner dan de compressie in die oudere beeldformaten.<\/p>\n<p style=\"padding-left: 40px;\">JPG- of PNG-afbeeldingen kan je makkelijk converteren via <a href=\"https:\/\/webp-converter.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">WebP-converter<\/a> of gelijkaardige tools. Je hebt er in het begin wel even werk aan - Maar deze aanpassing loont \u00e9cht! Het is \u00e9\u00e9n keer werk, en later hou je er gewoon rekening mee bij het toevoegen van nieuwe afbeeldingen op je pagina.<\/p>\n<p style=\"padding-left: 40px;\">Let op: \u00a0hoewel de meeste browsers WebP ondersteunen, is dat (momenteel) niet het geval bij de <a href=\"https:\/\/caniuse.com\/#feat=webp\" target=\"_blank\" rel=\"noopener noreferrer\">Safari-browser van Apple<\/a>. \u00a0Daarom is het belangrijk om WebP-versies van je afbeeldingen conditioneel in te laden. Afhankelijk van de browser ondersteuning laat je dan een WebP-versie of een JPG\/PNG-versie van de afbeelding zien.<\/p>\n<p style=\"padding-left: 40px;\">\u00a0Dit kan via het &lt;picture&gt; element of server-side.<\/p>\n<p style=\"padding-left: 40px;\"><strong>&lt;picture&gt; methode:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;picture&gt;\n    &lt;source srcset=\"img\/awesomeWebPversion.webp\" type=\"image\/webp\"&gt;\n    &lt;img src=\"img\/JPEGimage.jpg\" alt=\"Alt tekst\"&gt;\n&lt;\/picture&gt;<\/pre>\n<p style=\"padding-left: 40px;\"><strong><br \/>\nServer methode:<\/strong><\/p>\n<p style=\"padding-left: 40px;\">Door deze code in je .htaccess bestand te plaatsen, worden alle JPG\/PNG afbeeldingen automatisch vervangen door WebP afbeeldingen indien de browser dit ondersteunt. Zorg ervoor dat de WebP versie van je afbeelding in dezelfde servermap zit als je JPG\/PNG afbeelding. (Bron: <a href=\"https:\/\/github.com\/vincentorback\/WebP-images-with-htaccess\" target=\"_blank\" rel=\"noopener\">Vincentorback<\/a>)<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;IfModule mod_rewrite.c&gt;\n\nRewriteEngine On\n\n# Check if browser supports WebP images\n\nRewriteCond %{HTTP_ACCEPT} image\/webp\n\n# Check if WebP replacement image exists\n\nRewriteCond %{DOCUMENT_ROOT}\/$1.webp -f\n\n# Serve WebP image instead\n\nRewriteRule (.+)\\.(jpe?g|png)$ $1.webp [T=image\/webp,E=REQUEST_image]\n\n&lt;\/IfModule&gt;\n\n&lt;IfModule mod_headers.c&gt;\n\n# Vary: Accept for all the requests to jpeg and png\n\nHeader append Vary Accept env=REQUEST_image\n\n&lt;\/IfModule&gt;\n\n&lt;IfModule mod_mime.c&gt;\n\nAddType image\/webp .webp\n\n&lt;\/IfModule&gt;<\/pre>\n<div class=\"bs-callout bs-callout-success\">\n<p><strong>TIP<\/strong><strong> 1<\/strong><strong>: Optimaliseer ook je JPG of PNG afbeeldingen<\/strong><\/p>\n<p>De Safari-browser heeft (momenteel) geen ondersteuning voor WebP, daar zullen dus nog steeds de JPG\/PNG versies van je afbeeldingen ingeladen worden. Ook de JPG\/PNG afbeeldingen dien je te comprimeren. Gebruik hiervoor bijvoorbeeld<a href=\"https:\/\/tinypng.com\" target=\"_blank\" rel=\"noopener noreferrer\"> TinyPNG<\/a>.<\/p>\n<\/div>\n<div class=\"bs-callout bs-callout-success\">\n<p><strong>TIP 2: Geef afbeeldingen altijd een width en height mee<\/strong><\/p>\n<p>Maak het de browser makkelijker door altijd de correcte width en height als attributen mee te geven aan afbeeldingen. Zo weet de browser direct hoeveel plaats een afbeelding zal innemen omdat de beeldverhouding gekend is.<\/p>\n<p>Maak er dus een gewoonte van om bij elke &lt;img&gt; tag de volgende syntax te gebruiken:<\/p>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;img src=\"image.jpg\" width=\"120\" height=\"100\" \/&gt;<\/code><\/p>\n<\/div>\n<h2 id=\"tip2\">2. Laad enkel wat nodig is met LazyLoading<\/h2>\n<p><a href=\"https:\/\/github.com\/scott-little\/lazyload\" target=\"_blank\" rel=\"noopener noreferrer\">LazyLoading<\/a> werkt door te wachten met het laden van <strong>afbeeldingen<\/strong> en <strong>iframes<\/strong> die niet zichtbaar zijn totdat de gebruiker er dichtbij scrolt. Want wanneer er een img of iframe tag in de HTML-code staat en door de browser verwerkt wordt, dan zal die onmiddellijk de bronnen gaan inladen. Dit blokkeert het volledige laden van de pagina. En zorgt dus voor een langere laadtijd. LazyLoading zorgt ervoor dat de gebruiker enkel downloadt wat zichtbaar is.<\/p>\n<p style=\"padding-left: 40px;\">Dit toepassen is heel simpel: je voegt het <em><strong>loading=\"lazy\" <\/strong><\/em>attribute toe aan je afbeeldingen en iframes. Een goede gewoonte om mee te nemen in het programmeren van een hypersnelle website.<\/p>\n<p style=\"padding-left: 40px;\">Syntax:<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;img src=\"image.jpg\" loading=\"lazy\" \/&gt;<\/code><br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;iframe src=\"https:\/\/example.com\/\" loading=\"lazy\"&gt;&lt;\/iframe&gt;<\/code><\/p>\n<div class=\"bs-callout bs-callout-warning\">\n<p><strong>Let op:<\/strong> <a href=\"https:\/\/caniuse.com\/#feat=loading-lazy-attr\" target=\"_blank\" rel=\"noopener noreferrer\">Safari heeft momenteel geen ondersteuning<\/a> voor lazy loading via attribute. Maar het gebruik van deze <a href=\"https:\/\/github.com\/mfranzke\/loading-attribute-polyfill\" target=\"_blank\" rel=\"noopener\">polyfill<\/a>\u00a0kan dit oplossen (<a href=\"https:\/\/medium.com\/better-programming\/native-lazy-loading-in-the-browser-85dabe6653ed\" target=\"_blank\" rel=\"noopener noreferrer\">lees meer<\/a>)<\/p>\n<\/div>\n<h2 id=\"tip3\">3. Critical CSS: CSS-bestanden voor het above-the-fold gedeelte al meteen inladen<\/h2>\n<p>Zoals je weet bevatten CSS (Cascading Style Sheets) bestanden een specifieke opmaak voor je pagina, zodat die op alle pagina's consistent is. Het grote voordeel: wil je de stijl aanpassen, dan moet je enkel het CSS-bestand aanpassen, en niet elke individuele pagina.<\/p>\n<p>Je kan CSS in de html-code zelf meegeven of je kan een centraal bestand aanroepen op elke pagina. Dat betekent dan wel dat de browser de CSS-bestanden moet downloaden en verwerken voordat de pagina kan worden weergegeven.<\/p>\n<p>CSS kan dus een bron zijn die de weergave blokkeert. Als CSS-bestanden groot zijn of als de netwerkomstandigheden slecht zijn, kunnen verzoeken om CSS-bestanden, de tijd die nodig is voor het weergeven van een webpagina, aanzienlijk verlengen. Dat kan je vermijden door Critical CSS te gebruiken.<\/p>\n<p style=\"padding-left: 40px;\">Bij <a href=\"https:\/\/web.dev\/extract-critical-css\/\" target=\"_blank\" rel=\"noopener noreferrer\">Critical CSS<\/a> ga je de stijlen die nodig zijn voor het \"above the fold\" gedeelte, dus de content die de gebruiker ziet vooraleer hij begint te scrollen, opnemen in de &lt;head&gt; van het HTML-document. Zo moet er geen extra verzoek gedaan worden om deze stijlen op te halen. De rest van de CSS kan asynchroon worden geladen. <a href=\"https:\/\/criticalcss.com\/\" target=\"_blank\" rel=\"noopener\">CriticalCSS.com<\/a> is een dienst die hierbij helpt.<\/p>\n<h2 id=\"tip4\">4. Laad externe content op voorhand in met preload, prefetch en andere &lt;link rel&gt; tags<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-18895\" title=\"Selectief laden kan je website sneller maken\" src=\"https:\/\/www.combell.com\/nl\/blog\/files\/Selectief-laden-kan-je-website-sneller-maken.png\" alt=\"Selectief laden kan je website sneller maken\" width=\"125\" height=\"199\" srcset=\"https:\/\/www.combell.com\/nl\/blog\/files\/Selectief-laden-kan-je-website-sneller-maken.png 250w, https:\/\/www.combell.com\/nl\/blog\/files\/Selectief-laden-kan-je-website-sneller-maken-188x300.png 188w\" sizes=\"(max-width: 125px) 100vw, 125px\" \/>Je wint ook tijd door content die later op de pagina aangeroepen wordt, al op voorhand in te laden of voor te bereiden. Dat kan het vooraf laden van een CSS-bestand zijn, een domeinnaam opzoeken, enz. Zo staat die content klaar en moet je bezoeker niet wachten wanneer die echt nodig zijn.<\/p>\n<p style=\"padding-left: 40px;\">Deze instructie geef je door met de &lt;link rel&gt; tag. Er zijn 5 verschillende attributen die je daarbij kan gebruiken.<\/p>\n<p style=\"padding-left: 40px;\"><strong>preload: <\/strong>download met hoge prioriteit een bron zoals een script of een stylesheet, en houd het in cache. De browser doet niets met die bron, dus scripts worden nog niet uitgevoerd bijvoorbeeld. Zij komen gewoon in de cache, zodat zij onmiddellijk beschikbaar zijn wanneer ze nodig zijn.<\/p>\n<p style=\"padding-left: 40px;\">Syntax:<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;link rel=\"preload\" href=\"\/style.css\" as=\"style\" \/&gt;<\/code><\/p>\n<p style=\"padding-left: 40px;\"><strong>prefetch<\/strong>: doet eigenlijk hetzelfde als preload, maar wel met lage prioriteit, zodat het belangrijkere bronnen niet in de weg staat.<\/p>\n<p style=\"padding-left: 40px;\">Syntax:<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;link rel=\"prefetch\" href=\"\/style.css\" as=\"style\" \/&gt;<\/code><\/p>\n<div class=\"bs-callout bs-callout-success\">\n<p><strong>TIP<\/strong>: Bij zowel preload als prefetch is het gebruik van het attribuut \"as\" aan te raden. Dat helpt de browser om de download correct in te plannen. Mogelijkheden zijn \"as style\" voor stylesheets, \"as script\" voor scripts, \"as font\" voor lettertypes. Een volledige lijst bij <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTML\/Preloading_content#What_types_of_content_can_be_preloaded\" target=\"_blank\" rel=\"noopener noreferrer\">MDN<\/a>.<\/p>\n<\/div>\n<p style=\"padding-left: 40px;\"><strong>preconnect: <\/strong>hiermee vraag je de browser om op voorhand al een verbinding te leggen met een bepaald domein. Dit gebruik je wanneer je weet dat de gebruiker snel iets van dat domein zal gaan downloaden, maar je weet nog niet wat.<\/p>\n<p style=\"padding-left: 40px;\">Syntax:<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;link rel=\"preconnect\" href=\"https:\/\/example.com\" \/&gt;<\/code><\/p>\n<p style=\"padding-left: 40px;\"><strong>dns-prefetch:<\/strong> je vraagt aan de browser om op voorhand al een DNS-resolutie van een domein uit te voeren. Dit gebruik je wanneer je weet dat je al snel een verbinding moet maken met dat domein, bijvoorbeeld om een lettertype van Google Fonts te gebruiken, of React van een CDN.<\/p>\n<p style=\"padding-left: 40px;\">Syntax:<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;link rel=\"dns-prefetch\" href=\"https:\/\/example.com\" \/&gt;<\/code><\/p>\n<p style=\"padding-left: 40px;\"><strong>prerender<\/strong>: je vraagt aan de browser om een <a href=\"https:\/\/www.combell.com\/nl\/help\/kb\/wat-is-url\/\">URL<\/a> al te laden en die pagina in een onzichtbare tab te laden. Klikt je bezoeker op die URL, dan wordt de pagina onmiddellijk weergegeven.<\/p>\n<p style=\"padding-left: 40px;\">Syntax:<br \/>\n<code class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;link rel=\"prerender\" href=\"https:\/\/example.com\/about.html\" \/&gt;<\/code><\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/3perf.com\/blog\/link-rels\/\" target=\"_blank\" rel=\"noopener noreferrer\">Lees meer over de link rel tag.<\/a><\/p>\n<h2 id=\"tip5\">5. Laad fonts in met display swap<\/h2>\n<p>Ook het laden van een (extern) lettertype kan voor vertraging zorgen. Vooral wanneer je verschillende versies van een lettertype gebruikt. Maar ook dat kan je verhelpen.<\/p>\n<p style=\"padding-left: 40px;\">Met de font display swap CSS property geef je instructie aan de browser om eerst een standaard lettertype te gebruiken, totdat het externe lettertype gedownload is. Zodra dat gebeurd is, worden de lettertypen verwisseld.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"css\">@font-face {\n  font-family: \"Open Sans Regular\";\n  font-weight: 400;\n  font-style: normal;\n  src: url(\"fonts\/OpenSans-Regular.woff2\") format(\"woff2\");\n  font-display: swap;\n}<\/pre>\n<p style=\"padding-left: 40px;\"><strong>Gebruik je Google Fonts?<\/strong> Voeg dan onderstaande code toe om font swapping te activeren:<br \/>\n<em>https:\/\/fonts.googleapis.com\/css?family= Roboto:400,600<strong>&amp;display=swap<\/strong><\/em><\/p>\n<div class=\"bs-callout bs-callout-success\">\n<p><strong>TIP: Preload deze resource<\/strong><\/p>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;link rel=\"preload\" href=\"https:\/\/fonts.googleapis.com\/css?family= Roboto:400,600&amp;display=swap\" as=\"style\"&gt;<\/code><\/p>\n<\/div>\n<p><em>\u00a0<\/em><\/p>\n<h2 id=\"tip6\">6. Vervang externe scripts door je eigen code<\/h2>\n<p>Je website maakt ongetwijfeld gebruik van externe scripts om bijvoorbeeld YouTube filmpjes te vertonen. Het inladen van zo'n script heeft altijd een negatieve impact op je website performance. Bekijk daarom eerst of het wel nodig is om dit extern script in te laden.<\/p>\n<p style=\"padding-left: 40px;\"><strong>Voorbeeld: Vervang YouTube\/Vimeo embeds door screenshots<\/strong><\/p>\n<p style=\"padding-left: 40px;\">Video players van YouTube of Vimeo embedden op een webpagina zorgt voor heel wat extra resources die je website vertragen. Een eenvoudige oplossing is om deze video players te vervangen door screenshots. Pas als iemand op de screenshot klikt ga je de video player effectief inladen of link je door naar YouTube\/Vimeo. Denk er wel aan om je afbeelding van een \"play\" icoontje te voorzien.<\/p>\n<h2 id=\"tip7\">7. Laat JavaScript de verwerking van de rest van de pagina niet blokkeren<\/h2>\n<p>Nog een factor die het snel weergeven kan verstoren, is het gebruik van JavaScript - al dan niet extern. Komt de browser van je bezoeker in de HTML-code de instructie tegen om een JavaScript te laden, dan zal hij dat gaan ophalen en het script uitvoeren. Daarna pas gaat de browser verder met het verwerken van de rest van de code. Dit heeft een enorme impact op de laadtijd van een pagina.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-18924\" src=\"https:\/\/www.combell.com\/nl\/blog\/files\/without-defer-async-head.png\" alt=\"\" width=\"1133\" height=\"248\" srcset=\"https:\/\/www.combell.com\/nl\/blog\/files\/without-defer-async-head.png 1133w, https:\/\/www.combell.com\/nl\/blog\/files\/without-defer-async-head-300x66.png 300w, https:\/\/www.combell.com\/nl\/blog\/files\/without-defer-async-head-768x168.png 768w\" sizes=\"(max-width: 1133px) 100vw, 1133px\" \/><\/p>\n<p style=\"padding-left: 40px;\">Dit kan je op verschillende manieren voorkomen.<\/p>\n<p style=\"padding-left: 40px;\"><strong>Plaats de script tags niet in de &lt;head&gt; tag:<\/strong><\/p>\n<p style=\"padding-left: 40px;\">Normaal gezien hoort het script tag daar thuis, maar het zorgt voor heel wat vertraging. Een oplossing is gewoon de script tag onderaan de pagina te plaatsen, vlak voor de &lt;\/body&gt; tag.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-18925\" src=\"https:\/\/www.combell.com\/nl\/blog\/files\/without-defer-async-body.png\" alt=\"\" width=\"1137\" height=\"203\" srcset=\"https:\/\/www.combell.com\/nl\/blog\/files\/without-defer-async-body.png 1137w, https:\/\/www.combell.com\/nl\/blog\/files\/without-defer-async-body-300x54.png 300w, https:\/\/www.combell.com\/nl\/blog\/files\/without-defer-async-body-768x137.png 768w\" sizes=\"(max-width: 1137px) 100vw, 1137px\" \/><\/p>\n<p style=\"padding-left: 40px;\">Deze methode wordt vooral gebruikt indien je ondersteuning wil bieden voor oudere browsers. Bij nieuwe browsers zijn er echter twee nieuwe tags die kunnen helpen: async en defer.<\/p>\n<h3 style=\"padding-left: 40px;\"><strong>Gebruik Async en Defer in moderne browsers:<\/strong><\/h3>\n<p style=\"padding-left: 40px;\"><strong>Async: <\/strong>Het script wordt asynchroon opgehaald en wanneer het klaar is, wordt het verwerken van HTML onderbroken om het script uit te voeren, waarna het wordt hervat.<\/p>\n<p style=\"padding-left: 40px;\">Syntax:<\/p>\n<p style=\"padding-left: 40px;\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;script async src=\"script.js\"&gt;&lt;\/script&gt;<\/code><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-18926\" src=\"https:\/\/www.combell.com\/nl\/blog\/files\/with-async.png\" alt=\"\" width=\"1132\" height=\"247\" srcset=\"https:\/\/www.combell.com\/nl\/blog\/files\/with-async.png 1132w, https:\/\/www.combell.com\/nl\/blog\/files\/with-async-300x65.png 300w, https:\/\/www.combell.com\/nl\/blog\/files\/with-async-768x168.png 768w\" sizes=\"(max-width: 1132px) 100vw, 1132px\" \/><\/p>\n<p style=\"padding-left: 40px;\"><strong>Defer:<\/strong> Het script wordt asynchroon opgehaald en wordt pas uitgevoerd nadat de HTML-parsing is voltooid.<\/p>\n<p style=\"padding-left: 40px;\">Syntax:<\/p>\n<p style=\"padding-left: 40px;\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"html\">&lt;script defer src=\"script.js\"&gt;&lt;\/script&gt;<\/code><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-18927\" src=\"https:\/\/www.combell.com\/nl\/blog\/files\/with-defer.png\" alt=\"\" width=\"1133\" height=\"251\" srcset=\"https:\/\/www.combell.com\/nl\/blog\/files\/with-defer.png 1133w, https:\/\/www.combell.com\/nl\/blog\/files\/with-defer-300x66.png 300w, https:\/\/www.combell.com\/nl\/blog\/files\/with-defer-768x170.png 768w\" sizes=\"(max-width: 1133px) 100vw, 1133px\" \/><\/p>\n<p style=\"padding-left: 40px;\">Je kan ook beide attributen gebruiken, waarbij async dan voorrang krijgt bij een moderne browser. Oudere browsers die defer ondersteunen maar niet async, zullen dan overschakelen op defer.<\/p>\n<p style=\"padding-left: 40px;\"><strong>Let op:<\/strong> Door het toepassen van async en defer op je JavaScript bestanden be\u00efnvloed je het moment waarop deze scripts uitgevoerd worden. Bekijk dus zeker de <a href=\"https:\/\/flaviocopes.com\/javascript-async-defer\/\" target=\"_blank\" rel=\"noopener noreferrer\">resultaten van het gebruik van deze technieken.<\/a><\/p>\n<div class=\"bs-callout bs-callout-success\">\n<p><strong>TIP: Scripts vertraagd inladen<\/strong><\/p>\n<p>Heb je een (extern) script zoals een Chat widget? Kies er dan voor om dit vertraagd in te laden, bijvoorbeeld pas na 3 seconden. Zo zal dit script geen impact hebben op de initi\u00eble pagina laadtijd.<\/p>\n<\/div>\n<h2 id=\"tip8\">8. HTTP\/2 laat je meer bestanden tegelijkertijd laden<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright wp-image-18896\" title=\"Activeer HTTP2 om je website sneller te maken\" src=\"https:\/\/www.combell.com\/nl\/blog\/files\/Activeer-HTTP2-om-je-website-sneller-te-maken.png\" alt=\"Activeer HTTP2 om je website sneller te maken\" width=\"175\" height=\"147\" srcset=\"https:\/\/www.combell.com\/nl\/blog\/files\/Activeer-HTTP2-om-je-website-sneller-te-maken.png 1000w, https:\/\/www.combell.com\/nl\/blog\/files\/Activeer-HTTP2-om-je-website-sneller-te-maken-300x251.png 300w, https:\/\/www.combell.com\/nl\/blog\/files\/Activeer-HTTP2-om-je-website-sneller-te-maken-768x644.png 768w\" sizes=\"(max-width: 175px) 100vw, 175px\" \/>HTTP\/2 is de nieuwe versie van het HTTP\u00a0 transfer protocol. Het is de opvolger van HTTP\/1.1 dat al dateert van 1999 en het verbetert het oude protocol beduidend, op verschillende manieren:<\/p>\n<p>- <strong>Multiplexing<\/strong>: per verbinding kon het protocol bij 1.1 de bestanden slechts \u00e9\u00e9n na \u00e9\u00e9n opvragen; bovendien wordt er tegenwoordig op de meeste websites content opgevraagd van meerdere bronnen, zoals adverteernetwerken, content delivery netwerken, ... Bij HTTP\/2 echter kunnen meerdere bestanden via multiplexing over \u00e9\u00e9n enkele verbinding tegelijkertijd verstuurd worden.<\/p>\n<p>- <strong>Header optimization:<\/strong> overbodige headers worden verwijderd en de overblijvende headers worden gecomprimeerd.<\/p>\n<p>-<strong> Server push<\/strong>: de server wacht niet tot de klant een connectie initieert, maar stuurt proactief bronnen naar de browser van je bezoeker. De server weet als het ware welke content die browser nodig heeft om de pagina te renderen, en zal deze data naar de browser pushen.<\/p>\n<div class=\"bs-callout bs-callout-success\">\n<p><strong>TIP:<\/strong> Bij Combell kan je HTTP\/2 eenvoudig via je controlepaneel aanzetten. Lees meer in ons artikel: <a href=\"https:\/\/www.combell.com\/nl\/blog\/wat-is-https\/\">Boost de laadsnelheid van jouw website met HTTP\/2.<\/a><\/p>\n<\/div>\n<h2 id=\"tip9\">9. Maak gebruik van caching Varnish\/Redis<\/h2>\n<p><strong>Caching via de server<\/strong> is een techniek die vooral toegepast wordt bij dynamische pagina's - pagina's die on-the-fly samengesteld worden bij het bezoek van je gebruiker. Data worden uit een database gehaald, en in het template van de website ingepast. Het resultaat wordt dan aan de bezoeker getoond. Denk bijvoorbeeld aan je productpagina, met afbeeldingen, omschrijvingen en prijzen. Of pagina's die gemaakt worden via een Content Management Systeem zoals WordPress.<\/p>\n<p>Wanneer bepaalde pagina's niet of zelden wijzigen, dan is het eigenlijk niet nodig dat die bij elk bezoek herberekend worden - het is dan slimmer om die in de cache te zetten bij de server.<\/p>\n<p style=\"padding-left: 40px;\">Hiervoor bestaan er verschillende technologie\u00ebn, zoals Varnish en Redis. Ons artikel <a href=\"https:\/\/www.combell.com\/nl\/blog\/maak-jouw-website-vliegensvlug-met-caching\/\">Maak jouw website vliegensvlug met caching<\/a> legt je duidelijk uit hoe dit werkt. In ons e-book over caching en meer specifiek Varnish, vind je een praktische handleiding met de best practices van caching.<\/p>\n<p style=\"text-align: center;\"><a class=\"cta_button\" href=\"https:\/\/on.combell.com\/nl\/ebooks\/bliksemsnelle-sites-met-varnish\" target=\"_blank\" rel=\"noopener\">Download ons Varnish e-book<\/a><\/p>\n<h2 id=\"tip10\">10. Laat de browser van je bezoeker ook cachen<\/h2>\n<p>Naast caching op de server, kan je ook bestanden in de<strong> cache van de computer van de bezoeker <\/strong>laten bewaren. Wanneer je bezoeker voor het eerst op jouw website landt, dan wordt jouw code vanop de <a href=\"https:\/\/www.combell.com\/nl\/servers\">webserver<\/a> naar zijn browser gestuurd. Maar het is niet nodig dat alle content telkens opnieuw gestuurd wordt wanneer je bezoeker je website nogmaals bezoekt. Door bestanden uit de cache op te halen in plaats van via het netwerk opnieuw te laden wordt een enorme tijdwinst gehaald.<\/p>\n<p>Wanneer je een vervaldatum (expiry date) toevoegt, dan vertel je aan de browser hoe lang hij het asset in de cache moet houden. Staat die vervaldatum bijvoorbeeld op 1 maand, dan zal de browser een maand lang die afbeelding vanuit de cache tonen, en niet gaan opvragen op je server. Het vermelden van de vervaldatum kan dus een hele tijdwinst betekenen!<\/p>\n<p style=\"padding-left: 40px;\">De http-headers zijn een instructie aan de browser over de geldigheid van het bestand. Als de pagina in de cache opgeslagen is, dan wordt het bestand vanaf daar opgehaald in plaats van de server, totdat de cache verlopen is. Op moment dat de cache verlopen is wordt het bestand als \u201cexpired\u201d bestempeld en moet er een nieuwe versie van de server gehaald worden.<\/p>\n<p style=\"padding-left: 40px;\">Neem de Expires Header\/Cache-Control code op in je .htaccess<\/p>\n<p style=\"padding-left: 40px;\">Naargelang je setup kan je dan instellen hoe lang bepaalde type assets gecached moeten worden. De code om dit in te stellen, wordt verwerkt in het .htaccess bestand.<\/p>\n<p style=\"padding-left: 40px;\"><strong>Voorbeeld:<br \/>\n<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">ExpiresActive On\n\nExpiresByType image\/jpg \"access plus 1 year\"\nExpiresByType image\/jpeg \"access plus 1 year\"\nExpiresByType image\/gif \"access plus 1 year\"\nExpiresByType image\/png \"access plus 1 year\"\nExpiresByType image\/webp \"access plus 1 year\"\nExpiresByType image\/x-icon \"access plus 1 year\"\nExpiresByType image\/svg+xml \"access plus 1 year\"\n\nExpiresDefault \"access plus 1 month\"<\/pre>\n<p style=\"padding-left: 40px;\">In dit voorbeeld houden we alle afbeeldingen 1 jaar lang in cache.<\/p>\n<p style=\"padding-left: 40px;\"><a href=\"https:\/\/www.byte.nl\/kennisbank\/optimaliseren\/expires-header-en-cache-control\" target=\"_blank\" rel=\"noopener noreferrer\">Lees meer over Expires Header \/ Cache-Control.<\/a><\/p>\n<h2>Contacteer ons Performance Team voor advies op maat<\/h2>\n<p>Zo. Hiermee hebben wij je 10 manieren aan de hand gedaan die je kan toepassen om je website sneller te laten laden en performanter te maken. Heb je hierover nog vragen, of vind jij in deze tips geen antwoord op jouw specifieke probleem? Ons <a href=\"https:\/\/www.combell.com\/nl\/blog\/performance-team\/\">Performance Team<\/a> bekijkt graag met jou waar het schoentje wringt, en wat de verschillende mogelijkheden zijn.<\/p>\n<p>Wil jij een snellere website, maar beschik jij niet over de nodige technische kennis? Dan is onze <a href=\"https:\/\/www.combell.com\/nl\/managed-services\">Managed Services<\/a>\u00a0wel een oplossing. Wij zorgen voor de technische kant, zodat jouw website op rolletjes loopt. En jij kan je concentreren op je kerntaak: je product verkopen en je gebruikers gelukkig maken!<\/p>\n<p style=\"text-align: center;\"><a class=\"cta_button\" href=\"https:\/\/www.combell.com\/nl\/performantie-optimalisatie\">Bekijk onze performante oplossingen op maat<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Een snelle, performante website zorgt voor gelukkige klanten! Maar het kan altijd beter - daarom deze 10 geavanceerde tips om zelfs een goed presterende website nog sneller te maken! Extra...<\/p>\n","protected":false},"author":1,"featured_media":18889,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[101,4413],"tags":[307,32],"acf":[],"uagb_featured_image_src":{"full":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website.jpg",1200,420,false],"thumbnail":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website-50x50.jpg",50,50,true],"medium":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website-300x105.jpg",300,105,true],"medium_large":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website-768x269.jpg",768,269,true],"large":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website.jpg",1200,420,false],"1536x1536":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website.jpg",1200,420,false],"2048x2048":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website.jpg",1200,420,false],"post-featured":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website-850x290.jpg",850,290,true],"post-featured-opt":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website-750x256.jpg",750,256,true],"post-featured-opt-md":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website-850x290.jpg",850,290,true],"post-featured-opt-sm":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website-485x165.jpg",485,165,true],"post-featured-opt-xs":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website-375x128.jpg",375,128,true],"post-most-popular":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website-50x50.jpg",50,50,true],"post-author":["https:\/\/www.combell.com\/nl\/blog\/files\/Advanced-tips-voor-een-nog-snellere-website-60x60.jpg",60,60,true]},"uagb_author_info":{"display_name":"Combell","author_link":"https:\/\/www.combell.com\/nl\/blog\/author\/blogadmin\/"},"uagb_comment_info":0,"uagb_excerpt":"Een snelle, performante website zorgt voor gelukkige klanten! Maar het kan altijd beter - daarom deze 10 geavanceerde tips om zelfs een goed presterende website nog sneller te maken! Extra...","_links":{"self":[{"href":"https:\/\/www.combell.com\/nl\/blog\/wp-json\/wp\/v2\/posts\/18880"}],"collection":[{"href":"https:\/\/www.combell.com\/nl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.combell.com\/nl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.combell.com\/nl\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.combell.com\/nl\/blog\/wp-json\/wp\/v2\/comments?post=18880"}],"version-history":[{"count":45,"href":"https:\/\/www.combell.com\/nl\/blog\/wp-json\/wp\/v2\/posts\/18880\/revisions"}],"predecessor-version":[{"id":20826,"href":"https:\/\/www.combell.com\/nl\/blog\/wp-json\/wp\/v2\/posts\/18880\/revisions\/20826"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.combell.com\/nl\/blog\/wp-json\/wp\/v2\/media\/18889"}],"wp:attachment":[{"href":"https:\/\/www.combell.com\/nl\/blog\/wp-json\/wp\/v2\/media?parent=18880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.combell.com\/nl\/blog\/wp-json\/wp\/v2\/categories?post=18880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.combell.com\/nl\/blog\/wp-json\/wp\/v2\/tags?post=18880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}