SEO中链接的微处理

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那些人都不是傻子。

好了,有了这个思想起步再去研究搜索引擎,我想会比较好一点。

原文地址:https://www.cnblogs.com/sunBolg/p/2661528.html