The Dangers Of An Over Optimized Website
Today there are many different options that you hear about to help make your website faster and more appealing to humans. No one likes a slow website, but how fast is too fast? Is there a limit or should you just keep enabling everything that you can to make your website load in the shortest amount of time possible?
Watch Out For These Signs Of An Over Optimized Website.
Some are very obvious - like only load items that will appear or have an effect on that page. Others are not so obvious - like using Async and Defer scripts. With so many different options out there, how do you know when to stop optimizing?
One thing to watch out for is over-caching. Caching is great for sending resources that do not change for a long time, but terrible for items that change constantly. For example, if you have a section of the website that requires a user to log in and the user goes there and sees that they are already logged in, but when they click another link in their account it says "you are not logged in" - that's makes for a poor user experience and causes some concern that "is this website really safe?" Over caching could even show some information that could be shown to the wrong person.
Async And Defer Break Elements
Using async and defer too much that it breaks usibility of the website. One of the things that can really increase the initial load times of a website is defering larger scripts in the website. However, if a script is needed right away to run and process information, that could leave you with an incomplete element on the page, a non functioning element (like a form or dialogue box, or even an empty section of the page).
Elements No Longer Interactive
If you have a graph or a chart or a drop down that a user should be able to interact with, but now it's just a static image, You've probably combined too many CSS and JS files or minified them too intensely. Some of these files need to be on their own or combined in ways such that they execute their fucntions without issue.
The best thing to keep in mind is to give the user a good experience, without hindering them. For example, it's OK to have slightly longer load times if you are pulling up a page with, say, a user's entire account history. Or maybe there is a large element that user requested. This can be understood by the user as it is gernally understood that "if I'm requesting all of my information, it will take some time to compile it all."