转发:VS 2010 和 .NET 4.0 系列之《ASP.NET 4 中的SEO改进 》篇

【原文地址】ASP.NET 4 SEO Improvements (VS 2010 and .NET 4.0 Series)
【原文发表日期】 Tuesday, January 05, 2010 1:08 AM

除了写博客外,我现在还使用Twitter发短贴和共享链接。请通过twitter.com/scottgu跟随我。

这是我针对即将发布的VS 2010 和 .NET 4所撰写的 贴子系列的第十三篇。今天的博客讨论ASP.NET 4中围绕搜索引擎优化(SEO)所做的一些改进。

为什么要做SEO?

搜索引擎优化(SEO)对任何面向公众的网站来说都是非常重要的,现在网站很大比例的流量来自搜索引擎, 提高你的网站的搜索相关性将导致更多来自搜索引擎查询的用户流量(会直接或间接地增加你通过网站所赚取的收入)。

使用SEO工具包测量你网站的SEO

上个月,我在博客中写到了我们发布的免费SEO 工具包,你可以用它来分析你网站的SEO正确性,该工具还会对它发现的任何SEO问题提供详细的建议。

我高度推荐下载这个工具,并对你手头的任何公开网站使用这个工具进行分析。它极大地方便了发现网站的SEO问题所在,同时精确指出进一步优化的方式。

ASP.NET 4 中的SEO 改进

ASP.NET 4包括了一堆新的运行时特性,可以帮助你进一步优化你的网站。其中一些新特性包括:

  • 新的Page.MetaKeywords 和 Page.MetaDescription 属性
  • 针对ASP.NET Web Forms的新URL导向支持
  • 新的Response.RedirectPermanent()方法

下面是如何利用这些特性来进一步提高搜索引擎相关性的细节。

Page.MetaKeywords 和 Page.MetaDescription 属性

改进网页搜索相关性的一个简单建议是,确定你总是在你HTML中的<head>部分输出相关的“keywords(关键词)” and “description(描述)” <meta>标识。例如:

image

ASP.NET 4 Web Forms中一个很好的改进是在Page类中加了2个新属性:MetaKeywordsMetaDescription,它们使得在后台代码类中用编程的手法设置这些值更容易,也更干净。

ASP.NET 4的 <head> 服务器控件现在会看这些值,然后在输出网页的<head>部分时使用它们。这个行为在使用母版页的场景中尤其有用,<head> 是在.master文件中,与含有特定页面内容的.aspx文件是分开的。你现在可以在.aspx页面中设置新的MetaKeywords 和 MetaDescription属性,它们的值会自动地由母版页中的<head>控件来显示。

下面是简单的代码片段,示范如何在Page_Load()事件处理函数中用编程手法设置这些属性:

image

除了在后台代码中用编程手法设置Keywords 和 Description属性外,你现在还可以在.aspx网页顶部的@Page指令中用声明的方式设置它们。下面的代码片段示范该怎么做:

image

就象你能预期的那样,如果你用编程手法设置这些值的话,它们会替代在<head>部分或@Page指令中声明设置的任何值。

ASP.NET Web Forms中的URL导向

URL导向是我们最先在ASP.NET 3.5 SP1中引进的一个功能,已为ASP.NET MVC应用所用,来呈示干净的,SEO友好的“web 2.0” URL。URL导向让你配置一个应用来接受并不映射到物理文件的请求URL,你可以使用导向来定义对用户来说语义上更具含义的URL,这些URL有助于搜索引擎优化(SEO)。

例如,一个显示产品分类的传统网页的URL也许看上去会是这样的:

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

使用ASP.NET 4中的URL导向引擎,你现在可以配置应用来接受下面这样的URL来显示同样的信息:

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

在ASP.NET 4.0中,象上面那样的URL现在可以映射到ASP.NET MVC控制器类,也可映射到基于ASP.NET Web Forms的网页。你甚至可以有一个应用,同时含有 Web Forms 和 MVC控制器,使用单一一套导向规则在它们之间映射URL。

请阅读一下我以前的《在ASP.NET 4 Web Forms中实现URL导向》的贴子,进一步了解ASP.NET 4中新的URL导向特性是如何支持基于 Web Forms的网页的。

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的一个例子:

image

ASP.NET 4还引进了新的Response.RedirectToRoute(string routeName)Response.RedirectToRoutePermanent(string routeName) 辅助方法,可以用来通过URL导向引擎做临时或永久性的重新定向。下面的代码片段示范了如何发出临时和永久性的重新定向到注册在URL导向系统中的具名路径的(该路径接受一个category参数)。

image

你可以同时针对基于ASP.NET Web Forms以及基于ASP.NET MVC 的URL使用上面的路径和方法。

结语

ASP.NET 4包含了成堆的特性改进来方便建造极致SEO的面向公众的网站。当与SEO工具包相结合时,你应该能够使用这些特性增加到你网站的用户流量, 但愿能直接或间接地增加你从中取得的收入。

希望本文对你有所帮助,

Scott