canonical用のURLをPHPで表示する
canonical(カノニカル)を設定することでURLを正規化することができます。
設定する必要性は↓のページを見ると分かりやすいです。
link rel=”canonical”によるURL正規化タグ——SEOにとって非常に重要な進歩(前編) | Web担当者Forum
しかし、手動で設定するとなると手間がかかるので、PHPで動的に出力してみます。
以下の関数を作ります。
//URLを表示 function display_url( $query = false ) { $url = ( empty( $_SERVER["HTTPS"] ) ? "http://" : "https://" ) . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; if ( !$query ) { //クエリを削除したURL $parse_url = parse_url( $url ); echo $parse_url['scheme'].'://'.$parse_url['host'].$parse_url['path']; }else { //クエリ付きのURL echo $url; } }
ページによっては、http://hoge.com/?item=4 のようにクエリ付きのURLが正しい時もありますが、
SNSからのリンクによって http://hoge.com/?sns=4 のように意図しないURLの時もありますので、引数によって使い分けます。
■クエリを削除したURLの時
<link rel="canonical" href="<?php display_url(); ?>" />
■クエリ付きの時
<link rel="canonical" href="<?php display_url(true); ?>" />