我的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>
为什么我的导航栏链接不被抓取器拾取?
编辑:应该注意的是我对搜索引擎优化很新
答案 0 :(得分:0)
一般来说,我在这篇文章中以其他方式回答了你的问题: https://stackoverflow.com/a/38948082/6715875
但是,如果我为你详细说明,我会简要地对你说:
在加载DOM
之后部分更新的所有内容都不会被搜索引擎抓取工具编入索引。在这种情况下,您可以选择我在上面链接中提到的一些解决方案。
问候。