Use a canonical tag when you want to specify the preferred version of a page with similar content, but you don't need to change the URL that users see. Use a 301 redirect when you're permanently moving a page to a new URL, and you want both users and search engines to be directed to the new URL.