Javascript 谷歌爬虫能否读取页面加载后由延迟脚本插入的JSON-LD?

Javascript 谷歌爬虫能否读取页面加载后由延迟脚本插入的JSON-LD?,javascript,asynchronous,deferred,deferred-execution,deferred-loading,Javascript,Asynchronous,Deferred,Deferred Execution,Deferred Loading,我有一个网站,内容通过一个延迟的JavaScript小部件拉入页面,以使其无阻塞,并确保页脚中的依赖项脚本在小部件之前加载: 这个小部件还将(JSON-LD)的标记注入到页面中,但我在Google搜索结果页面中没有看到这些结果。当我检查“使用我的页面的URL”时,我可以看到呈现的页面标记中没有填充JSON-LD标记 说: 当JSON-LD数据被动态注入页面内容时,比如通过JavaScript代码或内容管理系统中的嵌入式小部件,Google可以读取JSON-LD数据 但是,它没有指定这是否仍然

我有一个网站,内容通过一个延迟的JavaScript小部件拉入页面,以使其无阻塞,并确保页脚中的依赖项脚本在小部件之前加载:


这个小部件还将(JSON-LD)的标记注入到页面中,但我在Google搜索结果页面中没有看到这些结果。当我检查“使用我的页面的URL”时,我可以看到呈现的页面标记中没有填充JSON-LD标记

说:

当JSON-LD数据被动态注入页面内容时,比如通过JavaScript代码或内容管理系统中的嵌入式小部件,Google可以读取JSON-LD数据


但是,它没有指定这是否仍然适用于具有
defer
async
属性的脚本。我不能让它工作,但我需要小部件异步执行,否则我会因为有阻塞脚本而在PageSpeed Insights中受到惩罚。有人找到解决办法了吗?

我想,你找不到。加载dom后,Google引擎将立即读取模式。如果你关心页面速度,担心LD+JSON模式的构建占用了太多的时间,你可以考虑使用微数据而不是JSON-LD。

谢谢,这很有帮助。有一些数据我想包含在模式中,但没有显示在页面上,有解决方案吗?@LewisDonovan抱歉回答得太晚了。当然可以。若您想拥有数据,但却将其隐藏在页面中,则可以使用
meta
标记。请看最后一个例子,但是,要小心,如果你的微数据与你显示的数据有根本不同,谷歌引擎可能不喜欢这样,它会采取行动(在极端情况下,它甚至可能将你的网站列入黑名单)。谢谢你的帮助。