今天介绍 ASP.NET 带来的搜索引擎优化(Search Engine Optimization,SEO)方面的改进。
为什么 SEO?
搜索引擎优化(SEO)对任何面向公众的网站来说都是重要的。大量的来到网站的流量都来自搜索引擎,提高网站的搜索相关性可以从搜索引擎查询带来更多的用户流量到你的网站(这会直接或间接地增加网站的收入)。
使用 SEO 工具包测量网站的 SEO
我们提供了免费的 SEO 工具包,可以用来分析网站的 SEO 正确性,并提供了发现的任何 SEO 问题的详细建议。
我强烈建议下载并对你的公共网站使用这个工具。它会使发现网站上的SEO问题变得容易,并精确指出进一步优化的办法。
ASP.NET 4 SEO 改进
ASP.NET 4 包含一组新的运行时特性,可以帮助你进一步为SEO优化网站。一些新特性包括:
下面详细说明如何利用这些特性进一步提高你的搜索引擎相关性。
Page.MetaKeywords 和 Page.MetaDescription 属性
一个简单的提高页面搜索相关性的建议是,确保在HTML的 <head> 节内部总是输出相关的“关键字”和“描述”的 <meta> 标记。例如:
ASP.NET 4 Web Forms 的一个良好的改进就是给 Page 类添加了两个新的属性:MetaKeywords 和 MetaDescription,从而使得在后置代码中编程设计这些值变得更加容易更加清晰了。
ASP.NET 4 的 <head> 服务器控件现在会检查这些值,并在输出页面 <head> 节的时候使用。这种行为对于使用母版页的场景尤其有用——<head> 节存放在 .master 文件中,独立于包含特定于页面内容的 .aspx 文件。现在可以在 .aspx 页面中设置新的 MetaKeywords 和 MetaDescription 属性,它们的值会被母版页的 <head> 控件自动引用。
下面是一个简单的代码片断,演示了在 Page_Load() 事件处理程序内部设置这些属性:
除了在后置代码中编程设置 Keywords 和 Description 属性,还可以在 .aspx 页面顶部的 @Page 指令中声明式地设置它们。下面的片断演示了这种写法:
正如你预想的那样,如果你编程设置值它们会覆盖在 <head> 节或 @Paeg 指令中设置的声明值。
使用 ASP.NET Web Forms 的 URL 路由
URL 路由最初在 ASP.NET 3.5 SP1 引入,它可以用于 ASP.NET MVC 应用程序内部来暴露 SEO 友好的“Web 2.0” URL。URL 路由使你可以配置应用程序来接受不映射到物理文件的请求 URL。相反,你能够使用路由定义对用户有语义意义的 URL,它能帮助搜索引擎优化(SEO)。
例如,对于一个传统的显示产品分类页面的 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 Forms 页面。你甚至能够用一个应用程序既包含 Web Forms 又包含 MVC 控制器,并使用一组路由把 URL 映射到它们。
《VS2010与.NET4系列 8.ASP.NET 4 Web Forms的URL路由》这篇日志更详细地介绍了相关特性。
Response.RedirectPermanent() 方法
在 Web 应用程序内部移动页面和其他内容是很常见的事情,但这会给搜索引擎带来链接错误。
在 ASP.NET 中,开发人员经常通过使用 Response.Redirect() 方法编程来把对旧 URL 的请求转向到新 URL。然而,许多开发人员没有意识到 Response.Redirect() 方法生成的是一个 HTTP 302 Found(临时重定向)响应,用户试图访问旧 URL 时会带来额外的 HTTP 往返。搜索引擎通常不会跟踪跨多个重定向跳跃,这意味着使用临时定向会消极地影响你的页面等级(page ranking)。你可以使用 SEO 工具包找出可能拥有此类问题的地方。
ASP.NET 4 引入了新的 Response.RedirectPermanent(string url) 辅助方法,能够用于执行一个使用 HTTP 301(永久移动)响应的
重定向。这会使得搜索引擎和其他用户代理认出永久重定向并保存和使用关联了内容的新 URL。这将使你的内容能够被索引,而你的搜索引擎页面等级能够提高。
下面是一个使用新的 Response.RedirectPermanent() 方法重定向到指定 URL的例子:
ASP.NET 4 还引入了新的 Response.RedirectToRoute(string routeName) 和 Response.RedirectToRoutePermanent(string routeName) 辅助方法,能够用于通过 URL 路由引擎把用户重定向到临时或永久的重定向目标。
既可以对 ASP.NET Web Forms,也可以对 ASP.NET MVC 的 URL 使用上述的路由和方法。
总结
ASP.NET 4 包含的一些特性改进,旨在让构建拥有优秀 SEO 的公共网站变得更加容易。当配合使用 SEO 工具包时,你应当能够使用这些特性为你的网站增加流量——更希望直接或间接增加你的收入。