layout: true class: animated, fadeIn --- class: start
Een AA score voor je website
JUG Rotterdam, 13 augustus
René Kreijveld
4:3 versie
16:9 versie
.hide[
4x3 versie
] --- # René Kreijveld - 1966 Geboren! - 1990 Afgestudeed Hogere Informatica Opleiding - 1989-2007 Gewerkt als (senior) systeembeheerder - 1999 Kennismaking met HTML/CSS - 2003 Kennismaking met Mambo - 2003 Mamboportal.nl opgericht - 2006-2009 OneCompany - 2009-2010 WebCreatives - 2010 ReneKreijveld.nl - 2011 DSD Business Internet - Webdeveloper --- # René Kreijveld - 200+ Joomla websites gerealiseerd - ± 50 Joomla extensies (componenten, modules, plugins) - Spreker op Joomladagen / JandBeyond / JUGS - Joomla 3 Certified Administrator
https://www.dsd.nl
https://www.renekreijveld.nl
rene@dsd.nl
https://twitter.com/renekreijveld
https://www.facebook.com/rene.kreijveld
https://nl.linkedin.com/in/renekreijveld
https://github.com/renekreijveld --- # DSD Business Internet ### Zakelijke internet service provider - Opgericht 1998 - Team van 14 medewerkers - Persoonlijke dienstverlening - Meer dan 500 klanten - Juli 2018 ISO 27001 gecertificeerd (Informatiebeveiliging) --- # DSD Business Internet
--- # DSD Business Internet
--- # DSD Webdevelopment ### Kengetallen
Applicatie klanten
10
Maatwerk projecten
25+
Publicanda klanten
50
Publicanda websites
70
Merken
150+
--- # DSD Webdevelopment
--- # Onderhanden projecten - Mobiele Wie-is-Wie directory op basis van Boostrap 4 - Migratie website medisch opleidingsinstituut - Huidig website Joomla 2.5, dateert van 2014 - Custom template - Veel ACL Groepen - Nieuwe site Joomla 3.8.x, Bootstrap 4, heel veel custom fields --- #Waarom is een snelle website belangrijk? - Als je website niet snel is, zijn bezoekers snel verdwenen. -- - Een snelle website scoort hoger bij zoekmachines. -- #Hoe wordt je website snel? - Gebruik kwalitatief goed hosting (up-to-date PHP, caching, snelle disks etc.). -- - Joomla en extensies up-to-date. -- - Optimaliseer je content en je template. --- #Meten is weten - Er zijn veel tools beschikbaar om de performance van je website te meten: -
Pingdom Website Speed Test
-
Yellow Lab Tools
-
PageSpeed Insights
-
WebPageTest
-
GTMetrix
-- - Ik werk zelf graag met GTMetrix: duidelijke analyses en 2 soorten metingen. - Goede inzichtelijke Waterfall, Timings en meethistorie per website. --- #GTMetrix - GTMetrix bepaalt PageSpeed score en YSlow score van F t/m A, A is beste. -- - Website performance = Front-end Performance + Back-end performance. -- - Focus ligt op front-end performance, inclusief elementen die jij kunt aanpassen. -- - Back-end performace is veel moeilijker te analyseren. -- - Back-end verbeteringen: code-optimalisaties, hosting aanpassingen. -- - Streven naar A / A score is goed, maar kijk wel of het de tijd- en geldinvestering waard is. -- - Een grote website zonder A / A score maar die wel laadt binnen 1 sconde is goed! -- - Tip: maak een (gratis) GTMetrix account aan. --- #Optimalisatie project -
Helix Ultimate Quickstart website
: - Joomla 3.8.11 (optimalisatie gedaan in 3.8.5) - Helix Ultimate template - SP Page Builder Lite - Website gehost bij
Hetzner
- 4 GB Memory, 2 CPU, 40 GB ssd disk, 20 TB transfer (€ 4,90 per maand!) - VPS gemanaged via
RunCloud
(pro) - IPv4 en IPv6 adres - PHP 7.1.19. --- #Algemeen bij optimalisatie project: #Backup-Backup-Backup --- #Installatie Helix Ultimate Quickstart - Database aangemaakt. - Quickstart bestanden geupload. - Installatie gestart door naar de website te gaan. --- class: center video
Video installatie Helix Ultimate Quickstart
--- #Standaard aanpassingen na installatie - Post-installatie berichten lezen - NL Taalbestanden installeren - Configuratie: Gebruik URL herschrijven: Yes - Foutrapportage: geen - Tijdzone server: Amsterdam - htaccess.txt op de server hernoemen naar .htaccess Live site:
aascore.joomlaprofessionals.nl
--- #GTMetrix nulmeting uitvoeren - Doe voordat je enige aanpassing doet, altijd **eerst** een nulmeting. - Maak een account aan bij GTMetrix (gratis). - Je kunt dan veel standaard instellingen vastleggen voor elke meting: - Time Zone - Default Test Server Region (London, UK) - GTMetrix houdt een historie bij van de metingen - Geef de URL in van de te analyseren website. --- class: center video
Video nulmeting GTMetrix.com
--- #Resultaat
Nul-
meting
PageSpeed
C(73%)
YSlow
D(68%)
Load time
0.7s
Total Page Size
752KB
Requests
40
--- #Quick wins - GZip Compressie - Caching --- #GZip compressie - Alle code en bestanden moeten naar de browser worden gedownload. -- - Met GZip compressie wordt html en bestanden gecomprimeerd op de server en gedecomprimeerd in de browser. -- - Resultaat: minder data hoeft verzonden te worden. - Joomla heeft daar een standaard optie voor:
--- #GZip compressie - Test vooraf of je die optie moet aanzetten! -- - Dit kan eenvoudig via
https://checkgzipcompression.com
--
--- #Caching - Eenvouding aan te zetten in de configuratie
--- #Platform specifieke caching
- Gebruik als de HTML uitvoer voor desktop anders is dan tablet of smartphone. -- - Bijvoorbeeld als je voor tablet/smartphone een aparte template gebruikt. --- #Systeemcache
- Keuze tussen conservatief en progressief -- - **Conservatief**: kleine systeemcache. Per module instelbaar of deze gecached worden. Aan te bevelen bij sites met veel updates. -- - **Progressief**: grote cache. Momentopname van alle modules tegelijk per pagina. Modules niet meer individueel instelbaar. -- - Leesvoer:
OSTraining: Joomla Cache Options
--- #Serverside caching bij de webhoster - Vaak bieden hosting providers op hun servers ook cacheopties
-- - Kijk uit met dubbel cachen! -- - De webserver voor aascore.joomlaprofessionals.nl heeft ook caching,
dus geen aanpassingen in Joomla. --- #Terug naar de testresultaten
--- #Terug naar de testresultaten
--- #Requests zichtbaar Waterfall tab
--- #Waterfall
--- #Waterfall ook opvraagbaar via browser - Safari
Alt-Cmd-A - Firefox
Alt-Cmd-E
Ctrl-Shift-E - Chrome
Alt-Cmd-I, netwerk tab
Ctrl-Shift-I, netwerk tab -- - Buffer/cache uitschakelen, daarna verversen (F5). -- - CSS bestanden, Javascripts, fonts, afbeeldingen, media, flash etc. -- - Requests zijn te verminderen door samenvoeging en compressie. --- #CSS en Javascript compressie in Helix - Helix Ultimate heeft CSS en Javascript samenvoeg en compressie mogelijkheden. - Aan te zetten via Advanced opties. --- class: center video
Activeren CSS/Javascript samenvoeg en compressie
--- #Resultaat
Nul-
meting
Merge
compress
PageSpeed
C(73%)
C(76%)
YSlow
D(68%)
C(75%)
Load time
0.7s
1.2s
Total Page Size
752KB
737KB
Requests
40
23
--- #PageSpeed
--- #YSlow
--- #PageSpeed: Leverage Browser Caching - De server vraagt de browser om bepaalde bestanden te bewaren zodat die later niet opnieuw van de server geladen moeten worden. #YSlow: Add Expires headers - Instelling in .htaccess die aangeeft hoe lang bepaalde type bestanden door de browser bewaard moeten worden. -- Dus met **add expires headers** activeer je **leverage browser caching**
-- Hoe? Door het toevoegen van code in .htaccess.
-- Of via **
JCH Optimize Pro
**. --- #Add Expires headers 1/2 - JCH Optimize Pro is een system plugin, speciaal voor frontend optimalisaties. - Bij installatie wordt automatisch leverage browser caching code geplaatst **in .htaccess**. - Voorbeelden: **ExpiresDefault "access plus 1 month"**
Standaard 1 maand bewaren **ExpiresByType application/rss+xml "access plus 1 hour"**
RSS feed 1 uur bewaren **ExpiresByType image/jpg "access plus 1 month"**
Jpeg afbeeldingen 1 maand bewaren --- #Add Expires headers 2/2 **ExpiresByType text/css "access plus 1 year"**
CSS bestanden 1 jaar bewaren **AddOutputFilterByType DEFLATE text/html**
Html code gzippen op de server **AddOutputFilterByType DEFLATE text/css**
CSS code gzippen op de server **AddOutputFilterByType DEFLATE application/font-woff2**
Woff2 fontbestanden gzippen op de server --- class: center video
Installatie JCH Optimize Pro
--- #.htaccess add expires headers
--- #Resultaat
Nul-
meting
Merge
compress
Leverage
PageSpeed
C(73%)
C(76%)
B(82%)
YSlow
D(68%)
C(75%)
B(88%)
Load time
0.7s
1.2s
1.3s
Total Page Size
752KB
737KB
738KB
Requests
40
23
23
--- #Wat staat nog open?
--- #Wat staat nog open?
--- #JCH Optimize Pro - Frontend optimalisatie system plugin. -- - Leverage browser caching (hebben al gezien). -- - Minimaliseert de HTML uitvoer. -- - Samenvoegen en comprimeren CSS en Javascripts. -- - Uitsluitingen mogelijk: per CSS, per Javascript, per menu-item. -- - Strategisch asynchroon laden van Javascript onderaan in de HTML. -- - Samenvoegen van achtergrondafbeeldingen in sprites. -- - Automatisch afbeelding dimensies toevoegen. -- - Lazy loading van afbeeldingen. -- - Geoptimaliseerde CSS levering (critical CSS). -- - Afbeeldingen optimaliseren. --- #JCH Optimize Pro
--- class: center video
Activeren/configureren JCH Optimize Pro
--- #Resultaat
Nul-
meting
Merge
compress
Leverage
JCH
Optimize
PageSpeed
C(73%)
C(76%)
B(82%)
B(85%)
YSlow
D(68%)
C(75%)
B(88%)
B(89%)
Load time
0.7s
1.2s
1.3s
1.0s
Total Page Size
752KB
737KB
738KB
719KB
Requests
40
23
23
21
--- #Nog twee "grote" problemen over - PageSpeed: serve scaled images
--- #Nog twee "grote" problemen over - YSlow: use cookie free domais
--- #Serve scaled images
- Thumbnails van SP Easy Image Gallery. -- - De originele thumbnails zijn 400x400 pixels. -- - Worden getoond als 85x85 pixels. --- #Thumbnail inspect
-- - Wens: thumbnail die **echt** 85x85 pixels groot is. -- - Voordeel: kleiner bestand, scherpere thumbnail dus optimalisatie. --- #Oplossing: hack de module! - Module gecloond naar mod_speasyimagegallery_dsd. - Parameters toegevoegd voor de breedte en hoogte van de thumbnail. - PHP mthumb library toegevoegd voor server side afbeeling generatie. - Integrate cookie free domains toegevoegd. --- #Use cookiefree domains? Serve static content from a different domain to avoid unnecessary cookie traffic. ##Details from Yahoo! When the browser requests a static image and sends cookies with the request, the server ignores the cookies. These cookies are unnecessary network traffic. -- - Dus een extra domein maken die naar dezelfde website wijst. -- - In Joomla instellen wat het cookie domein is. --- #Extra subdomein naar dezelfde website
-- - In Joomla configuratie hoofddomein als cookie domein instellen. -- - In JCH Optimize Pro Cookieless Domain instellen. --- class: center video
SP Easy Image Gallery module
cookiefree domain
--- #Resultaat
Nul-
meting
Merge
compress
Leverage
JCH
Optimize
Cookieless
PageSpeed
C(73%)
C(76%)
B(82%)
B(85%)
A(100%)
YSlow
D(68%)
C(75%)
B(88%)
B(89%)
A(92%)
Load time
0.7s
1.2s
1.3s
1.0s
0.9s
Total Page Size
752KB
737KB
738KB
719KB
547KB
Requests
40
23
23
21
21
--- #Alternatief voor de Easy Gallery module - Module geheel depubliceren --- #Samenvattend -- - Besef dat je net één pagina hebt geoptimaliseerd. -- - Een AA score is (relatief makkelijk) mogelijk ... -- met de juiste tools. -- - Je moet goed onderzoeken wat oorzaken van testuitslagen zijn. -- - Bestudeer uitgebreid de waterfall. -- - Overweeg "zware" of vertragende content weg te laten of alternatieven te zoeken. --- class: center, middle #Vragen? --- #Deze presentatie Gebouwd met
remark
Help: .blue[
] volgende .blue[
] vorige .blue[Home] naar eerste slide .blue[End] naar laatste slide .blue[b] / .blue[m] / .blue[f] wissel blank / spiegel / fullscreen .blue[p] presentatie mode © René Kreijveld, DSD Business Internet 2018