我通过Javascript动态地将一些JSON-LD注入到页面中,当我使用Google的结构化数据测试工具测试页面时,会出现预期的输出,我可以看到Product被呈现。
但是,如果我推迟加载负责获取JSON内容的脚本,然后调用函数将其注入窗口"load“事件侦听器中,则该内容将不再出现在结构化数据测试工具中。
简而言之,测试工具在我这样做时会显示我的标记.
<script src="https://example.site.com/rich-snippet/dist.js"></script>
<script>
richSnippet();
</script>但当我这么做的时候。
<script src="https://example.site.com/rich-snippet/dist.js" defer=""></script>
<script>
window.addEventListener('load', (event) => {
richSnippet();
});
</script>我想我想问的是,这是否是测试工具的一个缺点,还是延迟/加载方法在Google能够索引内容方面走得太远了。
发布于 2019-09-11 16:36:20
<script src="https://example.site.com/rich-snippet/dist.js" defer=""></script>
<script>
window.addEventListener('load', function() {
richSnippet();
});
</script>删除ES6语法似乎解决了这个问题,我认为这是由于将要传递的事件的上下文所致。
你为什么要通过JavaScript添加这个标记呢?似乎在>HTML代码中使用它是最简单的方法,而且最有可能被搜索引擎所接受。
为什么不使用JavaScript或任何其他语言?在每一种情况下,拥有硬编码的HTML都是违反直觉的。
发布于 2019-09-12 00:41:24
结构化数据测试工具处理JavaScript的能力非常有限。
然而,Googlebot和他们的其他测试工具(URL检查、富结果测试工具、移动友好测试工具)都使用最新版本的Chrome呈现页面,因此很好地处理JavaScript。
如果Results测试工具没有直接报告您使用的结构化数据,那么将其呈现的html复制到SDTT中。
https://webmasters.stackexchange.com/questions/125103
复制相似问题