Naar aanleiding van een ouder artikel omtrent de behaalde laadtijd als ook pagespeed score van het LightBolt CMS, ontvingen we de vraag wat LightBolt beter maakt dan een CMS als OctoberCMS, met Laravel als basis. Diezelfde vergelijking gaat in de basis ook op met bijvoorbeeld Wordpress, Magento of Drupal.
Nu hangt het antwoord in praktijk af van hoe je 'beter' kwalificeert, waardoor er geen eenduidig antwoord is. Het antwoord zal tevens afhangen van het aspect dat je wilt 'meten'. Frontend (snelheid/performance, SEO, toegankelijkheid), backend (programmatuur en dus programmeurs-perspectief), admin (gebruiksvriendelijkheid) of functies (meertalig, modules) zijn zaken die in een vergelijking met OctoberCMS afgewogen kunnen worden.
OctoberCMS was ik onbekend mee, en dus heb ik voor deze ontvangen vraag omtrent OctoberCMS, het op Laravel geschreven CMS gedownload om te testen. Laravel zelf ben ik qua opzet bekend mee, en hun gedachtegoed bevalt me bovendien. Sterker, de code onder het LightBolt CMS heeft enkele overeenkomsten met Laravel.
OctoberCMS versus maatwerk
Na voor deze gelegenheid het OctoberCMS gedownload te hebben (build 419 met de blog-theme), ben ik gaan rond neuzen en heb ik metingen verricht. Voor een treffende vergelijking zijn de tests voor beide gedaan op een localhost omgeving, exclusief memcache, varnish of redis gedaan.
De punten die me op zijn gevallen, zijn als volgt.
OctoberCMS onder de motorkap
OctoberCMS schiet voor een layout-loze output naar 7.76MB aan geheugen, in 0.2 seconden. Inclusief layout worden de scores voor een static page 9.36MB in (snelste score) 0.40 met uitschieters naar 0.78. Deze score wordt bereikt zonder database-gebruik, wat bijzonder is. Niet in positieve zin, want een dusdanige memory load en laadtijd zonder gebruik van queries, zijn op zichzelf al aanzienlijk.
Overigens zal Google responsetijden boven 0.2 seconden in zijn PageSpeed Insights aankaarten, doordat dit naar hen idee te traag is. Hier valt het OctoberCMS dan ook reeds door de mand.
Een blog pagina binnen OctoberCMS is 10% langzamer en vergt iets meer geheugen (9.96MB), blijkt uit herhaaldelijke tests. Deze cijfers verbazen me niet gezien de type placeholders/template vars: hier zijn complexe reguliere expressies voor nodig om ze om te zetten naar content, en is relatief gezien tijdrovend.
Op dit vlak is ons CMS dus minimaal 16 keer lichter en 27 keer sneller dan het OctoberCMS. Recent hebben we het server side caching mechanisme met een factor 10 weten te optimaliseren, tot responsetijden van 0,0015. Dit zorgde tevens voor minder benodigd geheugen (nog geen 120kb), waardoor LightBolt maar liefst 85 keer lichter en 266 keer sneller is dan OctoberCMS.
CMS Beheer omgeving
De schermen voor instellingen, blog, pagina's, media zijn niet heel consistent. Uberhaupt lijkt het OctoberCMS admin ook meer geschikt voor ontwikkelaars, dan voor een gemiddelde gebruiker. Ongetwijfeld zijn er thema's of plugins te downloaden om dit aspect te verbeteren (waar dit aspect naar mijn idee een basis onderdeel moeten zijn wanneer het voor klanten wordt ingezet).
OctoberCMS functies
Basis onderdeel van een website is op zijn minst een navigatie. Hiervoor lijk je binnen OctoberCMS een plugin te moeten downloaden. Ook meertalig onderdeel is niet in de basis versie van OctoberCMS aanwezig. In het LightBolt CMS is dit in de basis inbegrepen.
Qua backend is in het LightBolt CMS sprake van een WYSIWYG-editor, bitwise rollenverdeling, zodat je contentschrijvers of SEO-consultants eigen mogelijkheden mee kan geven om ongewenste wijzigingen uit te sluiten. Ook de optie voor het separaat invullen van een broodkruimelnavigatie is aanwezig (vanuit SEO perspectief is het praktisch om deze waarde los te koppelen van de navigatienaam, titel of h1). Deze zaken komen we niet tegen in OctoberCMS, maar daarvan weet ik dat het te downloaden valt.
Frontend en PageSpeed
Te veel aspecten zijn niet aanwezig, waardoor je in de basis geen kwalitatieve website hebt. Bestanden lijken wel gecombined te worden. Er is uiteraard geen bestandsgrootte-limiet, maar OctoberCMS pompt (zelfs gezipped) voor zo een simpele versie meerdere resources in één tot een resultaat van 160kb per file. Dat is op HTTP/1 basis onwenselijk voor dit soort primaire bestanden (render blocking), en klinkt alsof hier uberhaupt in gesneden zou moeten worden.
Ik mis verder onder andere geminimaliseerde bronnen, resource hints, Critical Path CSS, AMP, open graph, microdata (bijvoorbeeld op breadcrumbs of blogs) of oog voor toegankelijkheid. Deze aspecten zouden resulteren in een gebruiksvriendelijke maar vooral SEO sterke website. Ook hier zijn binnen het OctoberCMS community ongetwijfeld plugins voor te downloaden. Wordpress lijkt dit dan ook beter te doen dan OctoberCMS, maar gevolg is gewoonweg dat het het geheugen en response tijd omhoog drukt tot absurde aantallen.
DOM laadtijd
Onze DOM laadt lokaal in 127ms en 178ms totaal. OctoberCMS krijg ik middels refreshen respectievelijk niet onder de 1.11 en 1.14 seconden. DOM is hier de meest betrouwbare vergelijkingsmethode (aangezien een website voorzien kan zijn van website bloat, met nodige impact op absolute ).
Dat betekent dus dat het LightBolt CMS webpagina's aan de voorkant 8 maal sneller voorschotelt dan OctoberCMS, daar waar LightBolt de HTML bovendien voorziet van aanvullende SEO aspecten (microdata, open graph). Voor SEO-guru's zal dit een belangrijk aspect zijn.
OctoberCMS conclusie
Blijft de hamvraag: maakt dit het closed source LightBolt CMS beter dan OctoberCMS? We zijn niet gezegend met een community welke modules schrijft, maar kunnen wel een beroep doen op modules die we in de afgelopen decennium hebben voortgebracht en hebben hiermee bovendien controle over kwaliteit (Wordpress plugins worden bijvoorbeeld niet pro-actief gecontroleerd). Maar financieel (ivm hostingkosten) als ook qua SEO (en aanverwante pagespeed) concludeer ik dat de voortgebrachte website beter is.
Het enige dat als beter beschouwd kan worden binnen OctoberCMS, is dat het open source is. Dat is echter een discussiepunt op zich en valt buiten de scope van dit artikel.
Neemt niet weg dat ik open sta voor tegen geluiden, juist om tot eventuele nieuwe inzichten te komen omtrent OctoberCMS, of andere CMS'en of juist te weten te komen waar binnen het LightBolt CMS rekening mee moet worden gehouden. Gewapend met andere inzichten? Ik hoor ze graag.