概要 ▶ みなさんMovable Type使っていますか?早速なのですが、今回は管理しているページの正しいアドレス(URL)を検索エンジンに指示してあげようという話です。検索エンジンに各ページの正しいアドレスを伝えることはSEO上重要です。その際に正しいアドレスでリンクをしてあげることも重要ですが、linkタグのrel="canonical"を利用することでも対応できます。このlinkタ
みなさんMovable Type使っていますか?
早速なのですが、今回は管理しているページの正しいアドレス(URL)を検索エンジンに指示してあげようという話です。
検索エンジンに各ページの正しいアドレスを伝えることはSEO上重要です。
その際に正しいアドレスでリンクをしてあげることも重要ですが、linkタグのrel="canonical"を利用することでも対応できます。
このlinkタグのrel="canonical"はGoogleなどの検索エンジンが、そのページの正しいアドレスが何であるかを指し示す指標として利用されているようです。
特にGoogleはこのlinkタグのrel="canonical"の値をかなり強く利用しているようです(これは今までの経験から)。
今回はMovable Typeでサイト運営する上で、linkタグのrel="canonical"のhref属性にセットするアドレスを正しく入れるためのテンプレートや方法を説明します。
実は単純にテンプレートを作ってしまうと微妙に違ったものがセットされてしまいます…。
方法:MTML(テンプレート)
Movable TypeはMTML(Movable Type Markup Language)というものがあります。それを利用して解決しましょう。
というかこれが普通か(笑)。
早速MTMLで書いてみます。これをテンプレートに書けばOKです。
<mt:If name="main_index"> <$mt:BlogURL setvar="this_url" $> <mt:ElseIf name="page_archive"> <$mt:PagePermalink setvar="this_url" $> <mt:ElseIf name="entry_archive"> <$mt:EntryPermalink setvar="this_url" $> <mt:ElseIf name="archive_index"> <$mt:BlogURL cat="archives.html" setvar="this_url" $> <mt:ElseIf name="category_archive"> <$mt:CategoryArchiveLink setvar="this_url" $> <mt:ElseIf name="datebased_archive"> <$mt:ArchiveLink setvar="this_url"$> </mt:If> <mt:If name="this_url" ne=""> <link rel="canonical" href="<$mt:GetVar name="this_url" regex_replace="/\/$/","/index.html" $>" /> </mt:If>
実際はインデックステンプレートの種類に「archive_index」を指定してあるテンプレートはファイル名の指定ができるので、「<$mt:BlogURL cat="archives.html" setvar="this_url" $>」の「cat="archive.html"」はご利用の状況に合わせて書き直す必要があります。
ざっくりと説明しますが、条件分岐のmt:Ifを利用して「<mt:If name="main_index">」で予約変数(特殊変数)からテンプレートがどれなのかを判定します。
※テンプレートの予約変数についてはMovable Typeの公式ドキュメントをご覧下さい。
そのテンプレートの種類に応じてアドレスを出力しています。
そしてlinkタグのhref属性にセットする前にグローバルモディファイアの「regex_replace」を利用して
regex_replace="/\/$/","/index.html"
と書いていますが、これはMovable Typeが出力するファイル名が「index.html」の場合、テンプレートタグで出力されるファイル名(アドレス)に「index.html」を入れないで出力するためです。
つまり http://dtp.jdash.info/index.html とファイル名を入れて出力して欲しいのに http://dtp.jdash.info/ と出力してしまうのです。
なので最後の文字が「/」で終わるものは強制的に「/index.html」に置き換えを行って、href属性に値をセットしています。
以上です。
注意点は index.html がファイル名として出力されないというMovable Type独特の仕様の部分ですね。
なんか変なindex.htmlが出力されない仕様。
この仕様はどう解決したら良いのか、待て次号!
それでは~ (´▽`)