canonical は指定必須、alternate は多言語対応サイトなら指定推奨です。(私基準)
Googleの検索結果に大きく影響のある項目なので、丁寧に実装します。
canonical
正規のURLを検索エンジンに伝えるタグです。
<link rel="canonical" href="https://www.example.com/">
具体的には
検索エンジンの評価が適切に集約されるように設計します。
・www があってもなくてもアクセスできる場合はどちらが正しいのか決める
・httpsでもhttpでもアクセスできる場合はhttpsが正しい
・ユーザの入り口ページとして区別する必要のないパラメータははずす
などが検討ポイントだと思います。
例)
商品一覧ページで、コーヒーカテゴリのページであれば、何ページ目であろうと、価格によるフィルターがかかっていようと、検索エンジンの評価は「コーヒーの商品一覧」に集約されるようにする
アクセスされているURL:
https://example.com/products/list.php?cat=coffee&price_from=300&price_to=1000&p=1&x=20&y=20
上記ページのソース内のcanonicalのURL:
https://www.example.com/products/list.php?cat=coffee
注意①
不適当なcanonicalを指定すると、意図せず検索エンジンにまったくひっかからないページができてしまったり、検索結果からのリンク先が不適当なページになってしまったりします。
注意②
同内容だけど地域・国が異なるためにURLが異なる場合、
例えば、
https://www.example.com/us/en/
https://www.example.com/ca/en/
https://www.example.com/eu/en/
が完全に同じ内容である場合、Googleから重複コンテンツとみなされる可能性がありますので、canonical でどちらかのURLに寄せたほうが良いようです。
alternate
多言語対応サイトの場合に、各言語でのURLを検索エンジンに伝えます。
(PC・スマホでURLが異なる場合にも使いますが、レスポンシブサイトならPCとスマホのURLを個別に指定する必要がないので、ここでは割愛します)
<link rel="alternate" href="https://www.example.com/ja/" hreflang="ja" /> <link rel="alternate" href="https://www.example.com/en/" hreflang="en" />
ある1つの言語に対してURLが複数ある場合
ある1つの言語に対してURLが複数ある(地域・国と言語の組み合わせでURL設計されている)場合は、国コード付きの言語コードを指定します。
<link rel="alternate" href="https://www.example.com/jp/ja/" hreflang="ja" /> <link rel="alternate" href="https://www.example.com/gb(*1)/en/" hreflang="en-GB" /> <link rel="alternate" href="https://www.example.com/us/en/" hreflang="en-US" /> <link rel="alternate" href="https://www.example.com/gb/en/(*2)" hreflang="en" />
*1) URLは欧州向けの意味合いでeuのことも多いかな?
*2) enの場合のURLは、地域・国を指定しないURLがあるならそれを指定すればよいと思いますが、なければ、そのサイトにおいて、もっとも重要度の高い地域・国の英語のURLを指定すればよいかと思います。
言語 / 地域・国 選択のページや、自動的にリダイレクトされるトップページの場合は、以下のコードも足します。
<link rel="alternate" href="https://www.example.com/" hreflang="x-default" />
【参考】言語や地域の URL に hreflang を使用する
