次の方法で共有



September 2009

Volume 24 Number 09

すてきな ASP.NET - ASP.NET 4.0、Visual Studio 2010、および IIS7 による検索エンジンの最適化

Scott Allen | September 2009

サンプル コードのダウンロード

パブリック Web サイトを持っている人であれば、サイトの訪問者を増やすのに検索エンジンが重要な役割を担っていることはご存じでしょう。サイトが、検索エンジンで認識され、検索結果で高い順位を得ることが重要です。順位が高いほど、より多くの訪問者を獲得できます。つまり、より多くの購買顧客と高い広告収入を得ることができます。検索エンジンの最適化 (SEO) 対策とは、検索結果でより高い順位を得るためにサイトを調整する手法です。この記事では、最新のマイクロソフト Web テクノロジを使用するときに役立つ SEO 対策について説明します。

SEO の基礎

検索エンジンで、サイトの相対的な順位を出す際に作用する要因は多数ありますが、サイトの所有者がコントロールできない重要な要因がいくつかあります。たとえば、検索エンジンでは、インバウンド リンクが好ましいものだと見なされるのはご存じでしょう。インバウンド リンクとは、他のドメインから自分のドメインに向かって貼られたハイパーリンクのことです。検索エンジンでは、あるサイトへのインバウンド リンクを多数検出すると、そのサイトには興味深いコンテンツや重要なコンテンツが含まれていると見なされ、検索結果の順位が高くなります。SEO コミュニティでは、この現象を "リンク ジュース" または "リンク ラブ" という専門用語で呼んでいます。"リンク ジュース" が多いほど、検索結果の上位に表示されます。

サイトの内容が興味深いものなら、他のサイトからリンクが貼られるのは当然の成り行きです。Visual Studio には、"サイトをおもしろくする" というようなボタンは用意されていないので、リンクが貼られるのに値するコンテンツを提供するための努力をする必要はあります。

すてきなコンテンツが準備できたら、検索エンジンでコンテンツが検出され、処理されるようにする必要があります。Bing.com や Google などの検索エンジンで使用されている詳細なアルゴリズムはわかりません。しかし、多くの検索エンジンでは、検索順位を上げるのに役立つデザインやコンテンツに関するガイドラインが提供されています。また、インターネット コミュニティには、実験や試行錯誤から得た膨大な量の知識が蓄積されています。

検索エンジンと同じ思考回路を持つことが重要です。検索エンジンでは、スクリプトを実行したり、サイトで使用している画像の形を認識したりしません。代わりに、系統的にリンクを辿って、HTML で記述されたコンテンツの解析、インデックス作成、および順位付けを行います。検索エンジンと同じように考えるには、HTML に着目する必要があります。

軽量で有効な HTML

Visual Studio には、デスクトップと Web の両方において WYSIWYG 開発の長い歴史があります。Web フォーム デザイナーを使用すると、デザイン サーフェイスにサーバー コントロールをドラッグ アンド ドロップして、[プロパティ] ウィンドウでコントロールの値を設定できます。そのため、HTML を記述しなくても簡単に Web ページを作成できます。ただし、HTML に着目する場合は、ソース ビューで作業をすることをお勧めします。Visual Studio 2010 では、速度と正確さを維持しながら、ソース ビューで作業を進められるという朗報があります。

Visual Studio 2010 には、一般的な HTML タグやサーバー側のコントロールを作成する際に使用できる多数の HTML の IntelliSense コード スニペットが組み込まれる予定です。これにより、最小限のキー入力操作で作業を進められるようになります。たとえば、.aspx ファイルをソース ビューで表示しているときには、「img」と入力して、Tab キーを押すと、図 1 のようなマークアップが生成されます。たった 4 回のキー操作で、入力しなければならない 20 文字以上のデータを入力できます。

図 1 で、src 属性と alt 属性の値が強調表示されていることに注目してください。コード スニペットを使用すると、強調表示された箇所の間を Tab キーで移動し、値を入力して既定値を上書きできます。この機能は、値を入力すべき場所に移動して、手動で既存の値を削除するという作業を省略できる生産性向上機能です。

Visual Studio 2010 では、ASP.NET Web フォームと ASP.NET MVC プロジェクトのどちらでも、HTML スニペットを使用して、ActionLinks や XHTML DOCTYPE 宣言など、あらゆるものを作成できるようになります。スニペットは、Visual Studio 2005 で導入されたスニペット エンジンをベースとしており、拡張とカスタマイズが可能です。スニペットの詳細については、Lorenzo Minore が執筆した MSDN Magazine の記事 (msdn.microsoft.com/magazine/cc188694.aspx) を参照してください。


図 2 検証の設定

検証

検索エンジンによって、サイトのインデックスが作成されるようにするには、有効な HTML を記述することが非常に重要です。Web ブラウザーは寛大で、適切な HTML コードを記述していないページでも、できる限り表示しようとします。しかし、検索エンジンでは、無効な HTML を検出すると、重要なコンテンツのインデックス作成を省略したり、ページ全体のインデックス作成を拒否したりすることがあります。

HTML の仕様には、複数のバージョンがありますが、アプリケーションで生成する Web ページには、DOCTYPE 要素が含まれている必要があります。DOCTYPE 要素では、ページで使用している HTML のバージョンを指定します。Web ブラウザー、検索エンジン、および他のツールでは、DOCTYPE 要素を調べて、マークアップの解釈方法を特定しています。Visual Studio では、新しい Web フォーム ページとマスター ページを作成すると、DOCTYPE 要素が適切な場所に配置されます。既定の DOCTYPE 要素 (次のコード スニペット参照) では、このページが XHTML 1.0 の仕様に準拠していることを明示しています。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

HTML の各仕様の詳細な違いを把握する必要はありませんが、ページがどのバージョンの DOCTYPE に準拠しているかについては把握している必要があります。Visual Studio では、Visual Studio 2005 で HTML の検証機能が導入されており、それ以降のリリースでは、この機能は既定で有効になっています。検証の設定とターゲットは、[ツール] メニューの [オプション] をクリックし、[テキスト エディタ]、[HTML]、[検証] を順に展開して調整できます (図 2 参照)。

[as warnings] (警告として表示) チェック ボックスをオンにすると、HTML の検証で問題が発生しても、ビルドが停止することはなく、Visual Studio の [エラー] ウィンドウに警告が表示されるにとどまります。Web フォームのソース ビューでは、テキスト エディタにより、HTML 検証エラーの箇所に波線が表示されます。要素をポイントすると、詳細なエラー メッセージを確認できます (図 3 参照)。

説明的な HTML

図 3 の img タグは、検索エンジンの思考回路をどのように考慮する必要があるのかを示す好例です。前述のとおり、検索エンジンでは、画像の形や画像で使用しているテキストを認識および解釈しません。ですが、alt 属性を使用して、視覚的なコンテンツについての追加情報を検索エンジンに提供することができます。会社のロゴの画像がある場合、alt 属性には "会社のロゴ" という文字列が指定されている可能性がありますが、ロゴの alt 属性には会社名を含めることをお勧めします。検索エンジンでは、ページのテーマや本質を理解する手段の 1 つとして alt 属性の値を使用します。

検索エンジンでは、このような手掛かりを常に探しており、このような手掛かりには重要度が付けられています。たとえば、一般的に、ページ内で特定のコンテンツを目立たせるために、h1 タグなどのヘッダー タグを使用します。通常、同じキーワードが h1 タグで囲まれている文字列と通常の段落内で使われている場合、検索エンジンでは前者に重き置きます。h1 タグのコンテンツは、説明的なものにし、ページのテーマに関連するキーワードが含まれるようにする必要があります。SEO 対策では、各ページに最低 1 つの h1 タグを含めることを推奨しています。

この記事の見出しを確認すると、"有効な HTML" や "SEO の基礎" のようなフレーズを中心に展開していることがわかると思います。これらの見出しは、読者と検索エンジンの両方に対して、この記事の内容を伝える説明的なフレーズです。

説明的なタイトルとメタデータ

説明的なキーワードが重要になる、もう 1 つの領域は head タグ内です。コード ダウンロードに含まれているページの 1 つの head セクションは次のようになっています。

<head runat="server">
<title>Programming meta tags in ASP.NET 4.0</title>
<meta name="keywords" content="ASP.NET, ASP.NET 4.0, SEO, meta" />
<meta name="description" content=
"How to use Page.MetaKeywords and Page.MetaDescription in ASP.NET" />
</head>

ページの title タグ内の文字列は、かなり重視されるので、適切なタイトルを考えることをお勧めします。head タグには、meta タグを含めることもできます。SEO 対策では 2 つの meta タグを使用することを推奨しています。1 つはページの関連キーワードに使用し、もう 1 つはページの説明に使用します。通常、訪問者には、この meta タグの情報が提示されることはありませんが、検索エンジンによっては、ページの説明に使用した meta タグの情報を検索結果に表示することがあります。meta タグのキーワードでは、ページと関連のある重要な用語を検索エンジンに提供することで、ページの本当の意味を通知できます。

動的なコンテンツを作成したり、title タグや meta タグのデータを頻繁に変更したりする場合、このようなコンテンツは .aspx ファイルにハード コーディングしないことをお勧めします。さいわい、ASP.NET 4.0 の Web フォームでは、次のように分離コードから、ページのタイトル、キーワード、および説明を簡単に操作できるようになっています。

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Page.Title = "Programming meta tags in ASP.NET 4.0";
Page.MetaKeywords = "ASP.NET 4.0, meta, SEO, keywords";
Page.MetaDescription =
"How to use Page.Keywords and Page.Description in ASP.NET";
}
}

SEO 対策で控えるべきこと

一部のサイトでは、関係のないキーワードや大量のキーワードをページに埋め込んだり、キーワードを何度も繰り返し使用したりすることによって、インターネットの検索エンジンに挑んでいます。"キーワード スタッフィング" と呼ばれる、この行為は、サイトの訪問者に有益なコンテンツを提供することなく、特定の用語で検索したときに、検索エンジンで高い検索順位を得ることを目的としています。不運にも、このようなサイトにアクセスすることになった訪問者は、期待していたコンテンツが提供されていないので、がっかりします。しかし、このような場合でも、サイトの広告収入においてはヒット数がカウントされます。

検索エンジンでは、検索結果の品質を保つため、キーワード スタッフィングなどの不正行為の検出を試みています。キーワードの使いすぎが原因で、検索エンジンによって、サイトが誤解を招く恐れがあるサイトとして分類されるのは本意ではないでしょう。検索エンジンで課されるペナルティは、検索結果における相対的な重要度を下げることから、サイトのコンテンツを検索エンジンのインデックスから完全に削除することまで、その範囲はさまざまです。

もう 1 つの避けるべき行為は、サイトの訪問者に提供するコンテンツと異なるコンテンツを検索エンジンのクローラーに提供することです。一部のサイトでは、ユーザー エージェントのヘッダーや着信要求の IP アドレスをスニッフィングすることで、このような行為を行っています。このような行為は有益だと思うかもしれませんが、多くのサイトでは既知のマルウェアやフィッシング コンテンツを検索エンジンから隠すために、この技法が使用されています。検索エンジンで、この行為 (通称、クローキング) が検出されると、サイトにはペナルティが課されます。検索エンジンの結果に挑んだり、操作しようとしたりするのは得策ではありません。真摯な姿勢で、すぐれたコンテンツを提供することをお勧めします。

ご覧のとおり、Page_Load イベントでは、ページの Title、MetaKeywords、および MetaDescription プロパティを使用できます。Title プロパティは ASP.NET 2.0 で導入されましたが、MetaKeywords プロパティと MetaDescription プロパティは ASP.NET 4.0 で新たに導入されました。依然としてハード コーディング文字列を使用していますが、これらのプロパティは任意のデータ ソースから読み込めます。そのため、Web サイトのマーケティング担当者が、検索エンジンで最適な結果を得られるように meta タグのデータを変更することが可能になります。また、その際には、ページのソース コードを編集する必要もありません。

効果的なキーワードと説明を使用することで、検索エンジンの検索結果で多少優位に立つことはできますが、やはりコンテンツが重要です。HTML に関するヒントについては、この記事の後半で紹介しますが、この次の 2 つのセクションでは、コンテンツが検出および順位付けされるうえで URL がどのように重要な役割を果たしているのかを紹介します。

正規の URL

通常、重複したコンテンツは、検索エンジン側で問題を引き起こします。たとえば、検索エンジンによって 2 つの URL で有名なタコスのレシピが検出されたとします。検索エンジンでは、検索結果で、どちらの URL を採用して、リンクを提供したらよいのかという問題が生じます。インバウンド リンクに関しては、重複したコンテンツは、最適化についての問題を引き起こします。タコスのレシピの "リンク ラブ" が 2 つの URL に分散している場合、検索エンジンにより、タコスのレシピは正当な順位付けが行われない可能性があります。

残念ながら、無意識のうちにコンテンツを重複させている可能性があります。www プレフィックスを使用する URL と www プレフィックスを使用しない URL の両方からサイトを読み取れる場合、検索エンジンでは、同じコンテンツが異なる URL で提供されていると見なされます。このような場合は、両方の URL が機能するようにし、一方の URL を標準 (正規) の URL にすることをお勧めします。

たとえば、microsoft.com という Web サイトについて考えてみましょう。www.microsoft.com および microsoft.com というどちらの URL からも、同じコンテンツにアクセスできます。ただし、microsoft.com という URL を使用してホーム ページにアクセスする場合は、その動作を注意して見てください。microsoft.com というマイクロソフト サイトは、ブラウザーで www.microsoft.com にリダイレクトされます。というのも、マイクロソフトでは、www.microsoft.com を正規の URL とするためにリダイレクトを使用しているからです。

さいわい、ASP.NET を使用すると、サイト訪問者を簡単に正規の URL にリダイレクトできます。必要なのは、アプリケーション パイプラインの BeginRequest イベントでロジックを提供することだけです。この処理は、カスタム HTTP モジュールを実装するか、global.asax で Application_BeginRequest を使用することで実現できます。 図 4に、この機能のロジックの例を示します。

図 4 のコードでは、ASP.NET 4.0 の新機能である HttpResponse オブジェクトの RedirectPermanent メソッドを使用しています。従来の ASP.NET の Redirect メソッドでは、クライアントに HTTP 状態コードの 302 を送信していました。この 302 という HTTP 状態コードは、リソースが一時的に新しい URL に移動され、今回に限り、リソースにアクセスするためには新しい URL にアクセスする必要があることをクライアントに通知します。一方、RedirectPermanent メソッドでは、クライアントに状態コード 301 を送信します。この 301 という状態コードでは、リソースが完全に移動され、今後の要求では、新しい URL でリソースにアクセスする必要があることをクライアントに通知します。RedirectPermanent メソッドの呼び出しでは、"名前付きパラメーター構文" という C# 4.0 の新機能を使用しています。この構文はメソッドの呼び出しに必須のものではありませんが、名前付きパラメーターの構文では、パラメーターの目的を明確にすることができます。

リダイレクトの機能を使用すると、Web ブラウザーと検索エンジンの両方で正規の URL のみが使用されるようになります。また、"リンク ジュース" が統合されるので、検索エンジンによる検索順位が向上します。

説明的な URL

図 4 HttpResponse オブジェクトの RedirectPermanent メソッド

void Application_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = sender as HttpApplication;
if (app != null)
{
string domain = "www.odetocode.com";
string host = app.Request.Url.Host.ToLower();
string path = app.Request.Url.PathAndQuery;
if (!String.Equals(host, domain))
{
Uri newURL = new Uri(app.Request.Url.Scheme +
"://" + domain + path);
app.Context.Response.RedirectPermanent(
newURL.ToString(), endResponse: true);
}
}
}

MSDN Magazine の 2009 年 1 月号の記事 (msdn.microsoft.com/magazine/) では、ASP.NET Web フォームで .NET 3.5 SP1 のルーティング機能を使用する方法について紹介しました。この号の記事で説明したように、ルーティング機能で実現できる明確で説明的な URL は、ユーザーと検索エンジンのどちらにとっても重要です。ユーザーと検索エンジンのどちらにとっても、/recipe.aspx?category=40&topic=32 という URL よりも、/recipes/tacos という URL の方が理解しやすいのは明らかです。後者の場合、検索エンジンでは、このリソースで recipes および tacos という単語が重要なキーワードだと見なします。前者の URL の問題点は、複数のパラメーターを伴うクエリ文字列を使用している URL に対して、多くの検索エンジンのクローラーがうまく機能しないことと、アプリケーションのバックエンド データベース以外の場所ではクエリ文字列の数値は意味がないことです。

ASP.NET チームは、ASP.NET 4.0 に、Web フォームで簡単にルーティング機能を使用できるようにするいくつかの追加機能を導入しました。ASP.NET チームは、ASP.NET 4.0 の Web フォームで簡単にルーティング機能を使用できるようにするいくつかの追加機能を導入しました。 この記事のコード ダウンロードには、1 月号のデモに ASP.NET 4.0 の新しいクラスを再実装したものを含めてあります。ルーティング機能を使用するには、まず、Application_Start イベントでアプリケーションが処理するルートを記述する必要があります。次に、global.asax の Application_Start イベントでサイトが呼び出している RegisterRoutes メソッドのコードを示します。

void RegisterRoutes()
{
RouteTable.Routes.Add(
"Recipe",
new Route("recipe/{name}",
new PageRouteHandler("~/RoutedForms/RecipeDisplay.aspx",
checkPhysicalUrlAccess:false)));
}

URL Rewrite (作成者: Carlos Aguilar Mares)

URL Rewrite for IIS 7.0 はマイクロソフトが iis.net/extensions/URLRewrite で提供しているツールです。このツールを使用すると、コードを記述することなく、URL の標準化に必要な作業を実行できます。このツールでは、ヘッダーの正規化、小文字への変換などの処理を行います (詳細については、ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/ のブログ投稿を参照してください)。また、このツールを使用すると、マップを使用して、リンクの書き直しやリダイレクトによって、リンク切れを修正できるので、アプリケーションや HTML コードを変更する必要はありません。詳細は、blogs.msdn.com/carlosag/archive/2008/09/02/IIS7UrlRewriteSEO.aspx を参照してください。

URL Rewirte では、すべてのバージョンの ASP.NET で説明的な URL を作成することができます。また、カーネル モードのキャッシュで動作するので、ASP.NET のルーティングなどの他の既存のオプションよりもパフォーマンスが格段に優れています。

図 5 RouteData オブジェクトから Name パラメーターを取得してレシピに関する情報を表示する

private void DisplayRecipe()
{
var recipeName = RouteData.Values["name"] as string;
if (recipeName != null)
{
var recipe = new RecipeRepository().GetRecipe(recipeName);
if (recipe != null)
{
_name.Text = recipe.Name;
_ingredients.Text = recipe.Ingredients;
_instructions.Text = recipe.Instructions;
}
}
}

私が執筆した 1 月号の記事をもう一度お読みいただくと、各ルートではルート ハンドラーを指定する必要があることを思い出されるのではないでしょうか。RegisterRoutes メソッドでは、ASP.NET 4.0 の新しいクラスである PageRouteHandler のインスタンスへの Recipe ルートのハンドラーを設定しています。ルーティング エンジンでは、recipe/{name} という形式を使用した任意の URL への着信要求を、このルート ハンドラーにリダイレクトします (ここで {name} は、ルーティング エンジンが URL から抽出するルート パラメーターを表しています)。

Web フォームでは、RouteData プロパティを使用して、ルーティング エンジンが URL から抽出した全ルート パラメーターにアクセスできます。このプロパティは、ASP.NET 4.0 で Page クラスに新しく導入されたものです。図 5 のコードでは、RouteData プロパティから name パラメーターを取得し、name パラーメーターを使用して、レシピに関する情報を検索して表示します。

ルーティング エンジンには、双方向という優れた性質が備わっています。ルーティング エンジンでは、URL を解析して HTTP 要求を制御できるだけでなく、特定のページにアクセスする URL を生成することもできます。たとえば、タコスのレシピのページにアクセスするリンクを作成する場合は、ハード コーディングの URL を使用する代わりに、ルーティング エンジンを使用して、ルーティング構成に基づいて URL を生成することができます。ASP.NET 4.0 では、マークアップで使用して、ルーティング構成テーブルから URL を生成するのに使用できる新しい式ビルダーが導入されています。

<asp:HyperLink NavigateUrl="<%$ RouteUrl:RouteName=recipe,name=tacos %>"
Text="Titillating Tacos" runat="server">
</asp:HyperLink>

上記のコードは、実際に動作している新しい RouteUrl 式ビルダーです。式ビルダーでは、ルーティング エンジンに対して、receipe という名前のルートへのリンクを生成し、URL の name パラメーターに tacos という値を含めるように指示しています。上記のマークアップでは、次の HTML が生成されます。

<a href="/recipe/tacos">Titillating Tacos</a>

上記の URL は、わかりやすく説明的で、検索エンジン用に最適化されています。しかし、この例は、ASP.NET について、より大きな問題を提起します。Web フォームのサーバー コントロールでは、生成した HTML を取り除くことがあり、すべての ASP.NET のサーバー コントロールが検索エンジンに対して友好的であるわけではありません。次のセクションからは、HTML についての話に戻ります。

HTML の間違い

ハイパーリンクではなく LinkButton を使用してタコス レシピへのリンクを作成すると、ブラウザーでは異なるマークアップを使用することになります。LinkButton のコードと、LinkButton によって生成される HTML は次のとおりです。

<asp:LinkButton runat="server" Text="Tacos"
PostBackUrl="<%$ RouteUrl:RouteName=recipe,name=tacos %>">
</asp:LinkButton>
<!-- generates the following (excerpted): -->
<a href="javascript:WebForm_DoPostBackWithOptions(...)">Tacos</a>

ユーザーがクリックする A タグはありますが、この A タグでは、ブラウザーからサーバーにポストバックが行われるようにする JavaScript を使用しています。LinkButton では、ユーザーがリンクをクリックしたときに、サーバー側でクリック イベントを発生させるために、この HTML を生成しています。残念ながら、JavaScript によるポストバック ナビゲーションと検索エンジンは連動していません。事実上、リンクは検索エンジンから見えないため、検索エンジンではリンク先のページは検出されない可能性があります。


図 6 IIS 7 マネージャー

サーバー側の ASP.NET コントロールによって HTML が削除されるため、サーバー コントロールは賢く選択する必要があります。ASP.NET 環境で HTML マークアップを完全に制御する必要がある場合は、ASP.NET MVC フレームワークの使用を検討することをお勧めします。MVC フレームワーク使用時には、サーバー コントロールを使用できないので、HTML マークアップとのみ連動するインフラストラクチャと API が配置されます。

ASP.NET の Web フォームを使用している場合に、検索エンジン対策を行うには、サーバー コントロールによって生成される HTML ソースを確認することをお勧めします。HTML ソースは、どの Web ブラウザーでも確認できます。Internet Explorer では、[表示] メニューの [ソース] をクリックします。ナビゲーション シナリオで、HTML と JavaScript の組み合わせを生成するコントロールには注意が必要です。たとえば、AutoPostBack プロパティに true を設定した状態で DropDownList を使用する場合には、JavaScript が有効になっている必要があります。新しいコンテンツへのナビゲーションに自動ポストバックを使用している場合、新しいコンテンツは検索エンジンで認識されません。

AJAX を多用するアプリケーションで、検索エンジンについて問題が発生するのは明らかです。というのも、UpdatePanel コントロールと JavaScript からの Web サービス呼び出しによって生成されるコンテンツは、検索エンジンにとってわかりやすいものではないからです。SEO 対策において最も安全なアプローチは、コンテンツを HTML に直接配置して、検出しやすくすることです。

HTML、キーワード、および URL をカスタマイズした結果はどのようになるでしょうか。検索エンジンによる順位付けは、SEO 対策の最終的な評価になりますが、サイトを公開して、検索エンジンによってサイトのページがクロールされる前に問題を検出できるのが望ましいでしょう。Visual Studio では、HTML 検証の問題についての警告を表示することはできますが、メタデータや標準の URL が使用されていないことについての警告を表示することはできません。ですが、新製品の IIS SEO Toolkit では、この処理を行います。


図 7 レポートの概要

IIS SEO Toolkit

IIS SEO Toolkit は、IIS 7 用のツールで、iis.net/extensions/SEOToolkit から無料でダウンロードして、ご利用いただけます。このツールキットには、検索エンジンと同じようにローカルの Web アプリケーションにインデックスを作成し、サイトについての詳細な分析レポートを提供するクロール エンジンが収録されています。このツールキットでは、robots.txt とサイトマップ ファイルを管理することもできます。robots.txt ファイルでは、検索エンジンに対して、インデックス作成の対象から除外するものを通知する標準化された形式を使用しています。一方、サイトマップ ファイルでは、インデックス作成の対象にするコンテンツを検索エンジンに通知できます。また、サイトマップ ファイルを使用して、検索エンジンに対して、リソースの優先度、変更頻度、変更日時を通知することもできます。

SEO 対策では、サイト分析レポートが欠かせません。このレポートには、検索エンジンの観点から見たサイトに関する情報が含まれています。このツールキットをインストールすると IIS 7 マネージャーのウィンドウには Site Analysis というオプションが表示されます (図 6 参照)。

このアイコンをクリックすると、既存の解析レポートの一覧が表示されます。また、この一覧にある Action オプションを使用すると、新たに解析を実行できます。解析を実行するのに必要な作業は、HTTP で始まるローカルの URL を指定して、[OK] をクリックするだけです。解析が完了すると、レポートの概要が表示されます (図 7 参照)。

ツールキットでは、多数のルールとヒューリスティックスを適用して、SEO 対策とパフォーマンスに関連する問題を特定します。リンク切れ、タイトルがない、説明が短すぎる、説明が長すぎる、他の問題の原因となり得る問題を特定できます。また、リンクを分析して、最もリンクされているページと訪問者が特定のページにアクセスするのに辿る必要があるパスに関する情報を提供します。さらには、各ページのコンテンツ テキストについての分析も行います。サイトの所有者は、この分析結果を使用して、ページに最適なキーワードを特定できます。

IIS SEO Toolkit を使用すると、実施する必要がある SEO 対策を特定したり、既に実施済みの SEO 対策を評価したりすることができます。この記事の執筆時点では、このツールキットの利用可能なリリースは、ベータ 1 でした。後続のリリースでは、特定の問題を自動的に修正するインテリジェンスに加えて、引き続きルールや分析機能が追加されることが期待されます。

簡単で効果的

世界中で最もすてきなコンテンツを用意しても、サイトへの訪問者を獲得するには、サイトが検索エンジンで検出される必要があります。SEO 対策とは、検索エンジンと同じような考え方をすることによって、サイトをクローラーや順位付けのアルゴリズムにとって魅力的なものにすることです。Visual Studio 2010 と ASP.NET 4.0 には、.NET 4.0 での SEO 対策に役立つ新機能が導入されています。また、IIS SEO Toolkit は、サイトを検索エンジンにとって適切な状態にするのに役立つすばらしい専用のツールです。この 3 つのツールを組み合わせて使用すれば、SEO 対策を簡単かつ効果的に実施できます。

K. Scott Allen は Pluralsight 技術スタッフのメンバであり、OdeToCode の創設者です。彼の連絡先は scott@OdeToCode.com、ブログのアドレスは odetocode.com/blogs/scott.