通常はheadタグに記述するケースがほとんどですが、Response Headerに記載するようにしました。
最初に実際の記載方法です。
header('Link: <https://google.com>; rel="canonical"');
phpの独特な記述方法なのかもしれませんが、canonicalに設定するURLを"Link: <URL>;"のように記述します。それとrel="canonical"も設定するような記述です。
一般的にはhtmlのhead
タグに以下のように記載します。
<head>
...
<link rel=”canonical” href=”https://google.com”/>
...
<head>
canonicalの設定はwordpressでSEO対策として良く出てくるトピックですが、他にも.htaccessで設定することもできます。これは実際には試していないので、割愛させていただきますっ。また試してみる機会が合ったら更新しますっ。
wordpressでこのResponse Headerに登録する方法を紹介しましたが、実は副作用があるようでした。
link: <https://kmc-bunko.com/wp-json/>; rel="https://api.w.org/", <自分のサイトのURL>; rel=shortlink
wordpressは初期状態では、以上のようなLink情報が含まれています。 ここに2つ情報が含まれていて、片方はwordpress apiを利用できることを知らせる情報と、URLを短縮(分かりやすくphpで書き直す)を知らせるような情報が登録されています。
WordPressがheadに挿入する「api.w.org」とは。またその無効化の方法
こちらで詳しい内容が紹介されています。
ですが、一番最初に紹介したcanonicalのResponse Header登録をすると、これらが上書きされてしまいます。実際にREST APIが無効になっているか以下のようなURLで試してみました。
https://自分のWPサイトのドメイン/wp-json/wp/v2/posts
実際はこれで記事の一覧が問題なく取得できていました。
余談ですが、Response HeaderをGUIで見やすく表示できる以下のChromeプラグインがおすすめです。
Advanced REST Client
こちらはResponse Headerも見れますが、APIのレスポンスであるjsonを整形して表示してくれるので、とても便利ですっ、ぜひ。
参考にしたページ:
https://www.searchenginepeople.com/blog/hwoto-canonical-headers.html
https://moz.com/blog/how-to-advanced-relcanonical-http-headers