Minify HTML,CSS,JS
Compacting JS,CSS code can save many bytes of data and speed up execution time. Avoid using comments in your HTML files as they count as characters as well.
CSS at Top, JS at Bottom
If you include external js files at the bottom of your page, you give the priority of your HTTP requests to the visual display that will be presented to the client. By loading js at the end of the file you can access the DOM without having to call a document.ready() function.
Avoid CSS @import
The CSS @import function makes it possible to include external CSS files in a document. It can be used as a way to import CSS scripts within a stylesheet tag in HTML documents or to add extra rules within CSS files. CSS @import is bad for loading every single imported file separately. In other words, the browser of the visitor has to wait for every imported file to load instead of being able to load all your CSS files at once. This can heavily slow down your website, depending on the amount of CSS files you import. Also, when you use @import to include extra CSS files it creates extra HTTP requests, extra requests for the browser of your visitor to deal with. Avoid using CSS @import in an external stylesheet as it creates additional delays during the loading of a web page.
Combine images using CSS sprites
Combining images into as few files as possible using CSS sprites reduces the number of round-trips and delays in downloading other resources, reduces request overhead, and can reduce the total number of bytes downloaded by a web page.
Optimize images
By optimizing the images the page will load faster than unoptimized ones.
Specify image dimensions
Always specify the dimensions for the images either in HTML or in CSS for faster rendering. If we do not specify the image dimensions, then the browser will build the page twice. It will build it for the first time to display all the text and then it will wait until an image in downloaded. When one image is downloaded the browser can now determine the size of the image and will rebuild the page to wrap the text around that image. This process will happen for every image on your page. But if you specify the image dimensions, the browser will already know the size of the images and can use that information to shape the page. It won't have to rebuild the page a million times.
Avoid bad requests
Sometimes your HTML or CSS will request a resource like an image or a html file that doesn't exist. When this happens, it makes the browser and server make more round trips that serve no purpose (because the thing being requested isn't there). These requests slow down your webpages. Not only does it cause more pointless round trips, it may also be causing more DNS look ups which could even further slow down your page. So remove all the broken links from your site.
Make fewer HTTP requests
Every time a visitor loads one of your web pages in their browser additional supportive web files are loaded as well, like for instance CSS files, Javascripts, design images, etc.. Every time such a file is requested it creates an additional request for the browser to process. We call these requests HTTP requests. You should combine the CSS, JS files to one large file to minimize the amount of HTTP requests.
Browser caching
Every time a browser loads a webpage it has to download all the web files to properly display the page. This includes all the HTML, CSS, JS and images. Some pages might only consist of a few files and be small in size – maybe a couple of KBs. For others however there may be a lot of files, and these may add up to be several megabytes large.
Browser caching can help by storing some of these files locally in the user's browser. Their first visit to your site will take the same time to load, however when that user revisits your website, refreshes the page, or even moves to a different page of your site, they already have some of the files they need locally. This means the amount of data the user's browser has to download is less, and fewer requests need to be made to your server resulting in decreased page load times.