为什么我的javascript渲染导航栏没有被抓取?

时间:2016-08-12 15:39:08

标签: javascript jquery html ajax seo

我的bootstrap导航栏是通过$(document).ready中的函数调用加载的。此函数加载导航栏(在header.html中),如下所示:

function loadHeader(callback){
    $.ajax({
        url: "/resources/"+language+"/header.html",
        async: true,
        success: function (data) {
            $('body').append(data);

            if(callback){
                callback();
            }

        },
        dataType: 'html'
    });     
}

我已尝试设置async = false,但抓取工具仍然无法获取导航栏中的链接(我已通过Google搜索控制台尝试使用fetch + render,以及通过抓取程序尖叫青蛙)。

最奇怪的是,导航栏是在其他几个动态页面元素之前加载的,Google搜索控制台在渲染时没有问题。

以下是我的导航栏(在header.html中)的预览:

<nav class="navbar navbar-default navbar-fixed-top index-nav">
    <div class="container" style="width:100%;">      
      <div class="navbrand">
        <a class="navbar-brand page-scroll" href="/en/">
          <img class="homelogo" src="/logos/company-Logo.png"/>
        </a>
      </div>
      <ul class="nav navbar-nav navbar-left">
        <li class="dropdown resourcesLI">
          <a class="dropdown-toggle mousePointer" data-toggle="dropdown">Resources</a>
          <ul class="dropdown-menu" role="menu">
              <li class="Link"><a href="/en/page_1.html">Page 1</a></li>                            
              <li class="Link"><a href="/en/page_2.html">Page 2</a></li>
          </ul>
        </li>
      </ul>
    </div>
  </nav>

为什么我的导航栏链接不被抓取器拾取?

编辑:应该注意的是我对搜索引擎优化很新

1 个答案:

答案 0 :(得分:0)

一般来说,我在这篇文章中以其他方式回答了你的问题: https://stackoverflow.com/a/38948082/6715875

但是,如果我为你详细说明,我会简要地对你说: 在加载DOM之后部分更新的所有内容都不会被搜索引擎抓取工具编入索引。在这种情况下,您可以选择我在上面链接中提到的一些解决方案。

问候。