現在、ブログのデザインを一新するため隠れて必死に再構築している最中です。
それと、仕事とかイベントとか他いろいろ現実世界で用事が入り乱れてきたので長い記事を書く時間が取れなかったため、今回はシンプルにいきます。
ブログを作るために、私はMovable Type(以下MT)というコンテンツ管理システム(CMS)を使用しています。このMTに使用できるプラグインに「PageBute」というものがあります。これは、ページを分割するためのプラグインで、アーカイブページなど1ページに収まりきらないコンテンツがある場合に使用します。
ただ、このプラグインによって分割されたページはすべて「タイトル」が同じになってしまいます。これはSEO的に問題があり、検索エンジンが「重複タイトル」として判断してしまいます。これでは何かしらペナルティを受けるかもしれません。
そこで、この問題を解決してみたいと思います。
※2018年現在は「WordPress」で運用しております。
Google ウェブマスターツールで重複の判定
「Google ウェブマスターツール」というWebサイト管理者に対して提供されているツールがあります。被リンク数や検索ワードの確認、ページのエラーやマルウェアの検出等を確認できます。Web管理者からすれば大変便利なツールです。
Google ウェブマスターツール
https://www.google.com/webmasters/tools/home?hl=ja
ここの「HTML の改善」に「タイトルタグの重複」という項目があります。ここで問題があるようです。
ここで「title」属性内のワードを調べた結果、いくつも重複したタイトルが発見されたと改善要求を出していることがわかります。ここで特にペナルティを受けるとは明確に記されているわけではありませんが、改善してくださいと言ってくれているので対応してみましょう。
重複の回避
回避方法は管理者のアイディアによって様々あると思います。
ここでは、その中でおそらくもっとも簡単に回避できる方法で対処していきたいと思います。
PageButeの専用タグを使う
「PageBute」は「バージョン3.5.6」を使用します。
静的ページ用ページ分割プラグイン:PageBute
http://www.skyarc.co.jp/engineerblog/entry/2642.html
このプラグインを導入すると、専用のMTタグが利用できるようになります。これらを利用してみます。
私が利用しているブログのテンプレートは、ヘッダー部分がすべてのページで共通となっています。つまり、アーカイブだけでなく、通常の記事やWebページも同じタイトル用変数が適用されます。そうなると、1ページ目に対しては何もしないよう条件分岐しなくてはいけません。
通常の記事で次のページも無いのに「1ページ目」となっても混乱が大きくなるだけなのでこれは避けなくてはいけません。[1/2]みたいに全体のページと現在のページを両方書くことで対応することもできますが、見た目的にあまり好みではないので条件として以下のようなものを目的とします。
- 1ページ目は何も表示しない。
- 分割のないページは何も表示しない。
- 2ページ目以降でタイトルの末尾に「~ページ目」と表示する。
これを実現するためのタグを探してみます。すると、以下のようなタグが目に留まりました。
- <MTIfPageBefore>~</MTIfPageBefore>
前のページが存在する時に、本タグ内に書かれた内容が出力されます。 - <$MTPageCount$>
現在のページ番号(1以上)を出力します。
これを使ってみましょう。
まず、「~ページ目」というのを表示するために「<$MTPageCount$>」を使います。これで現在のページを判定して数値を返してくれます。ただ、これだけだと1ページ目も「1」と表示してしまうので条件分岐をさせます。
1ページ目には無くて、他のページには有るもの。それは「前のページがあるかどうか」です。なので、「<MTIfPageBefore>~</MTIfPageBefore>」を使います。1ページ目には前のページがないため、タグ内の記述は出力されることがありません。しかし、2ページ目以降は最終ページも含めて前のページが必ず存在するので、タグ内の記述が出力されるようになります。
これを踏まえて以下のようにtitleタグ内へ記述します。
<MTIfPageBefore> <$MTPageCount$>ページ目</MTIfPageBefore>- [ブログ名]
「<MTIfPageBefore>~</MTIfPageBefore>」が前にページがあるかどうかを判定します。なければ「<$MTPageCount$>」を出力しません。これで1ページ目を非表示にすることができます。2ページ目以降になると前のページが存在するので「<$MTPageCount$>ページ目」を出力します。
つまり、以下のような感じでタイトルが付きます。
- ページタイトル – [ブログ名]
- ページタイトル 2ページ目 – [ブログ名]
- ページタイトル 3ページ目 – [ブログ名]
これで重複が回避されます。書き込むタグも少なく、すべての条件を満たしたのでこれはかなり簡単な対策かと思われます。他にもプラグイン自体の改造などもありましたが、難易度が高いのでこれくらいが丁度よさそうです。
お困りの方は参考にしていただければ幸いです。
コメント
コメント欄を開く