ASP.Net 4.0 SEOの改善


検索エンジンの最適化は、公衆向けのWebサイトにとって非常に重要です.ASP.Net 4.0はそのために大量の改造を行った.これらの改善点は次のとおりです.

301永続リダイレクト


時間が経つにつれて、ウェブサイトの一部のページアドレスが変化し、検索エンジンが収録したリンクアドレス、ユーザーが所蔵しているアドレスが失効します.Response.Redirect()はこの問題を解決したものです.でもResponse.Redirectには次の問題があります.
Response.Redirect()メソッドは、HTTP 302のジャンプを生成し、ユーザが古いURLにアクセスしようとすると、余分なHTTP往復を招く.また、検索エンジンは一般的に複数のジャンプに追随しません.これは、一時的な転向を使用すると、Webページのランキングに悪影響を与えることを意味します. 
私は以前ブログを書いたことがありますが、301ジャンプを実現する方法を紹介しました.「HTTP状態301302200からページジャンプを見て」その時301ジャンプを実現するのは面倒でした.ASP.Net 4.0はこのためにResponseを追加した.RedirectPermanent()メソッドはこの問題を解決するために使用されます.
簡単に言えば、次の表に示します.
HTTP状態
説明する
プログラムコード
301
301は永続的な転送(Permanently Moved)すなわち永続的なリダイレクトを表す
Response.RedirectPermanent("test_2.aspx");
302
302は一時的な移行(Temporarily Moved)を表す
Response.Redirect("test_2.aspx");
MVCにも似たようなコードがあります:Response.RedirectToRoute(string routeName)とResponse.RedirectToRoutePermanent(string routeName)

Headのkeywordsとdescription


検索エンジンが不正行為を最適化したため、検索エンジンはこの2つのキーワードの参考作用を薄めている.例えばこのブログでは、「KeywordsとDescription--SEOの達人はなぜ使わないのか」と理由を説明しています.しかし、できれば、この2つのキーワードを設定することをお勧めします.ASP.Net 4.0では、この2つのキーワードを簡単に設定するために最適化されています.次の簡単なコードで動的設定を完了することができます.
protected void Page_Load(object sender, EventArgs e)
{
    Page.Title = "    ";
    Page.MetaKeywords = "     ";
    Page.MetaDescription = "    ";
}
   ASPX       :
<%@ Page Language="C#" 
Title="    "
MetaKeywords = "    ,   "
MetaDescription = "      "
AutoEventWireup="true" 
CodeBehind="Test_2.aspx.cs" 
Inherits="WebApplication_CacheOutput.Test_2" 
%>
Scott              ,     Keywords , Description ,    MetaKeywords   MetaDescription。

ASP.NET Web FormsでもURLガイド対応

  、   URL,      ,     。 ASP.NET 4.0 ,URL Routing      ASP.NET MVC    ,       ASP.NET Web Forms   。
, Web Forms MVC , : URL。
Global.asax        :
void RegisterRouters(System.Web.Routing.RouteCollection routes)
{
    routes.MapPageRoute(
        "my-Test-Route",    //     --        
        "p/{key}",           //     
        "~/WebForm1.aspx"    //                
        );
    // ......    ,                 
}

void Application_Start(object sender, EventArgs e)
{
    RegisterRouters(System.Web.Routing.RouteTable.Routes);  
}
           ,      ,          ,     ,    :
protected void Page_Load(object sender, EventArgs e)
{
    StringBuilder sb = new StringBuilder();
    sb.AppendLine("this.Page.RouteData.Values");
    sb.AppendLine("
"); foreach (var item in this.Page.RouteData.Values) { sb.AppendFormat("{0}={1}
/r/n
", item.Key, item.Value); } sb.AppendLine("this.Page.Request.QueryString"); sb.AppendLine("
"); foreach (var item in this.Page.Request.QueryString) { sb.AppendFormat("{0}={1}
/r/n
", item, this.Page.Request.QueryString[item.ToString()]); } sb.AppendLine("this.Page.Request.Form"); sb.AppendLine("
"); foreach (var item in this.Page.Request.Form) { sb.AppendFormat("{0}={1}
/r/n
", item, this.Page.Request.Form[item.ToString()]); } Response.Write(sb.ToString()); }

上記のコードを完了すると、異なるURLのリクエストでテストできます.
例えば私たちが訪問するhttp://localhost:3215/p/abc?s=1テストの結果は次のとおりです.
this.Page.RouteData.Values key=abc this.Page.Request.QueryString s=1 this.Page.Request.Form
 

参考資料:


VS 2010と.NET 4.0シリーズの『ASP.NET 4におけるSEO改善』編http://blog.joycode.com/scottgu/archive/2010/01/06/115842.joy
.NET 4の新機能:グラフ、SEOおよび拡張可能な出力キャッシュhttp://www.infoq.com/cn/news/2010/02/.NET-4-Charts-SEO-Cache
Asp.Net4.0/VS 2010新変化(4):SEOの改良http://www.cnblogs.com/yjmyzz/archive/2010/03/05/1679235.html
Asp.Net4.0/VS 2010新変化(3):webformで直接urlルーティングも可能http://www.cnblogs.com/yjmyzz/archive/2010/03/05/1679140.html