2008-03-13

MagpieRSSで簡単にRSSを操作

ブログを始めニュースサイト等などで更新情報を配信する手段としてRSSが使われています。皆さんはそれらRSSをどのように活用していますか?
RSSリーダを利用してそのRSSを読むというのが一般的だと思います。既製のRSSリーダを利用して楽しむのも良いですが、PHPを使うとこれらRSSを取得し自分好みにアレンジして表示するということが簡単にできます。

今回紹介するのは、それをPHPで簡単に実現することができるライブラリ「MagpieRSS」です。

MagpieRSSは、GPLで開発されているRSSを解析するライブラリ、いわゆるRSSパーサです。PHPでリモートからRSSを取得して解析、キャッシュを行います。対応しているRSSはRSS 0.9からRSS 1.0とRSS 1.0のモジュールと、RSS 2.0と Atomの一部になります。

MagpieRSSのサイトからMagpieRSSをダウンロードして解凍します。出てきたファイルの中で使用するのは基本的に、 rss_cache.inc、rss_fetch.inc、rss_parse.inc、rss_utils.inc の4つのファイルとextlibディレクトリです。

これらを同じディレクトリ階層におき下記スクリプトを書き保存して実行してください。

<?php
require_once('rss_fetch.inc');
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');

$url = 'http://feeds.feedburner.jp/trans-log';
$rss = fetch_rss($url);
$title = $rss->channel['title'];
echo "<h1>$title</h1>\n";
echo "<dl>\n";
foreach ($rss->items as $item ) {
    $title = $item['title'];
    $link = $item['link'];
    $desc = $item['description'];
    echo "<dt><a href=\"$link\">$title</a></dt>\n";
    echo "<dd>$desc</dd>\n";
}
echo "</dl>\n";
?> 

RSSが読み込まれ整形されて表示されます。流れを簡単に説明すると、fetch_rss()で指定されたURLからRSSを取得、あとは配列にデータが入っているので欲しいものだけ取り出す。それだけです。
ちなみに、そのままでは日本語が文字化けを起こします。そのため、上記スクリプトでも行っていますが、

define('MAGPIE_OUTPUT_ENCODING', 'UTF-8');

として、エンコーディングをUTF-8に変更するのを忘れないでください。
簡単にRSSを取得し自分の好みに操作できるMagpieRSS、ブログに埋め込んだり自作のRSSリーダを作成したり、可能性が広がるのではないでしょうか。
ちなみに、始めにも述べましたがMagpieRSSはGPLです。場合によってはプロジェクト内で使うには制約がきついかもしれません。その辺を十分考慮して使用してください。

MagpieRSSのサイト:http://magpierss.sourceforge.net/

2008-03-12

キーワード出現頻度について

WEBページ内に占める総出現キーワードにおける特定のキーワードの出現回数の割合をキーワード出現頻度といいます。
キーワード出現頻度は以下の計算式で求めることができます。

特定キーワード出現数/総キーワード出現数*100

検索エンジンは特定のキーワードの出現頻度が高いWEBページを、特定のキーワードと関連性が高いWEBページと判断して、特定キーワードで検索された際に上位に表示数する傾向があります。
よってWEBページ内に目標キーワードを多く出現させることにより高いSEO効果が得られます。 ただし、過度にキーワードを埋め込むと検索エンジンにスパムと判定され検索結果に表示されなくなることもあります。

SEO上、キーワード出現頻度を意識する場合は、多すぎず少なすぎないように配置するのが基本になります。

不自然にキーワードを埋め込まず、以下のように自然な文章の中にキーワードを埋め込むよう努力しましょう。

1.代名詞を使わず記述する

代名詞(それ、これ、あれetc)などを使わずに名詞を使用することによりキーワード出現頻度を高める事ができます。

×これを見直すとSEO効果が高いですよ
○キーワード出現頻度を見直すとSEO効果が高いですよ


2.主語を省略せず記述する

主語を省略せずに記述する事により、主語のキーワード出現頻度を高める事ができます。 説明の主旨などが主語に含まれる場合は省略せず記述するようにしましょう。

×見直すとSEO効果が高いですよ
○キーワード出現頻度を見直すとSEO効果が高いですよ


3.見出しなどににキーワードを追加する

説明文中に意図的にキーワードを増やそうとする場合、説明が意味不明な内容になる場合があります。説明文などよりかわ見出しなどの方が自然にキーワードを追加できます。
また、見出しはli要素やh要素に記述される事が多いのでhtml的にもSEO効果が高いと言えす。

×詳細情報
○SEOに関する詳細情報


キーワード出現頻度のまとめ

こつとしては検索エンジンを相手しようとせずに、サイトを訪れた人にWEBサイトの主旨をアピールする気持ちでキーワードを増やすといいと思います。
不自然にキーワードがちりばめられたサイトよりも、自然にキーワードがちりばめられたサイトの方がお客さんも安心してサイトを見る事ができます。
サイトの訪問者は、検索エンジンではなくサイトを訪れた人ということを忘れないようにキーワード出現頻度を変更してみるのもおすすめです。

SEO対策に必要な内的要因と外的要因

SEO対策には2つの視点があると言われています。

内的要因と外的要因と呼ばれるもので、内的要因はWEBサイトその物が検索エンジンに与える要因、外的要因とは対象のWEBサイト以外(リンク先のWEBサイトやリンク元のWEBサイト、検索エンジンetc)が検索エンジンに与える要因になります。

内的要因と外的要因の代表的なSEO手法

内部要因
  1. 最適化された(x)html
  2. キーワード出現頻度
  3. キーワード突出度
  4. サイト更新頻度
  5. キーワード近接度

外部要因
  1. リンクポピュラリティ
  2. クリックポピュラリティ

内部要因はサイト運営者なら対策をとる事が出来るのですぐに効果的なSEO効果が期待できます。

外的要因はコントロールがしづらく、すぐにSEO効果が現れません。
内部要因だけで満足せずに長期的に外部要因を獲得することにより、長期的でより効果的なSEO効果が上がります。

SEOとは?

SEOとは(検索エンジン最適化)の略でgoogleやyahoo、msnなどの検索エンジンのキーワード検索で上位に表示する技術のことです。

googleやyahoo、msnなどの検索エンジンは、エンドユーザーが検索を行った際に、良いサイトを上位に表示しようとします。
検索エンジンはコンピューターなので、良いサイトという判断を様々な観点(検索アルゴリズム)から判断します。

有名な検索アルゴリズムにはGoogleで使用されているPageRankアルゴリズムというものがあります。
PageRankアルゴリズムとは『多くのサイトからリンクが張られているのは良いサイト』『良いサイトからリンクが張られているのは良いサイト』というわかりやすいアルゴリズムになります。
PageRankアルゴリズムで良いサイトと評価されるためには、数多くのサイトからリンクをはってもらう必要があります。またそのリンクをはってもらうサイトがPageRankアルゴリズムで良いサイトと判断されているとより高く評価されることになります。

上記のように検索エンジンで上位に表示されることを目的として何か工夫をすることがSEOになります。

検索エンジンの検索アルゴリズムの数は非常に多くて頻繁に変更されており、各検索エンジン会社ごとに違います。
それに加え検索アルゴリズムの内容は公開されておらず、どのようにしたら検索エンジンで上位に表示されるという正確な情報はありません。
正確な情報がなければどうやってSEOを行うのかと疑問にお思いの人も多いと思いますが、いくつかの検索エンジンアルゴリズムに関してはすでに解析されております。

そもそもSEOは、検索エンジンで上位に表示する為の手段ですが、目的は違います。SEOの目的は、検索エンジンで上位に表示することだけでないはずです。

検索エンジンからWEBサイトへユーザーをナビゲートする流れは以下のようになります。

  1. 検索エンジンでキーワードを検索する
  2. 検索結果をクリックしてWEBサイトに訪れてもらう
  3. WEBサイト上で目的を達成する

SEOが担う役割は(2)になります。 検索エンジンからウェブサイトに訪れるユーザーを増やすことです。
しかし、最終的な目的は(3)になるはずです。

WEBサイト運営者にはSEOの目的について誤解されてる方が多くいます。
SEOは売り上げアップの一つの手段であって、SEO対策だけでWEBサイトの売り上げが上がることはありません。
SEO対策を行う前に『本当に売れるサイト』とは何か?
もう一度考えてみる必要がありそうですね。

2008-03-10

IE7 を含むモダンブラウザ向けの CSS ハックまとめ

Easy CSS hacks for IE7 - Nano See, Nano Do で紹介されていたハック比較的シンプルかもです。
想定ブラウザは下記のとおり。

ブラウザごとのハック

全てのサンプルは body 要素を指定の対象としている。

バージョン6以下のIEにのみ適用
* html body

バージョン7のIEにのみ適用
*+html body

バージョン7を含む全てのIEにのみ適用
*+html body, * html body

IE7を含むモダンブラウザにのみ適用(バージョン6以下のIEを除外)
html>body

IE7を除くモダンブラウザにのみ適用
html>/**/body

上記IE7向けのハックは、あくまでbeta2でのものですので正式版では使えなくなっている可能性もあります。

その他、ブラウザ振り分けに使えそうなハック

対象要素に属性があれば、属性セレクタを使ったハックなんかも使える。例えば、下記のような要素を対象としてみる。

<p class="foo" id="bar">...</p>

IE6 以下を弾きたければ、CSS3の属性セレクタを使って p[id$="bar"]{...} とすれば良いかもしれない。さらに IE7 も弾きたければ、否定擬似クラスを使って p[id$="bar"]:not([class="hoge"]){...} とか。
ただ、これだとOpera9も弾かれてしまうので、CSS3のMedia Queries使って@media screen and (min-width: 0) {p[id$="bar"]{...}} って感じで上書きさせれば大丈夫。

@cc規則でIEとその他のユーザーエージェントのCSSを振り分ける

IEとその他のユーザーエージェントで異なるCSSの規則を適用させるためには、IEの独自仕様である条件付きコメントを利用する方法、CSSのバグや実装状況を逆手にとった方法、サーバサイドで処理する方法など多くの方法がありますが、記述がシンプルな@cc規則を利用する例について紹介します。

@cc規則はIEの独自仕様で、IEやその他のユーザーエージェント、IEのバージョンによって適用させたいCSSの規則集合を分岐させるために使います。@cc規則は次のように記述します。

@cc 条件
{
  規則集合
}

または、次のようにbeginとendを使用して記述します。

@cc 条件 begin;
規則集合
@cc end;

前者の記述方法は、IE以外のユーザーエージェントで不具合が起きる可能性もあるため、後者の記述方法が安全です。条件にはIEの条件付きコメントと同じものが利用できます。例えば、body要素の背景色をIE6以下では赤色、IE7以上では青色、IE以外では緑色にする場合、CSSは次のように記述します。

/* IE 6以下 */
@cc lte IE 6 begin;
body
{
  color: red;
}
@cc end;

/* IE 7以上 */
@cc gte IE 7 begin;
body
{
  color: blue;
}
@cc end;

/* IE以外 */
@cc !IE begin;
body
{
  color: green;
}
@cc end;

IE以外のユーザーエージェントでは@cc規則は無視されます。CSSの規則集合は、そのspecificityが同じ場合には原則として後から読み込まれたものが優先されるので、IE以外のユーザーエージェント用の規則集合は一番最後に記述するようにします。@import規則を併用して、読み込むCSSをIEとその他のユーザーエージェントで振り分けるようにするとよりシンプルになるでしょう。

これはAbout Conditional CommentsのCommunity Contentで提案されていた方法ですが、あくまでも提案ということなので実際には機能しません。IEを排除するには未対応のセレクタを使うのが一番スマートで安全です。


CSS -> WEBブラウザの識別と振り分け

ちょっと古いブラウザに対する識別と振分けの対策です。

1.Netscape 4.xにCSSを適用しないようにする

Netscape 4.xに外部スタイルシートを読み込ませないようにするには、HTMLのlink要素にmedia属性を指定し、「screen」と一致しない値を指定します。つまり、値として「all」などの他の値を指定するか、「screen,print」などのように複数の値を指定します。

Netscape 4.xの初期バージョンで@importが実行されると、強制終了したりフリーズしたりすることが確認されているため、HTML側で最初にはじいておくのが原則。

<link href="example.css" rel="stylesheet" type="text/css" media="screen,print" />

2.IE 4にCSSを適用しないようにする

IE 4(Windows版・Mac版とも)にCSSを適用しないようにするには、CSSの@importを利用します。@importで読み込む外部スタイルシートのURLは、url( )形式、または単純に引用符(" ")で囲う文字列形式のいずれかで指定できますが、IE 4はurl( )形式にしか対応していません。したがって、@importで指定するURLを文字列形式で指定すると、CSSが適用されなくなります。

@import "example.css";

3.Mac版IE 4.5にCSSを適用しないようにする

Mac版のIE 4.5にCSSを適用しない場合も、CSSの@importを利用します。Mac版のIE 4.5は、読み込む外部スタイルシートのURLをurl( )形式で指定する際に、URL部分が二重引用符で囲われていると、外部スタイルシートを読み込まなくなります。よって、@importで指定するURLを url("~")のように指定すると、CSSが適用されなくなります。

@import url("example.css");

4.特定のWEBブラウザに外部スタイルシートを読み込ませる

以下に示すような書式を使って指定された外部スタイルシートは、それぞれ特定のWEBブラウザにしか読み込まれません。これを利用して、通常の外部スタイルシートを読み込んでいる部分の下で、特定のWEBブラウザ専用の外部スタイルシートを読み込ませておけば、そのWEBブラウザで表示の問題があった場合に、その専用ファイルの中で必要なプロパティの値を上書きして修正することができます。

Windows版IE 5にだけ外部CSSを読み込ませるためのCSSソース

@media tty {
i{content:"¥";/*" "*/}}; @import 'example.css';{;}/*";}
}/* */

Windows版IE 5.5にだけ外部CSSを読み込ませるためのCSSソース

@media tty {
i{content:"¥";/*" "*/}}@m; @import 'example.css';/*";}
}/* */

Windows版IE 5と5.5にだけ外部CSSを読み込ませるためのCSSソース

@media tty {
i{content:"¥";/*" "*/}} @import 'example.css';/*";}
}/* */

Mac版IE 5.xにだけ外部CSSを読み込ませるためのCSSソース

/*¥*//*/
@import "example.css";
/**/

AddThisウィジェット

ウェブサーフィン中にいくつかのブログでAddThisを目にするようになりましたね。ブログオーナーが、各ブログ記事の終わりに多数のブックマークオプションを表示できるようにするシンプルで無料のウィジェットだ(RSS購読を簡単に出来るようにするRSSリーダーウィジェットもある)。ブログ読者は記事をDigg、Del.icio.us、 Stumbleupon、Google Bookmarks、Bluedotその他のサービスにシングルクリックで簡単にブックマーク可能。一例として、本記事の終わりにAddThisボタンを貼付けている。

AddThisウィジェットをサイトに追加したいという場合、
カスタム化ツールはここ

AddThisは、かなり浸透してきたので、ビジネスモデルのコアを形成できるような非常に興味深いデータを収集しつつある。

Feedfetcher-Google

Feedfetcher - Googleブログ検索のロボット

Googleのブログ検索のベータ版が公開されているが、専用のロボットが巡回しているようだ。


Feedfetcher-Google

ユーザーエージェントは、Feedfetcher-Google; (+http://www.google.com/feedfetcher.html)。

Feedfetcherの解説ページは、ユーザーエージェントにもある、Google Information for Webmasters
GETしているのは、もちろんRSSですよ。

2008-03-09

ブラウザごとにCSSを振り分ける方法

htmlもCSSもきれいに書いてるつもりでも、最後にブラウザチェックしてみるとブラウザごとに見え方が微妙に違って最後の調整で意外と時間をかかってしまうことがあります。

Internet Explorer6.0とFirefoxでは、きれいに見えるのに、Internet Explorer7.0でみるとズレてたり、Safariでもズレている・・・

しかも、修正していくにつれてどんどんズレていく・・・
こっちのブラウザにあわせたら、あっちのブラウザでズレていく・・・
なんて経験ございませんかぁ?

っというわけで、今回はブラウザごとにCSSを書く方法をご紹介します。

例えば"example"って名前付けたクラスにCSSを書くと

.example {
     margin: 0;
     padding: 0;
     font-size: 12px;
     color: #333;
}

↑例えば上のように書きますよね
これを・・・

1. Internet Explorer6.0に反映させるCSS
* html .example {
     margin: 0;
     padding: 0;
     font-size: 12px;
     color: #333;
}

↑のように書けば、Internet Explorer6.0に反映させられます。

2. Internet Explorer7.0に反映させるCSS
*:first-child+html .example {
     margin: 0;
     padding: 0;
     font-size: 12px;
     color: #333;
}

↑のように書けば、Internet Explorer7.0にだけ反映させられます。

3. Firefoxに反映させるCSS
html>body .example {
     margin: 0;
     padding: 0;
     font-size: 12px;
     color: #333;
}

↑のように書けば、Firefoxに反映させられます。

4. Safari & Operaに反映させるCSS
html:first-child .example {
     margin: 0;
     padding: 0;
     font-size: 12px;
     color: #333;
}

↑のように書けば、Safari & Operaに反映させられます。

このCSSを全部書けばそれぞれのブラウザごとにだけ、CSSが反映するのでブラウザごとに修正できます。

2008-03-07

やるべきことをやるための7つのステップ

  1. 立ち上がって水を一杯飲む
  2. 求められているゴールを明確にする
  3. ゴールに至るまでのプロセスをできるだけ分割する(最低4分割)
  4. 最初のプロセスをさらに2つ以上に分解する
  5. 最初のプロセスを終わらせるまでの時間を見積もる
  6. タイマーをセットする
  7. スタートする

やるべきことになかなか取りかかれず、無為に時間を過ごしてしまったり、不本意ながらほかのことに手を出してしまったりと、先送り問題はなかなか撲滅しがたいものですが、上記の7つのステップを踏めば、少なくともこの悩みは半減させることができるでしょう。

1.立ち上がって水を一杯飲む

第1のステップは、頭をスッキリさせること。そのためには歩いて水を飲むのが最善です。コーヒーですと、いれるのに時間がかかります。グズグズ悩んでいるときというのは、混乱していることが多いので、まず頭をスッキリさせる必要があるのです。

2.求められているゴールを明確にする

頭がスッキリしたところで第2ステップ。目標をはっきりさせましょう。これから取りかかる仕事では、結局何が求められているのか? 具体的にどんな成果を実現すれば、達成したと言えるのか? 悩んでいるときというのは不思議と、そんな基本的なことをあいまいにしているのです。

3.ゴールに至るまでのプロセスをできるだけ分割する(最低4分割)

しかし、目標設定しただけで、やる気になれるものではありません。第3のステップは、仕事を細切れにすること。カタマリとしてとらえると巨大すぎて手のつけられないタスクでも、細かく分けることで対処可能になります。小分けにすれば1つ1つのプロセスは、さほど巨大でないことが分かります。

4.最初のプロセスをさらに2つ以上に分解する

第4のステップは、最初のプロセスをさらに半分に分けることです。そうできる余地がなければこのステップは飛ばしてもいいのですが、とにかく取りかかるハードルをとことんまで下げることが、先送りを防止し、面倒な仕事に取りかかるコツなのです。

5.最初のプロセスを終わらせるまでの時間を見積もる

そして第5ステップで、かかる時間を見積もります。恐らくこの段階まで来れば、最初にとりかかるタスクはとても小さなタスクになっているでしょうから、時間の見積もりも容易でしょう。10~15分といったところがせいぜいのはずです。最初に取り組むタスクが30分以上かかりそうなら、まだ分解の余地があります。

6.タイマーをセットする

第6のステップは、タイマーをセットすることです。せっかく時間を見積もったのですから、その時間内に終わらせることができるかどうかを、計測しない手はありません。これをすれば時間を無駄に使わなくなりますから、仕事にゲーム性をもたせられます。

7.スタートする

以上がすんだら最終の第7ステップ。さっそく始めましょう。

GoogleAnalytics用語一覧

GoogleAnalyticsで使用される用語一覧のまとめ

用語一覧

▼アクセス解析の基本要素

ページ(コンテンツ)
ページとは、解析可能なファイルまたはコンテンツのことを指します。

期間(特定期間)
アクセス解析をするデータの期間を指します。アクセス解析画面右上の日付けにて、期間を変更することが出来ます。

ページビュー
ページビューとは、ページが表示された回数を指します。同一のユーザーが、サイト内を移動し、複数のページを閲覧した場合も、それぞれが1ページビューとして数えられます。

平均ページビュー
期間内におけるユーザーの平均的なページ閲覧数を指します。

セッション
セッションとは、ユーザーがサイトを訪れてから、離脱するまでの一連の流れをまとめた単位です。
特定期間(初期値30分)内に、ユーザーが次の行動を起こさなかった場合、離脱したとみなされます。

  1. ページを開いたまま30分以上経過・・・セッション終了(セッション数:1)
  2. 別のサイトに移動後、30分以内に、戻ってきた場合・・・セッション継続(セッション数:1)
  3. 別のサイトに、移動後、30分以上経過後、戻ってきた場合・・・セッション数:2


ユニークユーザー
ユニークユーザーとは、特定の期間内に1度以上サイトへ訪問した人数を指します。選択中のレポートの期間(上部カレンダーで期間を、変更できます。)内に 、同じユーザーが、何度サイトを訪れても、ユニークユーザー数は1と、数えられます。

新規セッション率
新規セッション率とは、そのレポートの期間内にそのサイトに初めて訪問したユニークユーザーの割合を指します。

リピートセッション数
リピートセッション数とは、そのレポートの期間内にそのサイトに2度以上訪問したユニークユーザーの数のを指します。

▼ユーザーサマリー(訪問者属性)

閲覧開始ページ
閲覧開始ページとは、サイトを訪れたユーザーが最初に閲覧したページを指します。

離脱ページ
離脱ページとは、サイトを訪れたユーザーが最後に閲覧したページを指します。

平均サイト滞在時間
ユーザーがサイトを訪れてから、閲覧を終えるまでの平均的な時間を指します。

直帰率
サイトを訪れたユーザーが、サイト内の他のページに移動せず、閲覧を辞めてしまった確率を指します。(訪問後、1ページのみ閲覧)

ブラウザ
インターネットを閲覧しているアプリケーション(InternetExploler・Firefox・Opera等)を指します。

▼トラフィックサマリー

ノーリファラー
リファラーとは、そのページにアクセスさせるに至った元のページのURLのことを指します。ノーリファラーとは、そのページにアクセスさせた元のページが無い、 つまりお気に入りや、ブラウザのツールバーへの、URL直接から、サイトを訪れた場合を指します。

参照サイト(外部リファラー)
ユーザーが他サイトから、自サイトへアクセスした場合、他サイトが参照サイトとなります。

検索エンジン (検索リファラー)
検索エンジンからのアクセスがあった場合を指します。

参照元
参照元とは、自サイト内の特定のページへアクセスさせた元のページを指します。

▼コンテンツサマリー

ナビゲーションサマリー
ナビゲーションサマリーでは、特定のページの、参照元と、移動先のページのデータを示します。

ページ推移 ページ推移とは、特定のページを閲覧した後のユーザーが、どのようにページを移動して行ったのかを示します。

▼コンバージジョンサマリー

コンバージョン
コンバージョンとは、目標を達成した訪問者数を指します。通常、商品の成約や、会員登録、資料請求の完了画面を、達成ページに設定し、コンバージョンを計ります。

コンバージョン率
期間内のユーザーのうち、コンバージョンに繋がったユーザー数の割合です。

コンバージョン数
期間内のユーザーのうち、コンバージョンに繋がったユーザーの数です。

目標値
コンバージョン達成時の、売り上げ等を指定します。e-コマースの場合、実際の購入金額を指定することも可能です。

コンバージョンバリュー
目標値×コンバージョン数で、算出されます。


Web標準への準拠やJIS対応はSEOの効果に関係あるのか

ウェブの標準化団体であるW3Cが定めている文法仕様に基づいたサイト構築は、SEOを行う上で重要な要素です。

Web標準に準拠したサイトは文書構造と視覚構造が分離されます。文書構造(HTMLファイル)ではページの見出し付けなどによる論理構造化を行い、視覚構造(CSS)ではデザインなどの装飾を表現するため、HTMLの文書構造が、論文のように情報が整理された状態となります。検索エンジンはこのように情報が整理された文書を評価するため、Web標準に準拠したサイト構築はSEOにおいて重要な要素だと言えるでしょう。

一方、ウェブコンテンツJIS(JIS X 8341-3)とは、障害者や高齢者を含めた誰もが利用しやすい項目をまとめた規格のことを指します。これはウェブコンテンツのアクセシビリティを高めることを目的とした規格ですが、「ページのタイトルには利用者がページの内容を識別できる名称を付ける」などSEOにおける重要な要素と重なる項目もあります。

Web標準やウェブコンテンツJISに対応するということは、ユーザーにも検索エンジンにも情報を適切に伝達することにつながるので、SEOにおいても好影響を与えると言ってよいでしょう。

2008-03-05

robots.txt について

Baiduspider は、robots (または spider)と呼ばれるプログラムが自動的にインターネットのサイトにアクセスし、ページの情報をクローリング(収集)しています。サイトに robots.txt というテキストファイルを作成し、このファイルに検索エンジンにクローリングされたくないサイトの部分を明記すると、検索エンジンは該当部分の内容をクローリングしないようにします。また、robots.txt の crawl-delay フィールドにより、Baiduspider のクローリングの頻度を制限する事が可能です。


robots.txt の置き場所

robots.txt はウェブサイトのルートディレクトリに配置します。
例: robots はサイト(例えば http://www.example.jp ) にアクセスした際、まず http://www.example.jp/robots.txt というファイルが存在するかをチェックします。このファイルが存在した場合、ファイルの内容によりアクセス権限を特定します。

サイトの URL 対応する robots.txt の URL
http://www.w3.org/ http://www.w3.org/robots.txt
http://www.w3.org:80/ http://www.w3.org:80/robots.txt
http://www.w3.org:1234/ http://www.w3.org:1234/robots.txt
http://w3.org/ http://w3.org/robots.txt

robots.txt ファイルのフォーマット

「robots.txt」 ファイルには、1つまたは複数のレコードがあります。このレコードは空行によって分けられています ( cr 、cr/nl 、nl が終了フラグとなります)。レコードのフォーマットは下記のとおりです。

"<field>:<optionalspace><value><optionalspace>"

"#" を利用してコメントアウトにすることが可能です。レコードは、1行または複数行の User-Agent で始まり、後ろは複数のdisallow 行、および1行のcrawl-delayとなります。
詳細は下記の通りです。


User-Agent :

このフィールドは robots (または spider ) の名前を表記します。「robots.txt」 に、複数の User-Agent レコードがあると、複数の robots が制限されているということです。そのため、User-Agent レコードが最低1行必須となります。もし、このフィールドの値が*に設定されていた場合、すべての robots に対して有効となります。 " robots.txt " に、" User-Agent:* " のようなレコードを複数行にしてはいけません。


disallow :

このフィールドはアクセスを禁止する URL を表記します。この URL は完全な URL でも、URL の一部でも可能です。すべての disallow で始まる URL が robots にアクセスされなくなります。例えば、" disallow:/help " は、/help.html および /help/index.html に対し、アクセスを禁止することができます。

「disallow:/help/」 は、/help.html にアクセスができる一方、/help/index.html にアクセスできません。disallow レコードのいずれかが空の場合、サイトの内容全部にアクセスすることが可能です。

「robots.txt」 ファイルに、disallow レコードが最低1行必須となります。もし 「robots.txt」 の内容が空白の場合、すべての検索エンジンの robots に対し、アクセスを許可します。


crawl-delay :

もし spider のアクセスが多くなりすぎた場合、robots.txt に crawl-delay を利用して、spider のアクセス頻度を制限できます。crawl-delay は、spider の連続2回のアクセスの最短の間隔を表記します。例えば、"crawl-delay:5" と表記した際は、サイトに対しアクセス最短の間隔が5秒となります。


robots.txt ファイルの用法例
例1. 全ての内容に対し、全ての検索エンジンを禁止 user-agent: *
disallow: /
例2. 全ての検索エンジンを許可 (もしくは空ファイル " /robots.txt " を作成) user-agent: *
disallow:
例3. 特定の検索エンジンを禁止 user-agent: badbot
disallow: /
例4. 特定の検索エンジンを許可 user-agent: baiduspider
disallow:
user-agent: *
disallow: /
例5. 特定の検索エンジンのアクセス頻度を制限 user-agent: baiduspider
disallow: /
crawl-delay:5
例6.簡単な例
このサンプルでは、サイトの3つのディレクトリに対し、検索エンジンを制限します(つまり、検索エンジンは3つのディレクトリに対してアクセスをしません)。
注意すべきことは、ディレクトリごとに記述が必要となります。 “disallow: /cgi-bin/ /tmp/ ” の形にしないようにします。
user-agent: 後ろの * は、“ any robot ” という意味です。なので、このファイルに “ disallow: /tmp/ * ” または “ disallow:*.gif ” のような書き方は禁止されています。
crawl-delay:この値は連続2回アクセスの最短の時間間隔を表しています。
user-agent: *
disallow: /cgi-bin/
disallow: /tmp/

disallow:
/~joe/
crawl-delay:5

metaタグを使ったアクセス制限について

metaタグを利用して、ウェブサイトの情報収集を自動的に行うデータ収集プログラム(Baiduspider)からのアクセスを制御することができます。具体的な設定方法は http://www.robotstxt.org/meta.html をご参照ください。

  1. 全てのデータ収集プログラムを拒否する場合:
    <meta name="robots" content="noindex, nofollow">
    <meta name="robots" content="none">
  2. Baiduspaider のみを拒否する場合:
    <meta name="baiduspider" content="noindex, nofollow">
    <meta name="baiduspider" content="none">
  3. ページ内のリンクへのアクセスを拒否する場合
    <meta name="baiduspider" content="nofollow">
参考サイト:http://help.baidu.jp/system/04.html#on

position:fixedがIE6で有効にならない問題について

position:fixed

Mozilla,Opera7ではきちんと動作しますが、IE6では無視されてしまうようです。絶対配置すらされませんので表示はかなり崩れます。
絶対配置されない問題を解決するには、スタイルを以下のように記述する。

.example{
     position:fixed!important; /* important -> Mozilla,Operaに対して優先順位を上げて固定配置 */
     position: absolute; /* Internet Explorer 用に絶対位置配置 */
     /* 後はボックスの位置指定をすればOK */
     top:0;
     left:0;
     right:0;
     bottom:0;
}

上記のようにするとMozilla,Operaなどのきちんと position:fixed を解釈できるブラウザは要素を固定配置し、IEは要素を絶対配置します。
スクロールしなければ見た目はほぼ等しくなるはず。

参考サイト:Fixed Positioning For Internet Explorer On Windows

CSSでヘッダーの固定方法(上部擬似フレーム)について

CSSでのヘッダー固定にはHTMLのバージョンに注意

「HTML 4.01 Transitional」で「loose.dtd」は指定しないで下さい。
「loose.dtdを指定すると疑似フレームにはならずレイアウトが崩れます。
必ず<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">で宣言してください。

 html {
    width:100%; /* 表示をウィンドウ幅一杯にする */
    margin:0; /* 同じ理由 */
    overflow:auto; /* スクロールバーを隠す */
 }

 body {
    width:100%;  /* 幅一杯にする */
    margin:0;
    height:100%;
    overflow:auto;
 }

 div.header {
    /* 上部固定配置したい要素 */
    /* 前記事説明の方法で絶対位置指定配置する */
 }

このように記述することで、一応IEで擬似フレームが使えます。
しかし、この方法だと、Mozillaでスクロールバーが全く表示されません。
これは、html{oveflow:auto;} が原因で起きているようです。
他は問題なさそうなので、この部分だけをIEのみに適応すればよいわけです。

コメントアウトを使ってIEのみにスタイルを適用する
 <!--[if IE 6]>
 このコメントは、IE6の場合にコメントとして扱われない。
 <![endif]-->

上のコメントを用いて、IE用の外部スタイルシートへのlink要素を作るなりスタイルを直接記述するなりすればOK。

2008-03-01

SEO対策においてマルチドメインでの運営かそれともサブドメインがいいのか?

SEO対策にはマルチドメインがいいのかそれともサブドメイン?

検索エンジン対策的に考えて、コンテンツをマルチドメインで運営するかそれともサブドメインがいいのか検討してみた。ネットで調べてみると意見は分かれてるようです・・・

私の結論としては

特定のキーワード(例えば「特性要因図」)の表示順位を上がることを意識した記事を書くとします。記事をPublishして数日たつと、Googleの検索結果の1ページ目ないしは2ページ目に表示されるようになります。しかし、それからさらに数週間たつと、表示順位が突然下がる場合があります。100位まで探しても見つからないくらいに。
何が起こったのか? BlogでのSEO対策は効果が長続きしないのか?
そうではありません。
実はBlogでの表示順位がそのままwwwのほうに引き継がれるのです。 例えば、下の表の実例のように。

例1:キーワード=ブランド マーケティング
ドメイン 2005/4/16 2005/6/11
marketing.mitsue.co.jp 14位 100位圏外
www.mitsue.co.jp 100位圏外 14位

例2:キーワード=ブランド ポジショニング
ドメイン 2005/4/27 2005/6/11
marketing.mitsue.co.jp 2位 13位
www.mitsue.co.jp 45位 1位

この引き継ぎ現象はwwwのほうに、同様のキーワードを含むページが存在しなければ起こりません。 こうしたサブドメインとwwwドメイン間のgoogle表示順位の変化は、おそらく、Googleがどういう単位でサイトを1つのものと認識しているかに関わるものなのでしょう。その意味で、こうした順位変化は、サブドメインがBlogであるかないかに関わらず起こりえるものだと思います。

SEO対策というと何かと外部サイトからのリンクポピュラリティを話題にしがちです。 しかし、上に見てきたサブドメインの例をみると、コントロールの利かない外部サイトからのリンクをどう増やすかに頭を悩ませるより、はるかに現実的なコントロールが可能なサブドメインを使ったBlogサイトなどで上手にSEO効果をあげることを考えるほうが得策なのは一目瞭然です。

ようするに、

  1. Web標準に準拠したマシーンリーダブルな(X)HTMLソースが書かれていること
  2. 情報内容に従った適切な情報設計、ディレクトリ構成が成されていること
  3. 適切なリンク構造が保たれていること
  4. ターゲットユーザーが必要とするコンテンツがきちんと掲載されていること

といった形で、ちゃんとしたWebサイトが作られていれば、リンクポピュラリティやそれに多くを依存するサイトランクをそれほど意識しなくても、十分に戦えるSEO対策は可能なのです。特定キーワードの表示順位を上げることばかりを考えている方は、SEO対策とは何かをもう一度しっかり見直してみるべきです。


Bookmark

AddThis Social Bookmark Button