Canonical URLs are URLs that are considered to be authentic and authoritative for a given resource. The word derives from the word canon, which describes law and genuineness. The problem with many blog platforms is that the same content often appears in different places on a site, with exactly the same presentation but an entirely different URL.
An example of this problem would be if I set up a site with the domain example.com. When I type http://example.com into the browser address bar, it displays the same content as if I typed in http://www.example.com. Web servers handle URLs as parts. The first part, http://, is the protocol that is going to be used. Everyone who surfs the Web on a regular basis is familiar with the http:// protocol. It tells the server that the browser is requesting a page over the normal Hypertext Transfer Protocol (HTTP).
While it’s far less likely, you can also see URLs with an ftp:// or even a file:// protocol. The second part of the URL is the domain and while, generally speaking, the domain by itself will be exactly the same as if you added www, it is not necessarily the same. Server configurations could point www.example.com to a completely different Web site than example.com.
Because of this technicality, the search engines cannot assume that the two are the same. Google and the other search engines have spent a tremendous amount of time and resources trying to ascertain authority of Web sites, Web pages, and content. To that end, content that is found in multiple places (for example, URLs with www as well as those without it) is treated as duplicate content and the version found to be non-authoritative is penalized.
Site owners run the risk of being penalized by Google if their sites are considered spam (a verdict that is rare for most bloggers but exists nonetheless). Canonical URLs redirects were added to WordPress in version 2.3 to help alleviate this problem. The added functionality has been hailed by Matt Cutts, the head of Webspam (the guy to shape the quality of search results and filtering spam from the Google index) as eliminating the problem of duplicate content as much as possible. WordPress tries to eliminate all the potential duplicate content areas by consolidating content to a single URL.
Using the WordPress Address and Blog Address settings defined in General Settings in conjunction with the settings defined in Permalink Settings, WordPress redirects traffic to any potentially legitimate location to the proper one. Depending on your preference, you might want to set your Blog Address setting to use the www or the non-www version of the domain. Both are equally fine, so it is merely a personal choice. However, if you already have an existing site that has been indexed by the search engines, you can use some tactics to figure out which one is best for you.