Difference between canonical link element and 301 redirect, canonical link element is an html tag and it is used to refer same copy of content with in same website, “canonical url tag” is to help webmasters and site owners eliminate self-created duplicate content in search engine index. And 301 redirect is used to redirect from one page to another page and it is permanent redirect.
The Canonical URL tag attribute is similar in many ways to a 301 redirect from an SEO perspective. In essence, you’re telling the engines that multiple pages should be considered as one (which a 301 does), without actually redirecting visitors to the new URL.
Canonical link element or canonical URL tag is placed inside head part of an html document. And below is sample code for canonical URL tag.[html] <link rel="canonical" href="http://codingcyber.com/canonical-link" />
301 redirect is used for moving page from one location to another location within same domain or another domain. 301 redirect is permanent redirect, and is also used to move one domain name to another domain name. 301 redirect code should be placed in .htaccess file in root directory.