http://codex.wordpress.org/WordPress_Optimization/WordPress_Performance
Snelheid testen:
Het is het makkelijkste om eerst de snelheid te testen en dan de gevraagde maatregelen te nemen.
Zorg dat je een goede cache plugin hebt, en dat die aanstaat; en dat je na elke maatregel de cache leegt.
Klik links op de naam en je komt op de uitvoerige pagina over elk onderwerp
Beperk aantal formaten van een afbeelding | Met een goede plugin, zoals Image regenerate and select crop. Vooral fijn, omdat je kan instellen dat het originele bestand vervangen moet worden door het formaat van het Large exemplaar dat standaard door WordPress gemaakt wordt. Om achteraf bestanden (met niet meer gebruikte bestandsgrootte) te verwijderen: https://mulderitmaatwerk.nl/wordpress/regenerate-thumbnails-advanced/ |
*CDN | Grotere laadsnelheid door gebruik van meerdere servers. |
*dashicons niet meer laden aan de voorkant (snelheidswinst) | dashicons niet meer laden aan de voorkant (stukje code) |
Defer javascript | Er zijn meerdere versies: add_filter( ‘clean_url’, ‘defer_parsing_of_js’, 11, 1 ); // add async and defer to javascripts function wcs_defer_javascripts ( $url ) { if ( FALSE === strpos( $url, ‘.js’ ) ) return $url; if ( strpos( $url, ‘jquery.js’ ) ) return $url; return "$url’ async=’async"; } add_filter( ‘clean_url’, ‘wcs_defer_javascripts’, 11, 1 ); Gevonden op: http://wpcodesnippet.com/add-async-and-defer-attributes-javascript-elements/ Na lang zoeken en uitproberen. function defer_parsing_of_js ( $url ) { if ( FALSE === strpos( $url, ‘.js’ ) ) return $url; if ( strpos( $url, ‘jquery.js’ ) ) return $url; return “$url’ defer=’defer”; } add_filter( ‘clean_url’, ‘defer_parsing_of_js’, 11, 1 ); |
*enable keepalive | Voeg toe aan htaccess, precies onder #end wordpress: <IfModule mod_headers.c> Header set Connection keep-alive </IfModule> Gevonden op: http://www.giftofspeed.com/enable-keep-alive/ |
Fast Velocity Minify | https://nl.wordpress.org/plugins/fast-velocity-minify/ Niet teveel vinkjes zetten, anders gaat het weer ten koste van de page speed.. |
Geen avatars | Instellingen – reacties – avatars niet tonen: als je dit niet aanvinkt, gaat de website eerst op zoek naar de avator.com oid. |
*Heartbeat (code of plugin) | https://www.webnots.com/what-is-wordpress-heartbeat-api-and-why-you-should-control-it/ https://wordpress.org/plugins/heartbeat-control/ Je kan de heartbeat helemaal stoppen, als je de enige bent die aan de website werkt, met deze code: add_action( ‘init’, ‘stop_heartbeat’, 1 ); function stop_heartbeat() { wp_deregister_script(‘heartbeat’); } Let op: dit zijn de consequenties: Auto save and revisions will not work. This means you need to press the “Save Draft” button manually to save your content. In case if the connectivity is lost and you unknowingly pressed “Publish / Update / Save Draft” button then the content you made online will be lost. You may not be able to see real-time statistics and information if any of your installed plugin uses heartbeat API to update the content from server. |
Jetpack | Stel in bij Instellingen Reacties: geen avatars evt. uitzetten: volg blog evt. uitzetten: volg reacties Publiceren: kopieer de inhoud van jetpack.css, kopieer naar je eigen stijlbestand en zet vinkje onderaan naast: schakel css en js uit. Echter: dit toch maar niet gedaan; ik kreeg het facebook en twitter icoontje hiermee niet goed geladen. |
js over emoji’s: te verwijderen in functions.php | Remove Wordpress emoji code in your header without plugin (denisbouquet.com) Dit stukje code verhelpt het verschijnen van het javascript, dat je niet nodig hebt als je de emojis niet gebruikt |
Leverage Browser Caching Ninja | Na installatie kreeg ik deze mail; handig om hier te bewaren. Het hangt van de server af of dit goed werkt. Geen probleem bij hosting2go. Leverage Browser Caching Ninja Plugin has been successfully installed on http://www.duurzaamheidscafenijmegen.nl/dz14 installed successfully. In case you find any problem after installing this plugin, replace LBCachingNinja_uninstall_backup1455014871.htaccess with .htaccess Leverage Browser Caching is a very natural and very simple fix that does not cause problems with your website. All browsers use it and almost every server uses it. The reason that it will sometimes fail is based on your server’s restrictions. The reason you probably installed this software in the ... |
*Nextgen gallery | plaatjes en foto’s in galerijen, mooi in combinatie met foobox |
Notification bar | This plugin will show notification at top of the header. |
Ongebruikte afbeeldingen verwijderen | Bij Media kan je eenvoudig de niet gebruikte afbeeldingen verwijderen |
Overbodige scripts uitschakelen | NB: Inmiddels zijn hier plugins voor, zoals autoptimize en Optimizer. Ook sommige thema’s bieden oplossingen. Dat is veel praktischer dan al het oude handwerk hieronder. Zet deze regels in de functions.php van het child theme. Door if ! toe te voegen als voorwaarde, schakel je het script uit voor de overige pagina’s. N.a.v. tips op: http://www.wpbeginner.com/wp-tutorials/how-wordpress-plugins-affect-your-sites-load-time/ http://justintadlock.com/archives/2009/08/06/how-to-disable-scripts-and-styles jcarousel scripts gevonden in: plugins/jj-nextgen-jquery-carousel/includes/functions.php In geval je een script op alle pagina’s wil uitsluiten, behalve op een aantal pagina’s: if ( !is_page( array( 'page-slug', 'page-slug' ) ) ) { Stijlen: Zoek voor de juiste naam van het uit te schakelen stijlbestand naar: wp_enqueue_style. Het gaat om de naam die direct ... |
Redis Object Cache | Meer snelheid door slim cache mechanisme, dat veelgevraagde data opslaat |
*Remove Gutenberg css (als je Gutenberg niet gebruikt) | Remove the Gutenberg Block Library CSS from WordPress – SmartWP |
Remove Query Strings from Static Resources | Verhoogt snelheid; gewoon installeren, werkt vanzelf. |
*Smart Image Loader | Te vaak worden afbeeldingen gewoon niet getoond. |
Sprites | Bij een site met veel plaatjes kan je die plaatjes beter in één bestand zetten. Dat deed ik bij aardeboerconsument.nl, waar de voorpagina veel plaatjes bevat. Deze staan nu allemaal in een bestand: http://aardeboerconsument.nl/wp/wp-content/uploads/images/abcplaatjesSprite.jpg In de widgets staan divs; in de css roep je ieder plaatje apart aan met een background-image <div id="achtmythen"></div><div id="achtmythen"></div>#header{background-image:url(https://aardeboerconsument.nl/wp/wp-content/uploads/images/abcplaatjesSprite.jpg);background-position:-10px -10px} #jaarplaatje{background-image:url(https://aardeboerconsument.nl/wp/wp-content/uploads/images/abcplaatjesSprite.jpg);background-position:-450px -140px;display:block;width:180px;height:176px} #cartoon{background-image:url(https://aardeboerconsument.nl/wp/wp-content/uploads/images/abcplaatjesSprite.jpg);background-position:-9px -137px;display:block;width:205px;height:149px} /*#goodfoodmarch{background-image:url(https://aardeboerconsument.nl/wp/wp-content/uploads/images/abcplaatjesSprite.jpg);background-position:-10px -299px;display:block;width:205px;height:35px}*/ #conferentie{background-image:url(https://aardeboerconsument.nl/wp/wp-content/uploads/images/abcplaatjesSprite.jpg); background-position:-237px -355px;display:block;width:205px;height:83px;padding:0} #achtmythen{background-image:url(https://aardeboerconsument.nl/wp/wp-content/uploads/images/abcplaatjesSprite.jpg);background-position:-9px -410px;display:block;width:205px;height:252px;} #asn{background-image:url(https://aardeboerconsument.nl/wp/wp-content/uploads/images/abcplaatjesSprite.jpg);background-position:45px -370px;display:block;width:205px;height:21px} .menucenter{padding-left:70px!important;font-weight:700} #abcmanifest{background-image:url(https://aardeboerconsument.nl/wp/wp-content/uploads/images/abcplaatjesSprite.jpg);background-position:-237px -150px;display:block;width:205px;height:205px;padding:0} /*diashow */ NB: Met het eerste getal bepaal je de afstand tot de linkerkant; met het 2e getal de afstand tot de bovenkant. Begin bij 0 (linksboven) en gebruik daarna negatieve getallen voor aanduiding naar rechts en naar beneden. Je kan ook een hyperlink ... |
Stijlbestanden: comprimeren en samenvoegen | Bijv.: comprimeer het stijlbestand van het moederthema en plak het bovenaan in het stijlbestand van het child theme. Dan hoef je het niet meer te importeren. Denk hierbij ook aan bestanden van: events-manager (stel in bij Instellingen – performance optimization) dat stijlbestand niet hoeft te worden geladen. http://www.csscompressor.com/ |
Suffusion: snelheid | Minify uitzetten als je gebruik maakt van een cache plugin child theme: gebruik import, voor het importeren van het moeder stijlbestand. Kopieer evt de code van het rounded corners bestand en plaats het bovenaan. Dan hoef je die niet meer te importeren. /*@import url(“../suffusion/style.css”); @import url(“../suffusion/rounded-corners.css”); */ Kies bij Modules welke je echt gebruikt. De andere worden dan ook niet getoond als widget |
Use jQuery CDN | Loads the open source scripts jQuery and jQuery-migrate from jQuery’s CDN delivered by MAXCDN. |
Website sneller laden: htaccess bestand aanpassen: gzip | Uit: http://contao.org/en/news/optimizing-contao-for-google-page-speed.html # Afschermen wpconfig.php <files wp-config.php> Order deny,allow deny from all </files> ## EXPIRES CACHING ## ExpiresActive On ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/gif "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType image/ico "access plus 1 year" ExpiresByType text/css "access plus 1 month" ExpiresByType application/pdf "access plus 1 month" ExpiresByType text/x-javascript "access plus 1 month" ExpiresByType text/javascript "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 month" ExpiresByType text/php "access plus 1 month" ExpiresByType text/js "access plus 1 month" ExpiresByType text/html "access plus 1 month" ExpiresByType image/x-icon "access plus 1 year" ExpiresDefault "access plus 1 week" ## EXPIRES CACHING ## # compress text, html, javascript, css, xml: AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE ... |
wp-config aanpassen | Stel aantal te bewaren post revisies in: (stel je niets in, dan blijft dat als ballast de laadtijd van je site verzwaren) define( 'WP_POST_REVISIONS', 3 ); |