SEO(Search Engine optimiz)是这几年很流行的一个缩写短语,简而言之就是是自己的系统网站更容易被搜索引擎收录提高网站的PR值。我们可以通过很多方法对我们的网站优化,搜索引擎优化就成了一门学科。这里我不准备大言优化大学问,只是说说自己的体验,窥一斑而知全豹,通过一个小小的实例了解什么是SEO的思想。
想必做过网站的同志们都处理过超链接的问题,一个<a href=”#”></a>让这个网站丰富多彩,走向世界,搜索引擎在搜索时,爬虫会自动爬取这些超链接,看是否有价值,从而决定收录数据等待用户搜索。众所周知Javascript是无法被大部分爬虫爬取的,如果爬虫真的连JS也爬取了,不仅效率变得很低,还会造成数据的冗余无度。这样的话,如果我们将自己的链接写进了Javascript中,那就很悲剧的不会被很快收录,即使这个网站的内容都是原创的、即使这个网站的PR值很高等等。我们来看这样一个小例子:
这是一个前台显示的表单数据:
1: <form id="form1" runat="server">
2: <div id="div1"></div>
3: <div>
4: <a href="javascript:void(0)" id="a1">This is One</a>
5: <a href="javascript:void(0)" id="a2">This is second</a>
6: <a href="javascript:void(0)" id="a3">This is Third</a>
7: </div>
8: </form>
这里我通过一个JQery封装的AJAX操作实现数据异步请求显示,请注意页面的变化:
1: <script src="JS/jquery-1.7.1.js" type="text/javascript"></script>
2: <script type="text/javascript">
3: //回调函数CallBack
4: var loadFinsh = function (data) {
5: $("#div1").text(data);
6: }
7: //Jquery使用
8: $(function () {
9: $("#a1").click(function () {
10: $.post("ashx/GetArt.ashx", { "id": 1 }, loadFinsh);
11: return false;
12: });
13: $("#a2").click(function () {
14: $.post("ashx/GetArt.ashx", { "id": 2 }, loadFinsh);
15: return false;
16: });
17: $("#a3").click(function () {
18: $.post("ashx/GetArt.ashx", { "id": 3 }, loadFinsh);
19: return false;
20: });
21: });
22: </script>
在我的演示项目中的ashx文件夹中建立一般处理程序GetArt.ashx,主要用户处理页面请求,接收页面请求参数id,新建的GetArt.ashx中中的Processrequest(PR方法)中这样处理:
context.Response.ContentType="text/plain";
1: //获取页面的请求id,强转为int32
2: int id = Convert.ToInt32(context.Request["id"]);
3: context.Response.Write(ArticleProvider.Get(id));
在单独的类型处理这个页面的ID值(模拟不同的ID得到不同的文章):
1: /// <summary>
2: ///ArticleProvider 的摘要说明
3: /// </summary>
4: public class ArticleProvider
5: {
6: public static string Get(int id)
7: {
8: string artile = "";
9: switch (id)
10: {
11: case 1:
12: artile = "Show SEO Opreation";
13: break;
14: case 2:
15: artile = "Come Back my Remote Home";
16: break;
17: default :
18: artile = "Olympics ,I will come back";
19: break;
20: }
21: return artile;
22: }
23: }
到这里貌似注意点离开了,首先声明这些方法都是为了让最后的结果看起来更容易理解,我们的重要关注点还是在前台需要优化的地方。
当网站运行起来后,用户访问与爬虫爬取可能就回来了,我们关注的是爬虫怎么来拿走我的页面数据,怎么会较好的收录数据,被搜索引擎的用户搜去。搜索引擎来了发现我这个页面有a标签,但是爬取不到a标签的链接地址,比如这个地址下是我刚发布的重大新闻消息,那也只能自己知道了。很见到搜索引擎处理不了也不愿意处理 javascript:void(0)这样的东西。但是如果我们这样变化:
在前台的form表单做一个变化:
1: <form id="form1" runat="server">
2: <div id="div1"></div>
3: <div>
4: <!—当然真正的网站绝对不是id=1这样静态得到的,这里只是为了演示一种效果-->
5: <a href="ashx/GetArt.ashx?id=1" id="a1">This is One</a>
6: <a href="ashx/GetArt.ashx?id=2" id="a2">This is second</a>
7: <a href="ashx/GetArt.ashx?id=3" id="a3">This is Third</a>
8: </div>
9: </form>
这样我们在搜索引擎的页面直接放链接进<a>标签内部,假如用户的浏览器不支持javascript(当然这个几率很小,除非手工禁用javascript),我们依然可以通过标签的Href访问这个链接。我们可以通过鼠标右键→在新窗口打开链接实验,得到的就会是http://www.localhost:8080/ ashx/GetArt.ashx?id=1 的新页面。这样如果搜索引擎过来即课顺着向下抓取下一条链接,捕获ashx/GetArt.ashx?id=1 页面的数据。
这是一个很小的改动,但是在优化网站上往往会起到很大的用途,这就是简单的SEO思想,我们想尽一切办法在不影响用户体验的基础上讨好搜索引擎,当然搜索引擎的数据搜索算法在不断的更新,为了就是恶意刷去PR值的广告网站,我们的目的是在规则下达到最大的效果,这样的方法不是违规操作。如果满页面放满链接的隐藏域,等待搜索引擎上钩,那就太低智商了,因为百度、google那些人都不是傻子。
好了,有了这个思想起步再去研究搜索引擎,我想会比较好一点。