コンテンツを動的に切り替えることができる「Ajaxタブインターフェイス」を使って、サイドバーに並んだタグクラウドや月別アーカイブページへのリンクを「ソース上」取り除こうと思います。

一般的なタブ切り替え機能は、ページ内の各ブロックを表示・非表示で切り替えて実現させるので、CSSを切った状態では全てのリンクが見えますし、検索エンジンには当然ですがリンクとして認識されます。
ページ全体の発リンク数を抑えることが、SEOに効果のある事なのか分かりませんが、Ajax Tab を使えば、少なくとも HTML のソースをすっきりさせることはでき、ページの表示スピードにも多少の良い影響を及ぼすはずです。

Yahoo! JAPAN トップページでも
例えば3年間毎月一つ以上の記事を投稿し、カテゴリーが10個、タグが50個あるブログの場合は、それだけで「96個」のリンクが存在しますが、Ajaxを使えば「13個」にまで減らすことができます。(カテゴリー一覧をページのインライン要素とした場合)
最近の記事とコメントの切り替えなどにも利用できますが、今回は、「カテゴリー一覧」「タグクラウド」「月別アーカイブ」の3つを切り替えるタブコンテンツをサイドバーに設置したいと思います。
Ajax対応のタブスクリプトを用意
jQueryのプラグインとして利用できる「jquery.tabs」もいいですが、単体で動作し、軽量・軽快な Ajax Tabs Content Script を使ってみます。
Ajax Tabs Content Script をダウンロード
http://www.dynamicdrive.com/dynamicindex17/ajaxtabscontent/
ページの中ほどにある「ajaxtabscontent.zip」というリンクです。(現在Ver. 2.2) ここでサンプルを見ることができます。
ajaxtabs.jsの10行目を必要に応じて書き換える
ページ(ファイル)の読み込み中に表示されるアニメーション画像の調整。
デフォルト
<img src='ajaxtabs/loading.gif' /> Requesting content...
例 日本語に変える
<img src='ajaxtabs/loading.gif' /> 読み込んでいます...
例 CSS で画像指定
<p class='loading'>チョトマテクダサイ...</p>
.loading {
padding-left: 20px;
background: url(ajaxtabs/loading.gif) no-repeat 0 50%;
}
アップロード

任意の場所に一式をアップロードし、<head></head> 内にスクリプトとCSSファイルを読み込む。
3~7行目は著作権表記で、この記述をすれば個人・商用に関わらず無償で利用することができます。
<link rel="stylesheet" type="text/css" href="/ajaxtabs/ajaxtabs.css" /> <script type="text/javascript" src="/ajaxtabs/ajaxtabs.js" charset="utf-8"> /*********************************************** * Ajax Tabs Content script v2.2- © Dynamic Drive DHTML code library (www.dynamicdrive.com) * This notice MUST stay intact for legal use * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code ***********************************************/ </script>
Ajaxで読み込むページを作る
-
テーマに page-tags.php というテンプレートを用意し、スラッグを tags としたページを作成。テンプレートに、タグクラウドを表示するコードだけを記述してアップロード。
<?php wp_tag_cloud(); ?>
-
テーマに page-archives.php というテンプレートを用意し、スラッグを archives としたページを作成。テンプレートに、月別アーカイブリストを表示するコードだけを記述してアップロード。
<ul> <?php wp_get_archives(); ?> </ul>
テンプレートは文字コードの指定をしていないので、直接日本語を書くと文字化けするかもしれません。その場合は、php echo を使えば回避できると思います。
/*** echo だけ ***/ <h3><?php echo '月別アーカイブ'; ?></h3> /*** mb_convert_encodingを使う(UTF-8で保存した場合) ***/ <h3><?php $str = "月別アーカイブ"; echo mb_convert_encoding($str,"UTF-8","UTF-8"); ?></h3>
sidebar.php の編集
<!-- ナビゲーションタブ -->
<ul id="tabs" class="shadetabs">
<li><a href="#" rel="#default" class="selected">カテゴリー</a></li>
<li><a href="/tags" rel="countrycontainer nofollow">タグ</a></li>
<li><a href="/archives" rel="countrycontainer nofollow">アーカイブ</a></li>
</ul>
<!-- コンテンツ部分 -->
<div id="tabcontents">
<ul>
<?php wp_list_categories('title_li=&depth=1&use_desc_for_title=0'); ?>
</ul>
</div>
<!-- スクリプト -->
<script type="text/javascript">
var countries=new ddajaxtabs("tabs", "tabcontents")
countries.setpersist(true)
countries.setselectedClassTarget("link")
countries.init()
</script>
-
2、8、15行目
ナビゲーション部分の要素(2行目 ul)と内容を表示する要素(8行目 div)に任意の id をつけ、15行目のscript 内にカンマ区切りでその id を記述する。2行目 class="shadetabs" は、用意されている css で定義されているクラス名。
-
3行目
ページのインライン要素(9~11行)として表示するカテゴリーに、 rel="#default" と class="selected" を記述します。ダウンロードしたサンプルでは href="#" となっていますが、他のスクリプトの影響などで、意図しない挙動になる可能性(ページ内アンカーとして機能)があるため href="javascript:void(0);" にしてもいいかもしれません。
class="selected" を「a」ではなく「li」 につけて機能させたい場合は、17行目の"link" を "linkparent" に変更。
3行目 : <li class="selected"><a href="#" rel="#default">カテゴリー</a></li> 17行目 : countries.setselectedClassTarget("linkparent") -
4、5行目
ajax で読み込むページには rel="countrycontainer" を。これらのページは検索エンジンにインデックスされたくないので、 nofollow を追加し、 robots.txt に Disallow: /tags Disallow: /archives を記述しておきます。また、プラグイン XML Sitemap Generator を利用している場合は、「以下の投稿または固定ページを含めない」にページIDを追加。
-
14~19行目
最後に script を記述。
出来上がり
編集した sidebar.php をアップロードすれば完成です。
ajaxtabs.js はクッキーを利用するので、ページを移動したり再読み込みしても、最後に選択したタブの内容が表示されます。

ページの再利用?
タグクラウドや月別アーカイブ“だけ”を表示するページを作りましたが、せっかくなので他のページに流用。ページでサイトマップを用意して、そこに page-tags.php と page-archives.php をファイルとして include させます。
<div class="page"> <h2>サイトマップ</h2> <h3>タグ</h3> <?php include(TEMPLATEPATH . '/page-tags.php'); ?> <h3>アーカイブ</h3> <ul> <?php include(TEMPLATEPATH . '/page-archives.php'); ?> </ul> </div>
SEO効果のほどは?
最近では、アーカイブへのリンクをドロップダウンにしたり、タグクラウドを表示していないブログも多く見かけますが、Googleのマット・カッツ氏の意見も参考になります。
タグはSEOに効果があるのか 段落まるまるタグで埋め尽くしている場合があるね。時間をかけてタグを書いてるんだろうけど、そういうのを見ると笑っちゃう。必要ないよ。そのタグのキーワードは記事のコンテンツにすでに含まれているからね。タグに入れてもほとんど違わないね。
SEO目的でタグに熱中しようとは思わない。タグを楽しむ人もいるだろうけど、時間の無駄だよ。(リンクを爆発的に増やす現時点で最強の方法 など10記事 より)
タグは、閲覧者にナビゲーションとして提供するものですが、重複コンテンツを生む事もあるので、検索エンジンは重要視していないのかもしれません。
で、効果はあった?
分かりません!










