You are here: start » load_time_optimization

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

load_time_optimization [2018/10/26 15:33] (current)
Line 1: Line 1:
 +====== Load Time Optimization ======
 +
 +CMSimple_XH is quite fast, mainly due to its simplicity and because it doesn'​t do requests to a database server. However, the load time of a website mostly depends on several other factors than the server side processing time, so in the following we want to shine a light on them.
 +
 +===== Tools =====
 +
 +There are several tools available, free as well as commercial, that allow you to check the load time of your website. Some of these tools simply report the load time while others give hints for improvements.
 +
 +Simple tools to check the load time are already built-in in most modern browsers as part of the browser'​s developer tools. For instance, in Firefox press F12 to open the developer tools and go to the "​Network"​ tab. When you request your site, you will see all individual requests (the document, images, CSS and JS files etc.) and their timeline. Note that browser side caching usually makes a lot of difference, so you may want to clear your cache or disable caching and compare the results. Also note that the reported times partly depend on your network bandwidth and the server'​s current workload.
 +
 +Tools that will suggest improvements are, for instance, [[https://​developer.yahoo.com/​yslow/​|Yahoo!'​s YSlow]] and [[https://​developers.google.com/​speed/​pagespeed/​|Google'​s PageSpeed Tools]].
 +
 +===== Factors =====
 +
 +There are several factors that determine the load time of your website. An important one that you can't influence is the network bandwidth of your visitors. It makes a great difference if a website is accessed via a 56 kbit/s modem or a 52 Mbit/s VDSL. You will want to take that into account depending on your target audience.
 +
 +==== Number of Requests ====
 +
 +Normally it is not sufficient to make a single HTTP request to be able see a website in a browser. Resources such as images, CSS and JavaScript etc. have to be requested and delivered separately. However, each request has to be processed by the server, so the fewer requests are necessary, the faster the page will be loaded.
 +
 +There are several techniques to reduce the number of requests:
 +
 +  * avoid unnecessary requests
 +  * combine resources of the same type
 +  * inline small resources
 +
 +==== Response Size ====
 +
 +The larger the response size, the longer it will take for the resource to be transmitted over the network connection. Consider a large image of 1 MB, i.e. 8 Mbit; it will take at least 8 seconds to transfer it over a 1 Mbit/s DSL.
 +
 +There are several techniques to reduce the response size:
 +
 +  * client side caching
 +  * minifying resources
 +  * compressing resources
 +
 +==== Blocking Operations ====
 +
 +Browsers normally limit the number of simultaneous requests to the same domain (modern browsers have a limit of 6-8). Furthermore the client-side processing of JavaScript scripts blocks the further rendering of the page, because the scripts might create parts of the page (that doesn'​t block other requests to be transferred,​ though).
 +
 +There are several techniques to avoid blocking operations or at least to mitigate their effect:
 +
 +  * reduce the number of requests
 +  * use CDNs if available
 +  * put script elements at the end of the body element or even load them after the document has been loaded
 +
 +==== Performance of the Server ====
 +
 +Usually you can't influence the performance of your server, but if you feel that it is to slow you may consider to upgrade to a more expensive hosting package or even an own virtual server.
  
 
You are here: start » load_time_optimization
Except where otherwise noted, content on this wiki is licensed under the following license: GNU Free Documentation License 1.3
Valid XHTML 1.0 Valid CSS Driven by DokuWiki