I had the issue of getting our cart to show 1 home link. Everything else had been cleaned up but that. Canonical URL's were the answer. 1 simple line of code.. Read this article and watch the clip from Matt Cutts an Engineer at Google. Canonical URL's
Important to note the web site provided above seems to lean towards WordPress and Canonical URL's. Although many developers are realizing the important of Canonical URL's and incorporating them into the content creation side of the site. One example is Drupal. So the video content is still valuable to everyone in regards to what and how Canonical URL's work.
EVERY site should take care of URL canonicalization. But the <link rel="canonical"> element is not really the best way to fix URL canonicalization issues. In fact, Matt Cutts has said to me in person at Pubcon (and I've heard him mention it a couple other times to others in person) that the canonical link element should only be used as a last resort. 301 redirecting web pages will always be superior to the <link rel="canonical"> element for fixing URL canonicalization issues. Google is the ONLY search engine at the moment that even supports it, so while it may fix your problem w/ Google, the problem still exists at Yahoo!, Bing, and all of the other search engines out there. Even though Yahoo! and Microsoft "said" they were going to support it when it was first announced about 2 yrs ago, last I heard they STILL had not implemented support for it. Redirecting non-canonical URLs with 301 redirects to the canonical form of a URL is far better... 1) 301s have long been supported by all search engines 2) Users NEVER see the non-canonical URL in their browsers, so if they copy the URL out of their browser address bar and paste it onto a site to make a link, the ALWAYS get the canonical version. The canonical link element perpetuates people linking to non-canonical URLs on your site. The <link rel="canonical"> element was created for 1) webmasters who can't implement 301 redirects (pure HTML sites on Windows/IIS platforms) because they don't have access to utilities like Mod_Rewrite or server side scripting languages or 2) for VERY complex sites (like huge ecommerce sites) using dynamic URLs with lots of query string parameters where implementing 301 redirects to account for every case like every ordering of the query string parameters since they frequently use them for sorts, filters, product IDs, category IDs, brands, etc... and rearranging the parameters still shows the same page but is considered a different URLs. If you have a way to implement 301s, they are more preferable by far as a means of dealing with URL canonicalization issues, duplicate content, and split page rank/link juice. As Cutts said, the canonical link element should only be used as a last resort for those who CAN'T implement 301s.
I have also canonical issue with my website but by reading this article i have shorted that issu. thnaks for providing step
Just an extra point. In my experience, canonical tags are also not effective in correcting URL capitalization. For example: http:www.website.com/Crazy-Eggs.html and http:www.website.com/crazy-eggs.html are both showing as separate pages in Webmaster Tools due to how sites are linking to you. This still needs to be fixed with 301 and cannot be addressed with canonical tags.
With the 301 and rewrites those have been done with my site. However some core indexing urls are unable to rewrite at least until the cart is redesigned.. This is where the Canonical came in handy, as you said, as a last resort.