The best way is looking at a websites structure (and speed) is like a shopping trolley,
the more items you have the slower it becomes and the longer it takes to checkout (i.e. load the page)
Magento Speed Optimisation
Having run a Magento Agency – I’ve seen some pretty shocking “SEO”, if that’s what you call it. I’ve seen sites with 30,000 lines of code and that is not uncommon.
Plug-ins are created by developers who have a motive to make money, not to completely optimise the code too be 100% efficient. Most plug-ins will cater for all users (and all requirements) so there will be a lot of code that your site will not use.
I’m going to assume that you’ve already done the standard Magento SEO bits. i.e. Flat Catalogue turned on and are using a Magento caching as well.
Increase Magento Speed
Speed is critically important to Magento SEO and increase Conversion Rates, here’s a few tips to get you started.
Get the Pro edition. The Pro edition allows you to use “Cache Everything” based on a the basket cookie (very important). I’ve got Magento store load times down to 0.5s using Cloudflare.
Make sure you set the Edge TTL to at least a day and the Browser TTL to at least a day.
Edge TTL = When does the server get a new updated version
Browser TTL – When does the user browser get an updated version
Brotli – On, same as GZIP
I would also suggest you do not use Rocket Loader.
There’s lot’s of Magento Extensions: https://support.cloudflare.com/hc/en-us/articles/203904600-Using-Cloudflare-with-Magento-2
MySQL Query Caching
99% of database queries are the same. Loading category pages, product pages etc. The results of the query are almost always the same, unless something has been updated.
MySQL Query Caching works by only giving you an updated version of the tables in question have been updated or changed.
From the image you can see, most queries were cached.
This will help speed up PHP quite a bit – stolen from another website “The scripts will be stored in memory and only the updates will compile and continue to store.” Exactly the same method as MysQL Caching.
Images / JS / CSS
Images- Make sure images are to the latest standard (WebP / JPEG2000).
Lazy Loading- which will only load the images when you scroll down the page, if you have a lot of products this is very good for loading times.
JS – Ensure its minified and in one file
CSS – Same as above
Themes – Custom templates = 100%+ Speed Increase, if coded correctly. No added JS/CSS/Crap. Avoid themes at all cost.
This will reduce the DNS queries. Each time you visit a site, you go to your service provider (DNS) and say “Hey what’s the IP for google.com” and comes back with an IP.
There’s been a number of cases in which this has increased speed times of up to 10%. That’s pretty impressive.
Google has a video here about the difference in using the pre-load tag. Case closed
Magento Optimisation Service
At the end of the day – you want your web-server hit as little as possible.
Please also remember that services, such as Cloudflare are setup to provide BOTS with non-cached versions of the website for freshness.
So don’t get to obsessed, use common sense and rankings – it’s not all about speed. If your website looks like crap because it’s so optimised, no one will purchase.
Do you have any Magento speed tips?