搜索引擎如何抓取网页(ajax都搜不到我们的页面你以为你尽力了吗)

优采云 发布时间: 2021-10-11 03:45

  搜索引擎如何抓取网页(ajax都搜不到我们的页面你以为你尽力了吗)

  说到Ajax的缺点,很多人会认为不利于SEO的一面。大搜索时代,搜索引擎找不到我们的页面,你肯定会有淡淡的忧伤。你认为你尽力了,显然没有,那我们该怎么办?

  一、 我们先回顾一下ajax的一些缺点,

  ① 破坏浏览器的后退按钮,使其无法运行;

  ②对搜索引擎不友好;

  ③不支持跨域请求;

  ④ ajax脚本语言嵌入在HTML页面中,可以通过查看源码或者firebug等工具直接查看,不利于项目代码的保密。

  如第二个所述,它对搜索引擎不友好。这意味着什么?这么说吧,越来越多的网站开始采用“单页结构”。整个网站只有一个网页,使用ajax技术根据用户输入加载不同的内容。

  这种方式的优点是用户体验好,节省流量。缺点是ajax内容无法被搜索引擎抓取。因为搜索引擎会爬取整个页面的内容,这样统计数据才能达到搜索的目的,而且Ajax请求的文件是在用户操作之前放到服务器上的,不管搜索引擎有多强大,无法搜索信息或资源。.

  因此,缺点是显而易见的。之前也想过这个问题,但是没有很好的解决办法。直到我读到这个文章,我都忍不住为这个案子尖叫了起来。我分享给大家参考:

  how_to_make_search_engines_find_ajax_content

  二、如何解决

  1.用History API替换hash结构,让每个hash符号变成一个正常路径的URL,这样搜索引擎就会抓取每一个网页。

  1

2

3

  example.com/1

example.com/2

example.com/3

  2.定义一个 JavaScript 函数来处理 Ajax 部分并根据 URL 抓取内容(假设使用 jQuery)。

  1

2

3

4

5

6

  function anchorClick(link) {

  var linkSplit = link.split('/').pop();

  $.get('api/' + linkSplit, function(data) {

    $('#content').html(data);

  });

}

  然后定义鼠标的点击事件。

  1

2

3

4

5

  $('#container').on('click', 'a', function(e) {

  window.history.pushState(null, null, $(this).attr('href'));

  anchorClick($(this).attr('href'));

  e.preventDefault();

});

  还要考虑用户单击浏览器的“前进/后退”按钮。这时候会触发History对象的popstate事件。

  1

2

3

  window.addEventListener('popstate', function(e) {

  anchorClick(location.pathname);

});

  定义以上三段代码后,无需刷新页面即可显示正常路径URL和AJAX内容。

  3.设置服务器端。

  因为没有使用 hashtag 结构,所以每个 URL 都是不同的请求。因此,服务器需要向所有这些请求返回具有以下结构的网页,以防止 404 错误。

  1

2

3

4

5

6

7

8

  

  

    

      

        ... ...

      

    

  综上所述,意思很明确。就是用js把url拼出来写进地址栏,这样搜索引擎当然可以抓取页面的内容。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线