In de JUG-Meeting van oktober 2016 gaf René Kreijveld toelichting hoe je jouw Joomla-site kunt optimaliseren qua performantie. Hij besprak ook zijn checklist om niets te vergeten bij een go-live van een Joomla!-site.

 

René Kreijveld heeft voor JUG-Vlaanderen zijn presentatie ter beschikking gesteld:

Onderstaand artikel kan je ook lezen/downloaden als PDF.

Voorstelling René Kreijveld

image1René studeerde informatica en sinds 2004 bouwt hij websites en webapplicaties met Joomla! Hij heeft tot nu ongeveer 200 op Joomla gebaseerde websites gebouwd en een 50-tal Joomla-extensies (componenten, modules, plugins).

Templates maakt hij vanaf scratch. Bij een nieuwe website gebruikt hij enkele zelfgemaakt start-templates (gebaseerd op Bootstrap 2 of Bootstrap 3) met enkel essentiële onderdelen.
Deze templates worden door hem ontwikkeld via het Helix3 framwork - https://www.joomshaper.com/helix
Standaard worden er door hem steeds de volgende extensies toegevoegd:

  • JCE editor
  • RSForm
  • Akeeba Backup
  • Regular-labs extensies
  • ACL manager

Go-Live Checklist

Als René een site live gaat zetten, dan gebruikt hij een checklist om zeker te zijn dat hij niets vergeten te veranderen/ intellen heeft. Peter Martin heeft een extensie gemaakt met een checklist, maar die van René staat los van het CMS en beslaat meer zaken.
Deze checklist kan je terugvinden op: github.com/renekreijveld/livechecklist .

Bijkomende verduidelijkingen bij enkele punen uit die lijst vind je in deze PDF (bijkomende notities zijn gemaakt door Manu Ampe).

Joomla extensies

Niet gebruikte extensies depubliceren of verwijderen?

Wanneer u met Joomla start merkt u al snel hoe veelzijdig het systeem is. Eenvoudig kunnen extensies worden gedownload en geïnstalleerd en hierdoor wordt het erg makkelijk om veel extensies te testen. Wat veel gebruikers niet weten is dat een site een stuk trager wordt wanneer er veel extensies zijn geïnstalleerd.
De-installeer daarom altijd niet gebruikte COMPONENTEN, MODULES en PLUGINS.

EXTENSIES DEINSTALLEREN

Om een extensie te deinstalleren gaat u naar: Extensies → (Extensie)Beheren. Klik aan de linker kant op Beheren. U krijgt dan een lijst met alle geïnstalleerde extensies in de website.
Gebruik de filter (aan de linkerkant) om de extensie te zoeken of filter op het ID veld aan de rechter kant. Klik dan 2 keer om er voor te zorgen dat de lijst met ID's aflopend is. De nieuwste geïnstalleerde extensies staan dan bovenaan. Vaak bestaat een extensies uit meerdere losse extensies. Denk hierbij aan het component → Hikashop. Vaak zijn deze extensies ingepakt in een "pakket". Zoek dus bij voorkeur eerst naar dit pakket, bijvoorbeeld → HIKASHOP.

image2
 
Het de-installeren van dit pakket zorgt er dan voor dat alle onderdelen binnen dit pakket tegelijkertijd worden verwijderd.
Indien het alleen een simpele module is, kan u deze alleen aanvinken en dan verwijderen.

Let op: Lees goed welke extensie u gaat verwijderen. Soms lijken benamingen erg op elkaar. Het verwijderen van een verkeerde extensie zorgt dat de betreffende extensie niet meer functioneert. Een goede indicatie kunnen ook de ID's zijn als een "pakket" is gebruikt om meerdere extensies tegelijk te installeren. Ze staan dan bij elkaar.


JOOMLA! EN ALLE EXTENSIES UP-TO-DATE?

Voor u begint met een (grote) update en welke methode u ook volgt, het is altijd raadzaam om eerst een goede backup van de site en database te maken. Mocht er iets mis gaan tijdens de update, dan kan u altijd terug naar de backup die u had gemaakt. Bij grotere updates is het verstandig om dit eerst op een testomgeving te doen en controleer ook of de update succesvol is verlopen.

NIET GEBRUIKTE TEMPLATES VERWIJDERD?

Het de-installeren van een template kan enkel via Extensiebeheer → Beheren. Filter links bij Type → Template.
Let op: u kan een actieve template NIET de-installeren

ACL MANAGER INGERICHT?

image3ACL manager is een extensie waarmee u eenvoudig de rechten van Joomla websites kan instellen, de extensie geeft een helder overzicht van alle Joomla ACL instellingen en u kan ook simpele problemen ontdekken en repareren.

JOOMLA! CONFIGURATIE

RECAPTCHA PRIVATE/PUBLIC KEYS?

Het gebruiken van reCAPTCHA is een geweldige manier om te voorkomen dat bots nep accounts en inhoud aanmaken op uw site.
Om reCAPTCHA te activeren bij formulieren:

Kies in het menu → Algemene Instellingen → het tabblad “Website”
image4

Om reCAPTCHA te activeren enkel voor registratie:

  • Kies in het menu → Gebruikers → Gebruikersbeheer → Opties
    image5
  • Gebruik standaard: Hiermee gebruikt u de Captcha instellingen uit de algemene instellingen
  • Niets geselecteerd: hiermee gebruikt u geen Captcha.
  • Captcha – ReCaptcha: enkel gebruiken wanneer bij de algemene instellingen niets werd geselecteerd.

FOUTRAPPORTAGE UITGESCHAKELD?

Foutrapportage in Joomla is een functie om Joomla fouten te rapporteren. Deze functie biedt een aantal aanwijzingen over wat en waar de PHP problemen zich voordoen.
Als deze op Ja wordt ingesteld worden diagnostische informatie, vertalingsfouten en SQL-fouten weergegeven. Mochten er fouten zijn, worden ze onderaan op de pagina weergegeven zowel aan de frontend en de backend. Nadat de site werd afgewerkt en u als ontwikkelaar alles zonder fouten hebt afgeleverd, zet de foutrapportage uit.

Algemene instellingen → Systeem en server
image6

ALGEMEEN E-MAILADRES WEBSITE CORRECT INGESTELD?

Algemene instellingen → Server

  • Kijk na of er hier geen test-emailadres werd toegevoegd en bekijk ook de afzendnaam.
  • Via Groepsmail kan u tussen leden van dezelfde groep (bijvoorbeeld alle “Super administrators”) mails versturen. Zet dit op JA – dus uitschakelen!
    • Selecteer JA om groepsmail UIT TE SCHAKELEN, selecteer NEE om te ACTIVEREN.
  • Gebruik de SMTP server voor de e-mailinstellingen

TIJDZONE EN LEVENSDUUR

  • Nakijken via Algemene instellingen → Server of u de tijdzone correct had ingesteld (bij ons Brussels)
    Is belangrijk bij de publicatie-gegevens van de artikelNadat de site is afgewerkt zet dan de sessie levensduur terug op 15 minuten, via Algemene instellingen → Systeem
    image7
  • Sessie-afhandeling: database

TEMPLATE VOORBEELD

Via templatebeheer → Opties zet u de voorbeeld module posities op → uitgeschakeld. Hiermee vermijdt u dat een gebruiker de posities kan bekijken via www.denaamvandewebsite.be/?tp=1
image8

GEBRUIKERS

ONNODIGE GEBRUIKERS VERWIJDEREN

Via gebruikers → gebruikersbeheer verwijdert u onnodige gebruikers en gebruikersgroepen.
Wanneer u op de site geen enkel inlogformulier hebt, dan kan u de gebruikersregistratie toestaan → uitzetten. Deze optie vindt u terug via Gebruikersbeheer → Opties

image9

Zo kan een joomla-kenner/hacker ook niet inloggen via de technische URL
http://www.denaamvandewebsite.be/index.php?option=com_users&view=login

WACHTWOORD COMPLEXITEIT INSTELLEN

Indien een gebruiker kan inloggen op de site, dan kan het veiliger zijn om het wachtwoord verplicht complexer te maken. Dit kan via Gebruikersbeheer → Opties → Password Options

image10

INHOUD - CONTENT

OUDE INHOUD OPKUISEN

Zoals iedereen al weet om een artikel te verwijderen klikt u op de knop → Prullenbak, het artikel wordt verwijderd uit de lijst maar is niet echt verwijderd en blijft in de prullenbak hangen. Via het keuzelijstje bij Zoekmiddelen kan u kiezen bij → Selecteer status → Verplaatst naar prullenbak.

image11

Als u deze status selecteert komt u bij de prullenbak.
Om de prullenbak te legen selecteert u nu het item die u uit de prullenbak wilt halen en druk bovenaan op de knop → Prullenbak legen. image12

Als u iets uit de prullenbak terug wilt halen selecteert u het item en druk op de knop → Publiceren of kies de prullenbak naast de titel om het item terug te publiceren

image13

De prullenbak wordt behalve bij het artikelbeheer ook gebruikt bij het modulebeheer, categoriebeheer, menubeheer en menu items, advertenties, contactpersonen, nieuwsfeeds en weblinks. Voor al deze onderdelen is er een ander prullenbak.
Kijk na of de prullenbak overal werd leeggemaakt.

ONNODIGE BESTANDEN VERWIJDEREN

Zoals de standaard joomla-afbeeldingen. Bij de installatie van Joomla worden er verschillende standaard joomla-afbeeldingen mee geïnstalleerd. Mogelijks heb u ook nog eigen afbeeldingen toegevoegd en worden ook deze niet allemaal gebruikt.
Dit zijn allemaal overbodige bestanden en kan u verwijderen.

image14

VOORBEELDDATA VERWIJDEREN

Hebt u een site geïnstalleerd met voorbeeld-data – zorg ook dat al deze inhoud wordt verwijderd.

DEVELOPMENT URL’S IN DE DATABASE VERVANGEN NAAR PRODUCTIE URL’S

Optie in JCE-component om relative URL’s te gebruiken en kan bij het overzetten van de test naar productie-site problemen geven.

image15

ROBOTS.TXT

Een robots.txt-bestand is een bestand in de hoofdmap van uw site waarin u aangeeft welke delen van uw site niet toegankelijk zijn voor crawlers en zoekmachines.

Crawler: ook wel spider genoemd, is een bot (robot – een computerprogramma) dat op een bepaalde manier taken kan uitvoeren die normaal door mensen worden uitgevoerd. In tegenstelling tot mensen kunnen bots hun taken continu en in een hoog tempo uitvoeren, zonder daarbij fouten te maken. De spider hier maakt veelal kopies van gevonden pagina’s om deze later te kunnen verwerken en indexeren voor zoekmachines.

Het eenvoudigste robots.txt-bestand gebruikt 2 belangrijke termen: User-agent en Disallow

  • User-agents: zijn de zoekmachinerobots of de crawlers (www.robotstxt.org/db.html). Meestal worden de user-agents allemaal toegevoegd via *
  • Disallow: niet toestaan – is een opdracht voor de user-agent die aangeeft dat een bepaalde URL niet mag worden doorzocht. Als u echter wel toegang tot een bepaalde URL wilt verlenen en deze URL een onderliggende map van een bovenliggende ‘Niet toegestane’ map is, gebruikt u een 3e term → Allow

image16

Opdrachten die u in uw robots.txt kunt gebruiken om URL’s t blokkeren

image17

Let op: de instructies zijn HOOFDLETTERGEVOELIG. Met de opdracht Disallow: /file.asp wordt bijvoorbeeld wel de URL http://www.website.com/file.asp, maar niet de URL http://www.website.com/File.asp geblokkeerd.
Witruimte en onbekende instructies worden wel genegeerd.


FAVICON EN MOBIELE ICONEN

Een favicon is een icoon dat getoond wordt bij het openen van een webpagina. Het icoontje is te zien in het tabblad en/of in de adresbalk. Joomla heeft een standaardicoon, maar we kunnen dit wijzigen
Deze afbeelding (favicon.ico) kan u terugvinden in de map van de template. Vervang daar het icoon door het icoontje dat u zelf gaat maken.
Er zijn meerdere mogelijkheden om een favicon te genereren. Bekijk zo http://realfavicongenerator.net : op deze site kan u ook testen of de favicon geschikt is voor mobile apparaten.
Wanneer u op realfavicongenerator.net uw site test of de favicon correct wordt weergegeven, dan krijgt u tevens ook info hoe de favicon wordt weergegeven op een tablet of smartphone.

404 PAGINA INGESTELD

Een 404-pagina ziet er standaard niet zo aantrekkelijk uit. Bij sommige templates kan u een 404-pagina laten genereren of u kan zelf een pagina toevoegen en gebruiken.

image19

AFBEELDINGEN OPTIMALISEREN

Een veel voorkomende fout is het niet vooraf verkleinen van de afbeeldingen. René gebruikt ImageOptim (voor Mac) om zijn afbeeldingen te optimaliseren. https://imageoptim.com/
Dikwijls bespaart u ruim 20% opslagruimte per afbeelding.

ZOEKPLUGINS UITZETTEN

Met de “Slim zoeken” plugins wordt het zoeken binnen de website verbeterd. Standaard staat de optie mogelijks geactiveerd. U kan slim zoeken op feeds, categorieën, personen, weblinks …. Van alle inhoud waarvan u geen gebruikt wilt van maken binnen het zoeken kan u de plugin uitschakelen.
Met de functies “slim zoeken” krijgt u een vriendelijke zoekmachine in uw eigen website. Maakt u geen gebruik van de opties, dan kan u beter de plugins de-activeren.

image20

Door het opzetten van Slim zoeken zal de database tot 4 maar groter worden dan zonder Slim zoeken!!

WEBFORMULIEREN EN NIEUWSBRIEVEN

Had u een webformulier toegevoegd dan moet u nakijken of de e-mailafhandeling correct staat ingesteld.

Werden de test-formulieren of documenten opgeschoond. Idem bij de nieuwsbrieven of test-nieuwsbrieven.

LAYOUT

WEBSITE GETEST IN ALLE HOOFDBROWSERS

Apple: Safari, Chrome, Firefox. Windows: IE, Edge, Chrome, Firefox.

Om de responsiviteit na te gaan is de Blisk-browser zeer handig, je kan hiermee testen op verschillende resoluties (De beta-versie is klaar voor Windows en Mac versies , Linux volgt). https://blisk.io/
Alex gebruikt http://mattkersley.com/responsive/ maar dit laat een httpSecured site niet toe om te testen.

MOBIELE TEMPLATE AANWEZIG EN GETEST?

Manu verwittigt dat er templates zijn die toelaten om verschillende afbeeldingen te kiezen voor desktop en mobile devices maar ze laden toch beide afbeeldingen, ze tonen enkel wel/niet de afbeelding al naargelang de schermgrootte.

Regular Labs Modular manager laat toe om een module niet te tonen bij Mobiele browsers.
https://www.regularlabs.com/extensions/advancedmodulemanager

BEVEILIGING

Wilt u de website extra beveiligen dan zijn hiervoor extensies beschikbaar. Meestal betalende extensies

  • Admin tools pro (dezelfde ontwikkelaar als Akeeba Backup)
  • AdminExile
  • jHackGuard
  • RSFirewall – werd door René standaard bij aanvang geïnstalleerd

HTACCESS - REDIRECTS OUDE URL’S NAAR JUISTE NIEUWE URL INGESTELD?

http://carolinebultinck.be en http://www.carolinebultinck.be zijn voor Google in feite twee verschillende websites. Daarom moeten we ervoor zorgen dat de versie zonder www. doorverwijst naar de versie met www.
Google weet dan dat mét www. het origineel is. U kunt deze instelling in .htaccess aanpassen. De volgende regel moet dan in .htaccess bestand worden geplaatst:

  • Zonder www doorverwijzen naar met www:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^uwdomein.be [NC]
    RewriteRule ^(.*)$ http://www.uwdomein.be/$1 [L,R=301]
  • Met www doorverwijzen naar zonder www:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.uwdomein.be [NC]
    RewriteRule ^(.*)$ http://uwdomein.be/$1 [L,R=301]

REDIRECT NON-SSL NAAR SSL INGESTELD IN .HTACCESS?

* Voordeel van dergelijke settings in htaccess te zetten omdat dan de apache server voor die afhandeling zorgt zodat Joomla er niet mee extra belast wordt.

IP-ADRESSEN

Voorkom blokkade van uw eigen IP-adressen.

Toegang blokkeren tot /administrator of IP whitelist gebruiken voor /administrator
Met Admintools kan u de toegang beperken door een extra URL-parameter noodzakelijk te maken.

Stel dat u nadien niet meer kunt inloggen, hoe kan u dan alsnog in backend?
Als beheerder van de site kan u allicht aan de bestanden, dus ….hernoem de directory of map van Admintools , (admintools te vinden in de map plugins) waardoor u diens functionaliteit onbereikbaar maakt / inactiveert. Daarna kan u opnieuw inloggen en de nodige settings verbeteren om dan nadien de hernoemde folder terug op zijn originele naam te zetten.

JCE EDITOR

image21Indien u met verschillende gebruikers werkt dan is het mogelijk om per gebruiker een verschillende JCE-profiel aan te maken.
Via Componenten → JCE-Editor
Hier kan u een nieuw profiel aanmaken of een bestaand profiel activeren en linken aan een bepaalde gebruikersgroep.
Gebruikt u JCE dan kan u onderaan standaard knoppen terugvinden
image22

Deze knoppen kan u deactiveren via plugins, type → editors-xtd

OSMAP

  • Sitemap voor menu’s aangemaakt?
  • Regel toegevoegd aan .htaccess zodat OSMAP kan gevonden worden als sitemap.xml?
  • XML sitemap aan Google webmaster Tools → Search console toegevoegd?

Google ontvangt heel graag een xml-sitemap met alle URL’s van de website. Dus u moet er altijd een maken. Vooral als u het bestand direct in de hoofdmap van de website zet, zal Google het vanzelf vinden en u kan het zonder meer aanbieden in de Google Webmaster Tools-account.

Zorg ook dat de XML-sitemap alle URL’s van de website bevat voor zover u ze geindexeerd wilt hebben!

Maar OSMap-extensie genereert een XML-sitemap, echter wordt die niet bewaard in de hoofdmap van de website en dat kan Google niet zo maar terugvinden.

Dus u moet Google daarover informeren. Bij sommige betalende sitemap-extensies kan u Google binnen die extensie informeren over die locatie. Gebruikt u geen Google Webmaster Tools, dan kan u dit vermelden in de robots.txt-bestand.

Vind de XML-Sitemap via componenten → OSMap → XML-sitemap.
image23

Wanneer u op de link klikt, dan vindt u ook de locatie van onze sitemap, aantal URL’s, wanneer de wijzigingen werden aangebracht!

image24

GOOGLE INFORMEREN VIA ROBOTS.TXT

Open het bestand robots.txt en voeg de regel toe met de link naar de sitemap. Kopieer hiervoor de link
image25

HTTPS

  • certificaat overgezet?
  • HTTPS aangezet (indien van toepassing?)

OPTIMALISATIE / SEO

  • Zoekmachine-vriendelijke URL's geïnstalleerd en geconfigureerd?
  • Leegmaken cache/tmp mappen?
  • Cookie / Cookie alert – In Nederland moet u het juridisch melden en enkel pas bij akkoord zou de site de tracking-code mogen laden, maar bijna niemand doet het!
  • Varnisch ingesteld – hangt af van de provider
  • Social media geïnstalleerd en geconfigureerd?

CACHING INGESTELD?

Bij Conservatieve cache: de beheerder kan per module de cache instellen. Niet cachen wanneer er heel veel moet gewijzigd worden.

Progressieve cache kan u gebruiken bij sites die niet veel worden gewijzigd.
image28

GZIP PAGINACOMPRESSIE

Door GZIP compressie te activeren wordt de output van de website kleiner gemaakt. Hierdoor worden kleinere bestanden naar de browser gestuurd, waardoor de website sneller in beeld komt. Tegelijkertijd neemt de load van de server iets toe. De output van de website wordt namelijk eerst kleiner gemaakt , voordat het naar de browser verzonden wordt.

Via de site: https://checkgzipcompression.com/ kan u nakijken of de server GZip compression ondersteund.
image27

GZIP in Joomla mogelijk maken gaat via de globale instellingen:
image28

Mogelijks moet u de instellingen via Cpanel (Siteground) nog activeren → Optimize website
image29

DIVERSEN

 


Verslag opgemaakt door Caroline Bultinck