連載:〜ScottGu氏のブログより〜

ASP.NET 4 SEOの改善(VS 2010&.NET 4シリーズ)

Scott Guthrie 著/Chica
2010/01/08

 本記事は、Microsoftの本社副社長であり、ASP.NETやSilverlightなどの開発チームを率いるScott Guthrie氏のブログを翻訳したものです。氏の許可を得て転載しています。

  [ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、私をフォローしてください。]

 これは、VS 2010および.NET 4のリリースに向けたブログ投稿シリーズの第13弾です。今回の投稿では、ASP.NET 4での検索エンジン最適化(SEO)回りに行われた改善点のいくつかをカバーします。

なぜSEOなのか?

 検索エンジン最適化(SEO)は、公開されているWebサイトにとっては大切です。いまやサイトに対するトラフィックの多くは検索エンジンから来ており、サイトの検索関連性(search relevancy)を改善させることは、検索エンジンのクエリからあなたのサイトへ、より多くのユーザー・トラフィックを導くことになります(これによりサイトを通じて直接・非直接的に収益を伸ばせます)。

SEOツールキットでWebサイトのSEOを測定

 先月、出荷済みの無償のSEOツールキットについてブログ投稿しましたが、これはSEO修正のためのサイト分析に使用でき、見つかったすべてのSEOの問題点について詳細な提案事項を提供します。

 作業にかかわっているすべての公開サイトに対して、このツールをダウンロードして使用することを大いに推奨します。これはサイト上にあり得るSEO問題を簡単に見つけ、さらにそれを最適化する方法を指摘します。

ASP.NET 4 SEOの改善

 ASP.NET 4には数多くの新しいランタイムの機能が含まれており、それによりSEOに対してサイトをさらに最適化できるようになります。それらの新機能には以下のようなものがあります。

  • 新しいPage.MetaKeywordsおよびPage.MetaDescriptionプロパティ
  • ASP.NET Webフォームに対する新しいURLルーティングのサポート
  • 新しいResponse.RedirectPermanentメソッド

 以下は検索エンジン関連性をさらに改善させるための利用方法についての詳細です。

Page.MetaKeywordsおよびPage.MetaDescriptionプロパティ

 ページの検索関連性を改善する1つの簡単なお勧めは、HTMLの<head>セクション内に関連の“keywords”および“description”の<meta>タグを常に出力することです(例:図1)。


図1

 ASP.NET 4 Webフォームの素晴らしい改善点の1つは、Pageクラスに新規プロパティが2つ追加されたことです(図2)。それはMetaKeywordsおよびMetaDescriptionプロパティで、コードビハインドのクラス内でプログラムにより簡単かつ、よりクリーンにこれらの値を設定できます。

 ASP.NET 4の<head>サーバ・コントロールは、それらの値を見て、ページの<head>セクションを出力する際にこれを使用します。この動作は特に、サイト内でマスター・ページを使用していて、ページの特定のコンテンツが含まれた.aspxファイルとは分けられた.masterファイルに<head>セクションがある場合に有用です。.aspxページに新規のMetaKeywordsおよびMetaDescriptionプロパティを設定して、マスター・ページ内の<head>コントロールにより、それらの値を自動的に出力させることが可能となりました。

 以下は簡単なスニペットで、Page_Loadイベント・ハンドラ内でプログラム的にそれらのプロパティを設定する方法を示しています。


図2

 KeywordsやDescriptionプロパティをコードビハインドで設定できるだけでなく、.aspxページの上部にある@Pageディレクティブ内でも、それらを宣言的に設定できます。以下のスニペットはこの方法を示しています。


図3

 想像されているとおり、もしプログラム上でそれらの値を設定すると、<head>セクションまたは@Page属性を通じて宣言的に設定されている値はすべてオーバーライドされます。

ASP.NET WebフォームでのURLルーティング

 URLルーティングは、ASP.NET 3.5 SP1で初めて導入した機能で、すでに、ASP.NET MVCアプリケーションにおいて、クリーンでSEOフレンドリーな“Web 2.0”URLを公開するために使用されています。URLルーティングにより、実際のファイルにマップしないURLのリクエストを受け入れるようにアプリケーションを構成できます。また、ルーティングを使用して、文法的にユーザーにとって意味があり、検索エンジン最適化(SEO)の手助けになるURLを定義できます。

 例えば、、製品カテゴリを示す伝統的なページへのURLは以下のようになっています。

http://www.mysite.com/products.aspx?category=software

 この代わりに、ASP.NET 4のURLルーティング・エンジンを使用して、同じ情報を出力する以下のURLを受け入れるアプリケーションを構成できます。

http://www.mysite.com/products/software

 ASP.NET 4.0では、上記のようなURLはASP.NET MVCコントローラ・クラスおよびページ・ベースのASP.NET Webフォームの両方へマップできます。またWebフォームおよびMVCコントローラの両方が含まれた1つのアプリケーションで、両者のURLをマップするために1つのルーティング・ルールのセットを使用することさえ可能です。

 ASP.NET 4での新しいURLルーティング機能が、どのようにページ・ベースのWebフォームをサポートしているかについての詳細は、以前のASP.NET 4 WebフォームでのURL ルーティングに関するブログ投稿を読んでください。

Response.RedirectPermanentメソッド

 時間がたってくると、ページやそのほかのコンテンツをWebアプリケーション内で移動させることはよくあることですが、それが検索エンジンにおいては、無効なリンクの蓄積につながります。

 ASP.NETでは、開発者はよくResponse.Redirectメソッドを使用して、プログラムで古いURLへのリクエストを新しいURLへ転送するように処理しています。しかしながら、多くの開発者が理解していないことは、Response.RedirectメソッドはHTTP 302 Found(一時的リダイレクト)応答を返すので、ユーザーが古いURLへアクセスしようとしたときに余分なHTTPラウンドトリップが発生することになる点です。検索エンジンは通常、リダイレクトの複数ホップにわたる追跡はしません。つまり、一時的リダイレクトを使用するとページ・ランキングでマイナスに作用するのです。SEOツールキットを使用すれば、この問題点が存在するかどうかをサイト内を確認できます。

 ASP.NET 4では、新しいResponse.RedirectPermanent(string url)ヘルパー・メソッドを導入しており、HTTP 301(恒久的移動)応答を利用したリダイレクトを実施するのに使用できます。これは、検索エンジンやそのほかのユーザーエージェントに恒久的なリダイレクトを認識させ、、そのコンテンツに関連している新しいURLを保存し使用させます。これによりコンテンツはインデックス化され、検索エンジンのページ・ランキングが改善されます。

 以下は、この新しいResponse.RedirectPermanentメソッドを使用して特定のURLへリダイレクトする例です。


図4

 ASP.NET 4のResponse.RedirectToRoute(string routeName)およびResponse.RedirectToRoutePermanent(string routeName)ヘルパー・メソッドは、URLルーティング・エンジンで一時的または恒久的なリダイレクトのどちらかを利用して、ユーザーをリダイレクトするのに使用できます。以下のコードスニペットは、URLルーティング・システムで登録されている名前付きのルート(カテゴリーのパラメータを受け取ります)へ一時的または恒久的なリダイレクトを発行する方法を示しています。


図5

 ASP.NET WebフォームおよびURLベースのASP.NET MVCの両方に対して上記のルートおよびメソッドは使用できます。

まとめ

 ASP.NET 4では数多くの機能改善が行われており、素晴らしいSEOを持つ公開サイトをより簡単に構築できます。SEOツールキットと組み合わせれば、これらの機能を使用してサイトへのユーザー・トラフィックを増加できるので、そこから直接的または非直接的に収益が増加できればと思います。

 Hope this helps,

 ScottEnd of Article

   
 
インデックス・ページヘ  「〜ScottGu氏のブログより〜」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間