The question:
Im looking for ways to increase my page speed.
Currently my website page is 1.4MB, My Page rating is 91, however I still find the site slow. The page load speed on pingdom is 10.4 seconds which is slow.
I have enabled cache and use varnish.
I have optimized all images.
using leverage browser cache.
Im just battling with javascript and css.
What is the best way to handle these?
I am using a dedicated server running Centos.
The Solutions:
Below are the methods you can try. The first solution is probably the best. Try others if the first one doesn’t work. Senior developers aren’t just copying/pasting – they read the methods carefully & apply them wisely to each case.
Method 1
Varnish just hides the problem, it does not solve it. You will always have non-cached pages, checkout will be non-cached so abandoned carts, and Google knows your cached and non-cached, if they do not match you will be ranked lower.
Top sites do not merge CSS or JS, they just have the highest performing hosting, you do not need any tricks however getting to that is complex. Separate MySQL, separate memcache, separate admin, FPC just adds an extra kick when you have the non-cached correct. Anything more than 3s and you lose 40% of visitors, so this is your target. The problem is that this is top 20%, under 2s top 10%, under 1.5s top 5% and under 1s top 1% (the last two being enterprise class).
So even if you have Varnish working, it will not help your conversions or ranking. Getting this right is part of the secret to increased ranking and conversions which leads to increased revenue. To improve speed like the top retailers, top-tier hosting, it is that simple, and that complex.
This should help, use one of these methods to calculate monthly hosting budget, figures are from enterprise consultants.
Micro Enterprise – Less than $2million revenue/yr & less than 10 employees
Revenue Based: Hosting is 20% of IT spend and IT spend is 5% of yearly revenue / 12mths for monthly hosting budget
Visitor Based:$0.0139 x number of visitors per month for monthly hosting budget
Order Based:$0.50 x number of orders per month for monthly hosting budget
Method 2
David,
As we all know, there are a lot of different variables that go into determining Magento’s page speed. It’s important to know the number of visitors per day (total), the number of concurrent visitors at any given time, the number of products/sku’s, and the type of hardware you’re on. Having more insight into your environment will help big time in determining what the issue is. It’d be appreciated if you could provide a bit more information.
Also, Varnish may not be the best solution for your specific site. You can’t just simply turn on Varnish and expect it to work. Though, if you’re familiar with how to properly set up Varnish, it may be in your best interest to check out (https://github.com/nexcess/magento-turpentine). From Turpentine’s github page:
“Turpentine is a full page cache extension for Magento that works with Varnish, a very fast caching reverse-proxy. By default, Varnish doesn’t cache requests with cookies and Magento sends the frontend cookie with every request causing a (near) zero hit-rate for Varnish’s cache. Turpentine configures Varnish to work with Magento and modifies Magento’s behaviour to significantly improve the cache hit rate.
Note that while this extension is now considered stable, it is strongly recommended that it be tested on a development/staging site before deploying on a production site due to the potential need to add custom ESI policies for blocks added by other extensions.”
Everyone who I know has used this has been blown away by what it can do. It may be worth checking out if your goal is to further increase page load time while using Varnish. At this point, it’s hard to say where the issue is coming from as we don’t know the details.
As another resource, I’d recommend checking out Nexcess’ White Paper as it provides information about the best and most popular Magento configurations. You may download the Nexcess White Paper at (http://www.nexcess.net/magento-best-practices-whitepaper). It’s incredibly thorough and provides some really amazing insight into Magento optimization that is hard to find anywhere else.
Also, as a last thought. Are you using a CDN?
Method 3
There are really only 3 areas you need to look at – hosting, time for the first request to complete, and the number of requests per page. Have a look at our blog post covering this here. Also use our performance profiler to get tailored advice on ways to speed up your store.
Method 4
1.4MB is quite a large page especially for those on mobile. One of the techniques you can use ( as recommended by Google PageSpeed) is to optimize images and moving them to a Content Delivery Network)
Since Images typically make up 66% of the average trading Ecommerce page- you can get the largest win from doing this.
One of the plugins I have used to do this is the Cloudinary Magento plugin – which does both the optimization, quality adjustment and moving to the CDN without needing to resort to code changes but there are others that will do various parts of the performance increase.
Method 5
you can use magento default JS and CSS file merging under system->configuration->Advanced->developer
this only will work if you have added CSS and JS files in the correct way via local.xml
another option is to merge and minify them manually, for example use sass compilers, JS compilers. codekit for mac is awesome tool for this task.
Else you should check for slow queries and things like loops which gous through all products, they are performance killers.
also extensions for full page caching might help to improve performance.
Method 6
Best way to handle javascript and css is to either merge it or use some sort of CDN. I have used CDN to handle my javasccript and CSS call requests and it helps drastically. You can also use soem sort of full page cache warmer to quickly cache back the pages if you flush/refresh your cache even if once a day.
One is like is https://magewares.com/crawler.html, very effective and detailed to show you the pages which are cached.
Method 7
As @Serpyre said:
Take the database off of the server and put it on a stand alone instance optimised for the database.
Throw as much ram at each machine as you can offer.
Use an instance for Redis to cache Magento cache and 1 more instance for sessions.
Profile your Magento build. You might find that a particular block is the problem.
Also, you have not mentioned the specs of the server or traffic numbers you are seeing. Because if you’re seeing 100 concurrent users on the site with 2GB of RAM, it’s a different conversation to be had.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0