This should be done to reduce HTTP requests. Also, if scripts are included inconcatenating them is key, because multiple scripts have a blocking behavior.
If a component is rarely updated, leverage browser caching.
You don’t want users staring at a white screen. Confirm that Start Render time is within 2.01 seconds. (Please remind me to justify this number I am now offering as a rule of thumb with no explanation.)
WebPageTest.org can tell you Start Render time as well as a lot of other useful information. Waterfall charts — which WebPageTest.org will generate for you — indicate Start Render time as a first vertical line, usually blue.
If Start Render time is greater than two seconds, you will need to optimize.
The HTML5 character set is very elegant: .
Failing to include a character set is a security risk. While this is important, it is uncommon to forget it.
This is especially important for mobile devices that show customized keypads and widgets for different types.
Images are HTTP requests that slow down rendering and should be minimized. Unless your HTML document is something as primitive as an HTML email, images should not be used for layout. Replace corners, single pixel spacer gifs, shadows, gradients…etc. with CSS3. Very complicated and detailed patterns can be created with CSS.
If the images cannot be replaced with CSS — that is, if it absolutely must be a graphic — collect images into image sprites or consider using using a font face as a library of icons.
New HTML5 elements are not recognized by Internet Explorer versions less than 9. These browsers still have a huge market share, and it is highly recommended that you use an HTML5 shim.
This is an important and loaded checklist item. If the site is HTML5 (first line is <!DOCTYPE html>), tags like <header>, <footer> and <nav> should be used. Menu items should be marked up as an ordered list.
Common things that should be avoided are using the <br> tag for formatting, using <b> when you mean <strong>, or worse, using <b> when the content is a heading.