Decoupled Drupal | 22% boost in snelheid door 2 regels code in Node.js

30 Nov 2015

Joris Snoek - Business Dev
+31 (0)20 - 261 14 99

English translation here

Enkele maanden geleden lanceerde we deze headless Drupal website. Toen ik Google's Page Speed ging raadplegen schrok ik: score 57 uit 100, niet best! Snelheid is een van de belangrijkste onderdelen van een website, want als je website traag is dan:

  • haken bezoekers snel af;
  • zal Google jouw website slecht beoordelen, wat een nadelig SEO resultaat geeft;
  • krijg je een slechte Ad rank binnen Adwords; dat kost klauwen vol geld.

Sinds we nu ons frontend op Node.js / Express JS hebben draaien dacht ik: die Page Speed zal wel door het dak gaan. Niet dus, check maar hoe het ervoor stond na initiële livegang in onderstaande afbeelding: een zeer teleurstellend rood rapportcijfer. Wat veroorzaakt werd door het niet gebruiken van 'gzip compression'.

GZIP compression? Ehm…. wat? Waarom?

Lees hier over gzip compression.

Een visuele toelichting:

Bron

Compression bij een standaard Drupal installatie

Wanneer je een standaard Drupal installatie inzet (niet headless/decoupled), dan is deze compressie eenvoudig in te schakelen.

  1. Ga naar /admin/config/development/performance
  2. Vink aan ‘Cache pages for anonymous users’
  3. Vink aan ‘Compress cached pages.’

Note: als je gebruik maakt van deze Drupal compression, schakel deze niet in op webserver nivo (Apache mod_gzip).

Ingelogd of uitgelogd?

Dit is voldoende wanneer je een Drupal website hebt met voornamelijk niet-ingelogde (anonieme) bezoekers. Caching wordt een heel ander verhaal (en een specialiteit op) zich wanneer je te maken krijgt met een Drupal website waar mensen veel inloggen. Zoals bij een Drupal social intranet, webwinkel of online community. Meer weten over caching in Drupal 8. Zie ook A Beginner's Guide to Caching Data in Drupal 7

Compression bij headless Drupal met Node.js frontend

Zoals aangegeven, wij gebruiken Drupal headless (decoupled). Waardoor de standaard compressie van Drupal niet werkt. Dus zochten we een manier van gzip compression voor Node.js. Die vonden we hier.

Installatie

  1. Installeer deze populaire NPM module met het volgende commando in je terminal: npm install compression
  2. Voeg volgende code toe in je ‘main app file’:

That’s all :-). Even added, comitten, pushen en vervolgens pullen naar de live server et voila:

Nog steeds niet 100% optimaal, but we are getting there!

Je kunt op gziptest.com ook nog een extra test doen:

Wrap up

Alrighty, that’s all folks. Vragen of feedback, let me know!

Comments

Nóg meer
kennis nodig?

Check ons ons blog archief >