Page Speed Optimization – Complete Guide

 

You must have come across several articles on site speed optimisation which talks about improving site speed but don’t make much sense for a SEO:

1. Defer parsing of javascript (what?)
2. Leverage proxy caching (what???)
3. Add a far future Expires header to your components (scripts,style sheet, images). (what?????….what????….WHAT)

If you don’t understand all this gibberish then this post is for you. If you want to do site speed optimisation yourself then this post is for you.

By the time you end up finishing this post you will have better understanding of the world around you and you can actually implement ‘Google Webmaster Central’ blog posts guidelines which targets ‘Advanced webmasters’ with posts like: ‘taking advantage of rel=”canonical’ HTTP header”‘.

In short your will be on your way to become a technical SEO champion. So lets go:

Index

1. Foundation Course
2. Optimising CSS
3. Optimising Images
4. Optimising Javascript
5. Optimising HTML
6. Optimising HTTP Responses

7. Miscellaneous Optimisation

Site Speed Optimisation Aims- While optimising the speed of a web page you should have following aims:

  • Reduce the size of html files, image files, CSS files, XML files and java script files wherever possible.
  • Reduce blocking of page rendering wherever possible.
  • Enable better parallelization of downloads wherever possible.
  • Minimise HTTP requests wherever possible.
  • Minimise DNS Lookups wherever possible.

 

Foundation Course

There are certain tasks, terms, functions and modules which I think you must know before you start working on site speed optimization. Feel free to skip the sections you are already familiar with.

Why you should optimize site speed- A slow landing page can dramatically impact your conversion rate & bounce rate if you page takes too long/ forever to download. Page speed impacts Google Adwords landing page quality and is now officially a Google ranking factor.

 

What is Site Speed report – You can find this report under the ‘content’ menu in the new Google Analytics interface. Through site speed report you can determine which landing pages of your website are slowest and how page load time varies across browsers and geo-locations.

 

What to optimize first- Optimizing page speed can be very daunting if your website is very big. So prioritization is the key here. You must know what to optimize first, what to optimize second and so on. According to my experience you should first optimize the speed of your home page, and then top selling products pages followed by top category pages, top sub-category pages and then rest of the website if possible. So in short optimize those pages first which directly impact the bottomline of the company.

 

How to set up site speed report in Google Analytics

Add _trackPageLoadTime(); or pageTracker._trackPageLoadTime(); (in case of traditional snippet) to the Google Analytics Tracking code (GATC) of all the web pages:

What is Page Speed- Page speed is a firebug extension/chrome extension through which you can determine the page speed score of a web page and get suggestions regarding optimizing the speed of the page. Your aim is to get your page speed score as close to 100 as possible. A web page with page speed score of 70-80 out of 100 is an average score whereas 90 (or more) is a good score.

 

Alternative to Page Speed- Page speed online (http://pagespeed.googlelabs.com/) is a browser independent tool to measure the speed performance of web pages. One good thing about this tool is that it can differentiate between high & low priority tasks. In this way you can determine what needs to be done first.

 

How you can install & use Page Speed

Step-1: Install firebug add-on in firefox: https://addons.mozilla.org/en-US/firefox/addon/firebug/
Step-2: Install page speed : http://code.google.com/speed/page-speed/download.html
Note: Page Speed is a firebug extension. So you first need to install firebug.
Step-3: Right click on the page whose speed you want to optimise and then click on ‘inspect element’. This will open up the firebug console.
Step-4: Click on the “page speed” tab and then on the ‘Run Page Speed’ button. In few seconds you’ll get a score out of 100. The aim is to get your score as close to 100 as possible.

 

Page Rendering- It is the process of generating a page from the database.

Parsing – It is the process of analyzing and execution of a code. For e.g. parsing of javascript.

Caching- To speed up web surfing, browsers store copies of recently accessed web documents (html files, images etc) of a site on a user’s hard disk. If the site is revisted the browser uses the stored copies to display web pages instead of requesting them from the server.

Round-trip time (RTT) – It is the time it takes for a browser to send a request and the server to send a response over a network. It doesn’t include the time required for data transfer.

Static Resources- A web resource can be either static or dynamic. CSS files, image files, Flash (SWF) files and Java script files are some examples of static resources.

Minify- It means reducing the size of a file by removing extra spaces, commas, link breaks, code comments etc from the file. For e.g. minify CSS, minify HTML, minify Java Script etc.

 

Setting up Cookies

A cookie is a small text file which is generally used to identify a visitor as first time/ returned visitor or member/non-member visitor. When a user request a page from your web server the server may place/read this text file on a user’s hard disk. You as an SEO must know how cookies are created and set up.

The setcookie() function is used to create a cookie. This function must appear BEFORE the <html> tag.

Syntax: setcookie(name, value, expire, path, domain,secure);

Here,
Name’ is the name of the cookie.
Value’ is the value associated with the cookie.
Expire’ is the time when the cookie should expire. For e.g. time()+3600*24*30 will set the cookie to expire in 30 days. If this parameter is not set then the cookie will expire at the end of the session (when the browser closes).

Path’ is where the cookie should be available. For e.g. within a particular directory (like /test/) or entire domain (like /)
Domain’ is the domain name of the cookie like www.example.com
‘Secure’ is whether or not the cookie should be set over a secure HTTP connection. Its default value is ‘False’ which means cookie should be set up. The value of ‘True’ means cookie should be set up only if a secure connection exist.

Note: Only ‘name’ and ‘value’ fields are required in the setcookie() function. All other fields are optional.

Example 1

In the example below, we will create a cookie named “seomoz” and assign the value “Rand Fishkin” to it. We will also specify that the cookie should expire after one hour:

<?php
setcookie(“seomoz”, “Rand Fishkin”, time()+3600);
?>

<html>
…..
……
……

Example 2

In the example below, we will create a cookie named “seomoz” and assign the value “Rand Fishkin” to it. We will also specify that the cookie should expire after one month:

<?php
setcookie(“seomoz”, “Rand Fishkin”, time()+3600*24*30);
?>

<html>
…..
……
……

Note: In the example above the expiration time is set like this: 1 hr(3600 seconds) * 1 day(24hrs)*1 month(30 days). So what I have specified is the total number of seconds in a month.

Viewing Cookie Information

Once you have setup cookie, you can verify by it through ‘web developers’ toolbar. Install web developers toolbar (https://addons.mozilla.org/en-US/firefox/addon/web-developer/). Click on ‘view cookie information’ under the ‘cookies’ menu. You may see a long list of cookies. One of the cookie will be the one I just set up:

I set up this cookie on my own website eventeducation.com. That’s why the host name is www.eventeducation.com. Note this cookie will expire after one month. We can also set this cookie to expire after 6 months or 6 years.

Viewing HTTP response header

A browser and a web server communicate with each other through HTTP request and response headers. HTTP request headers are sent by a browser whenever it request a resource (like image file) from a web server. HTTP response headers are send by a web server in response to the request made by the web browser. You as an SEO must know what are HTTP headers, how they are setup and how they can be viewed. To view HTTP response header click on ‘view response headers’ under the ‘information’ menu on the web developers toolbar. Here is what i got:

PHP header() Function

This function is used to send a raw HTTP response header to a browser and must be called before an actual output is sent (in PHP 4 and above).

Syntax: header(string,replace,http_response_code);

Here,

String‘ is the header string to send. It is made up of colon separated name-value pairs. For. e.g. “Cache-Control: no-cache”. This field is required.

replace‘ specifies whether the header should replace previous header or add a second header. Default is TRUE (will replace). FALSE (allows multiple headers of the same type). This field is optional.

http_response_code‘ forces the HTTP response code to the specified value (only available in PHP 4.3 and higher).

Example 1:

Send status code 404

Place the following code on the page which should return a 404 response code

<?php
// Send 404 File not found response code
header(“HTTP/1.0 400″);
?>

<html>
<body>

=========================

Example 2: Send status code 301

Place the following code on the page which should return a 301 response code

<?php
// Send 301 Moved permanently response code
header(“HTTP/1.0 301″);
?>

<html>
<body>

Congratulations! you now know how to send HTTP status codes. Now you must be able to handle soft 404 issues. Click here to see the complete list of HTTP status codes.

Example 3: Prevent page caching:

Place the following code on the page which you don’t want to be cached.

<?php
// Date in the past
header(“Expires: Mon, 20 Jul 2001 12:00:00 GMT”);
header(“Cache-Control: no-cache”);
header(“Pragma: no-cache”);
?>

<html>
<body>


Example-4: Setting up rel=”canonical” HTTP Header

Place the following code on the page which is near duplicate to the page white-paper.php:

<?php
//Link is used to express a typed relationship with another resource
header(“Link: <http://www.eventeducation.com/white-paper.php>; rel=\”canonical\””);

?>

<html>
<body>


Example-5: Other uses of the header() function

<?php
header(“Cache-Control: max-age=3600″);
header(“Last-Modified: Tue, 15 Nov 2010 12:45:26 GMT”);
header(“If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT”);
header(“Content-Type: text/html; charset=utf-8″);

?>

<html>
<body>


 

Apache Module mod_expires

You need to have basic knowledge of this module if you want to want to make static resources (like CSS, image files etc) cacheable. Through this module you can add Expires and Cache-Control HTTP headers to static resources and thus make them cacheable.

ExpiresActive Directive
This directive enables or disable generation of Expires headers and cache-control headers for a resource like images, CSS files etc.

Syntax: ExpiresActive On|Off

Example: ExpiresActive On

========================

ExpiresByType Directive
This directive defines the value of the Expires header and the max-age directive of the Cache-Control header generated for documents of the specified type (e.g., text/html).

Syntax: ExpiresByType MIME-type <code>seconds

Example: ExpiresByType image/gif A31104000

The second argument sets the number of seconds that will be added to a base time to construct the expiration date.

The base time is either the last modification time of the file, or the time of the client’s access to the document. Which should be used is specified by the <code> field; M means that the file’s last modification time should be used as the base time, and A means the client’s access time should be used. In the example above all GIF image files will expire after 31104000 seconds (i.e. after year) from the time of the client’s access to the document.

The Cache-Control: max-age is calculated by subtracting the request time from the expiration date and expressing the result in seconds.

ExpiresDefault Directive

This directive sets the default algorithm for calculating the expiration time for all documents in the affected realm. It can be overridden on a type-by-type basis by the ExpiresByType directive.

Syntax: ExpiresDefault <code>seconds

Example: ExpiresDefault A0

The directive in the example above set the default algorithm for calculating the expiration time for all documents from the time of the client’s access to the document to zero.

Source: http://httpd.apache.org/docs/2.0/mod/mod_expires.html

 

Optimising CSS

1. Make your CSS files cacheable- Adding an Expires header to your CSS files with a date in the future makes them cacheable and reduce the load time of your CSS files on return visit. However this would be done by adding a code to your .htaccess. You don’t do anything with the files themselves. For e.g. to make all the CSS files on your website cacheable add following code to your .htaccess:

ExpiresActive On
ExpiresDefault A0
ExpiresByType text/css A31104000

Note: This code set the expiry date of your CSS files to 1 year from the base time.

2. Combine external style sheets into as few files as possible. This helps in minimizing the HTTP requests which in turn cuts down on RTTs (Round Trip Time) and delays in downloading other resources.

3. Minify the CSS code of all the CSS files- CSS files can have thousands of lines of code. Each extra tab, space, comma, line break & code comments adds to the file size and can slow the website speed. Compacting CSS code can save many bytes of data & speed up downloading, parsing, and execution time. You can expect a 20-30% saving on average. I use the following tool to minify CSS: http://www.csscompressor.com/

Note: keep original copy of the CSS files for the developers to work in.

 

4. Enable parallel downloads of CSS files – Parallelization of downloads speeds up browser rendering time. To ensure CSS files are downloaded in parallel always include CSS files before JavaScript files in your HTML code. For e.g.

….
….
<link href=”/Assets/Css/Site.css” rel=”stylesheet” type=”text/css” />
<link href=”/Assets/Css/Form.css” rel=”stylesheet” type=”text/css” />
<script type=”text/javascript” src=”/Assets/Scripts/Menu.js”></script>
<script type=”text/javascript” src=”/Assets/Scripts/Utils.js”></script>
….
….

5. Don’t use CSS import in an external stylesheets as browser is not able to download stylesheets in parallel which results in additional delays during the loading of a web page. CSS @import is used to import other stylesheets in an external stylesheet. For e.g.

site.css can contain following code: @import url(“form.css”)

Instead of @import, use a <link> tag for each stylesheet. This allows the browser to download stylesheets in parallel, which results in faster page load times. For e.g.

<link rel=”stylesheet” href=”site.css”>
<link rel=”stylesheet” href=”form.css”>

6. Inline Small external CSS files – If a CSS file contains small amount of CSS code then inline it i.e. use inline CSS. This can reduce HTTP requests and reduce the load time of a page. To use inline styles you use the style attribute in an HTML tag. The style attribute can contain any CSS property. For e.g.



<p style=”color:black;margin-right:11px”>paragraph.</p>

7. Put CSS in the document head - Move inline CSS and external CSS files from the document body to the document head. Browsers block rendering a web page until all stylesheets have been downloaded. By moving CSS in the document head you can make them parsed quickly by a browser. This helps in reducing the load time of a page.


8. Don’t use CSS Expressions – Through CSS expressions you can set CSS properties dynamically. The problem with CSS expressions is that first they work only in Internet Explorer and secondly they are executed more frequently than any other component like javascript. They are evaluated each time the page is rendered, resized, scrolled or when a user moves the mouse over the page. Following is an example of CSS expression:

#myDiv {
position: absolute;
width: 250px;
height: 250px;
left: expression(document.body.offsetWidth – 100 + “px”);
top: expression(document.body.offsetHeight – 100 + “px”);
background: blue;
}

 

Optimising Images

1. Make your Image files cacheable- Adding an Expires header to your image files with a date in the future makes them cacheable and reduce the load time of your images on return visit. However this would be done by adding a code to your .htaccess. You don’t do anything with the images themselves. For e.g. to make all the image files on your website cacheable add following code to your .htaccess:

ExpiresActive On
ExpiresDefault A0
ExpiresByType image/gif A31104000
ExpiresByType image/png A31104000
ExpiresByType image/jpg A31104000
ExpiresByType image/jpeg A31104000
ExpiresByType image/ico A31104000

Note: This code set the expiry date of your image files to 1 year from the base time.

2. Remove unnecessary space around your image. This reduced the image size and eventually the load time of the pages on which the image is used.

3. Specify width and height of all the images in the HTML code for faster rendering of the page.

4. Save images to appropriate file format usually the one which results in more saving.

5. Don’t compress image, videos, PDFs and other binary files as they are already compressed. Using a compression algorithm like ‘gzip’ on them won’t help much and can actually increase their size.

6. Serve scaled images only when the actual image size matches at least one. Otherwise don’t serve scaled images in HTML. It means don’t use a bigger image than you need. For e.g. if your image is 700X500px and you need only 300X200px image then don’t use ‘width’ and ‘height’ properties of img tag to scale down the image to 300X200px:

<img width=”300″ height=”200″ src=”google.jpg” alt=”My Google” /> Instead upload a 300X200px image on your web server and use it.

 

7. Remove Empty Image src from your page. This reduces the HTTP request.

1. HTML: <img src=””>
2. JavaScript: var img = new Image(); img.src = “”;

8. Combine background images that are loaded on the same page and that are always loaded together into a single image file called sprite image. Use http://spriteme.org/ to create sprite image. Download this image to your web server and make some CSS changes to your website. This reduces the HTTP request and speed up the load time of a page.

Please note: I don’t sprite images as they are very time consuming and require certain level of web designing skills. I also don’t do many of the aforesaid tasks to optimize images as they are better done during site development by a professional web designer.

 

Optimising Javascript

1. Make your Java Script files cacheable- Adding an Expires header to your JS files with a date in the future makes them cacheable and reduce the load time of your files on return visit. However this would be done by adding a code to your .htaccess. You don’t do anything with the files themselves. For e.g. to make all the JS files on your website cacheable add following code to your .htaccess:

ExpiresActive On
ExpiresDefault A0
ExpiresByType text/javascript A31104000

Note: This code set the expiry date of your JS files to 1 year from the base time.

2. Avoid parsing of javsacript code during initial page load so that you can reduce blocking of page rendering. Move the scripts (like traffic tracking scripts) as low in the page as possible.

3. Combine javascript files into as few files as possible- this reduces the HTTP requests and reduces blocking of page rendering.

4. Inline Small external JS files – If a java script file contains small amount of JS code then inline it i.e. use inline java script. This can reduce blocking of page rendering and reduce the load time of a page.

5. Upgrade to asynchronous version of Google analytics tracking code as it helps in better parallelization of downloads and speeds up browser rendering time.

6. Minify the Javascript code of all the java script files- JS files can have thousands of lines of code. Each extra tab, space, comma, line break & code comments adds to the file size and can slow the website speed. Compacting JS code can save many bytes of data & speed up downloading, parsing, and execution time. You can expect a 20-30% saving on average. I use the following tool to minify JS: http://javascriptcompressor.com/

Note: keep original copy of the JS files for the developers to work in.


7. Remove Duplicate Scripts from your pages as the browser ends up executing the same code twice. If an external java script file is called twice on a page then the browser has to make two HTTP requests which further reduce the load time of a page.

8. Remove unnecessary scripts from your pages wherever possible. Make sure that your website doesn’t have multiple traffic-analysis scripts embedded on each page.

 

Optimising HTML

1. Minfiy the HTML code of all the HTML files- Compacting HTML code can save many bytes of data & speed up downloading, parsing, and execution time. The tool you can use to minfy HTML code is: http://www.textfixer.com/html/compress-html-compression.php

Note: I don’t recommend clients to minify their HTML code if their website is big becuase then the client’s developers will have to maintian two copies for each web page: one for the live server and one for the development server all the time.

2. Use compression algorithim like GZIP to compress HTML files- To gzip a php document all you need to do is to add the following line of code at the very begining of your document (before <!DOCTYPE html PUBLIC……..):

<? ob_start(“ob_gzhandler”); ?>

Note: You can Verify your compression here: http://www.whatsmyip.org/http_compression/

 

Optimising HTTP Responses

 1. Minimise bad HTTP requests (3xx errors, 4xx errors, 5xx errors like 404, 410,500 etc). Removing bad requests avoids wasteful requests made by a browser from your web server. and speed up downloading, parsing and execution time.

2. Minimise number of redirects from one URL to another. Redirects trigger addtional HTTP requests.

3. Avoid redirects chain like web page A is redirecting to web page B and web page is redirecting to web page C. Instead redirect both web page A and web page B to web page C.

4. Use server side redirects (301, 302) over client side redirects (meta refresh, javascript redirect through window.location object). Browsers can handle server side redirects more efficiently than client side redirects.

5. Minimise HTTP request size- To minimize HTTP request size, try to keep HTTP request headers as small as possible preferably less than 1500 bytes. HTTP request headers include: Cookies, browser set fields, requested resource URL and referrer URL.

  • Eliminate unnecessary cookies. If you set a lot of cookies, the request headers for your page will increase in size since the cookies are sent with each request.
  • Try to keep the size of a cookie less than 400 bytes
  • Minimise the lenght of requested resource URL and referall URL

 6. Specify a character set in the HTTP response headers of your HTML documents. In this way you can allow a browser to begin parsing HTML and executing scripts immediately. Here is how you can specify a character set in the HTTP response header:

Place the following code on the page which should return character set

<?php
header(“Content-Type: text/html; charset=utf-8″);
?>

<html>
<body>


7. A resource (like HTML file) should be available only through a single URL to elminate addition RTTs (Round Trip Time).

8. Make sure that the same resource is not severed from a different hostname to minimise DNS lookups.

 

Miscellaneous Optimisation

 1. Enable Proxy caching or public caching (not browser caching) for static resources – Through proxy caching a browser can download static resources (images, CSS, Javascript files, Flash files) from a nearby proxy server rather than from a remote origin server. Once a static resource has been requested by one user through the proxy, that resource is available for all other users whose requests go through that same proxy. In this way even first time visitors to your website can benefit from proxy catching. Add following line of code to your .htaccess to enable proxy caching for static resources:

<FilesMatch “\.(gif|jpe?g|png)$”>
Header set Cache-Control “public”
</FilesMatch>

Keep follwing things in mind before you enable proxy caching

1. To enable proxy caching for static resources don’t include a query string (?) in the URL for static resources. Most proxies do not cache resources with a “?” in their URL even if a Cache-control: public header is present in the response header.

2. Don’t enable proxy caching for resources that set cookies. If you set cookies in public proxies you will also share cookies among the users.

 

2. Update Your CMS- If you are using an older version of the CMS then you should update it as the new version generally has much more efficient code (which can speed up downloading, parsing, and execution time) and can solve lot of CMS issues you are facing at present.

3. Avoid using widgets & plugins wherever possible. They can considerably reduce page load time.

4. Minfiy XML files- Compacting XML code can save many bytes of data & speed up downloading, parsing, and execution time. The tool you can use to minfy XML code is: http://www.boryi.com/free-web-tools/compress-xml.html

5. If your web page serves more than 5 static resources but not more than 10 from a single domain then consider setting up an extra cookieless domain/sub-domain (which doesn’t set cookies) just to host static resources like images. In this way you can trick the browser to download static resources in parallel which leads to faster page load time. For e.g.

www.abc.com hosts only HTMl files

images.abc.com hosts only image files

6. If your web page serves more than 10 static resources from a single domain then consider serving these resources through multiple domains/sub-domains (according to Yahoo 2 to 4 domains is an optimal number. Your aim should be not to have more than 4 DNS look up per page). In this way you can trick the browser to download static resources in parallel which leads to faster page load time. For e.g.

www.abc.com hosts only HTMl files

images.abc.com hosts only image files

static.abc.com host CSS and JS files

7. Remove Etags- An Entity tag or etag is an HTTP response header returned by a HTTP 1.1 compliant web server and is used to determine changes in content at a given URL. The Etag changes only if their is change in content. It looks something like this: Etag: “edbcb0d744200f312aabe604c507aa6a”. By removing Etag for static resources you can reduce the size of the HTTP response header and subsequent requests. Add following code to your .htaccess file to remove Etags:

FileETags none

8.Don’t use frames on your pages. When you use frames the browser has to request mutiple HTML pages (which means mutiple HTTP request) which can considerably reduce the load time of a page.

9. Use a Content Delivery Network (CDN) like Akamai to deliver your website document (html, CSS, PDF, images etc). CDN is a network of servers with each server loacted in a different geographic location. Each server stores a copy of your website files. So when a visitor to your site request a web document, the document is servered from the web server which is nearest to the visitor loaction or which is not experincing high load.

Other Posts you may find useful:

Subscribe to my blog
Join my free newsletter and learn to avoid the analytics mistakes everyone seems to be making over and over again.

 

About the Author:

My business thrives on referrals, so I really appreciate recommendations to people who would benefit from my help.Please feel free to endorse/forward my LinkedIn Profile to your clients, colleagues, friends and others you feel would benefit from SEO, PPC or Web Analytics.

 

 

  • http://Website Reji Ittiachan

    That was a wonderful piece of info and links to very useful resources too.

  • http://seoexpertstips-ali.blogspot.com/ Syed Ali

    Thanks for posting this blog,Anybody who consider points at the time of site speed optimization it will be very handy…

  • http://www.searchbenefit.com Search Benefit

    How about no of dom elements? More the no of dom elements higher the CSS rendering time. Only the best html coders can manage that to a admirable extent. Nevertheless it a factor. Is it not?

    • http://seohimanshu.com/about-himanshu/ seo himanshu

      Yes it is a factor. But i didn’t mention it as i am not sure about it and i don’t preach which i can’t practice. I think lot of site speed optimisation issues can be automatically resolved if developers write a good code in the first place.

  • Eachan Doyle

    These are some great tips for page speed optimisation. I am going to take a print out of this post and give it to my devlopers. Keep up the good work.

  • Abanjo

    It’s a very good tutorial. Though i know about page speed SEO, there were lot of things i wasn’t aware of. Your tips will come in handy in my next site audit. Thanks again.

  • Oscar

    This is an amazing post. One of the most well explained on Site speed optimisation. Well done!

  • Oscar

    This is an awesome tool but very expensive too. I need to convince my boss somehow. Thanks for reviewing it.

  • http://itshumour.blogspot.com/2010/06/twenty-hilarious-funny-quotes.html funny jenny

    Hi,
    Does the tips above will help optimise the blogger also ?

    • http://www.seotakeaways.com/ Himanshu

      Yes. These tips are useful for any type of website.

  • shashank

    I dont know how to optimize site speed & i tried it from reading this post but connect is missing and it wasnt a help but its a great post. thanks i would request if you can create a video & share that will help more.
    after step4 from where did Page Rendering- came into picture ? it doesn’t connect well here so i couldn’t do it for my site.

    • http://www.seotakeaways.com/ Himanshu

      Page rendering has nothing to do with step-4. It is a different topic. It a part of the Foundation course. I am trying to explain the terminology used in site speed optimisation.

  • http://www.facebook.com/profile.php?id=100003405478364 Julia

    Tried to use amolst all of your tips, and now my blog is really faster! GZIP compression was not very clear before for me, but now everything is fine and loads faster. :)

  • http://www.techshouters.com Rasel Rony

    thanks a lot for this informative post on speed optimization , hope I will able to optimize my site’s speed following your guides

  • http://www.springboardseo.com Springboard SEO

    Great post.

    Curious; why do you only advise gzipping HTML files? Do you not also like gzipping css/js once they’re minified?

    • http://www.seotakeaways.com/ Himanshu

      Gzipping css/js files once they are minified won’t reduce in size any further.

  • http://www.mediasnap.co.uk/ Julian

    I have always advocated the use of the google free site speed tool. It makes sense to optimise you pages for speed from an SEO perspective, but it’s also vitally important from a user experience perspective too… Slow sites are such a pain.

  • http://knowempowernetwork.com/ Dr Kavita Shaikh

    These explanations are great. But could you suggest a wordpress plugin to do all the heavy lifting like optimizing images, minify etc for a non-seo or technically challeneged webmaster?

  • http://urworld4u.blogspot.com sahil

    thanks alot bro your tutorial mind blowing…me now scoring 84/100 in google speed test.

  • http://www.drivinggames4free.com Zoran

    Tutorial is really cool my scoring now is 94/100

  • http://lighttableplansi.blogspot.com Phoo

    Right here is the perfect site for anyone who would
    like to understand this topic. You know a whole lot its
    almost tough to argue with you (not that I really would want to?HaHa).
    You definitely put a fresh spin on a topic that’s been discussed for decades. Wonderful stuff, just wonderful!

  • batjuh

    thx alott , it speeded up my site and now have an overal speed optimisation of 89 on all pages!

    • seohimanshu

      Glad my post helped you.

  • Angela

    This site does make me wonder if o shouldn’t which my site http://www.figurinesanimaux.com from .net to this! Thanks in all cases!

  • nazarca

    http://nazarca.com/

    Çok Te?ekkürler