【发布时间】:2021-08-09 00:58:05
【问题描述】:
我一直在与vue-meta npm package 合作更新我的元标记。但是我看到一个问题,即我放入 metaInfo() 的值在谷歌搜索描述中没有正确呈现。
metaInfo () {
return {
title: 'FAQ',
meta: [
{name: 'description', content: 'How can we help you?'},
{property: 'og:title', content: 'How can we help you?'},
{property: 'og:site_name', content: 'FAQ site'},
{property: 'og:description', content: 'How can we help you?'}
]
}
}
如果我们在浏览器中打开 devtools,我们可以看到在 DOM 中附加了元标记。所以我们现在有两个描述。
- 我们放入
index.html文件的元描述。 - 借助 vue-meta 包附加在 DOM 中的元描述。
我读了很多关于 vue-meta 的文章,我很难找到不使用 SSR 或 Nuxt 的解决方案,这样我们就可以在不使用 SSR 的情况下使用 vue-meta。
【问题讨论】:
-
那么,您的 Nuxt 设置是什么:
target: static和ssr: false?使用 SSR 有什么问题?事实是,即使谷歌可以读取JS生成的内容,对于需要解析的内容也不会给出好的分数。如果您想要一些真正的 SEO 提升,唯一的做法是全力以赴并提前生成页面。要查看没有 SPA 的情况下可用的内容,您可以禁用 JS 并检查源代码。在 Nuxt 的情况下,不确定你叫什么index.html。通过再次阅读您的问题,您似乎实际上正在运行 Vue? -
@kissu 感谢您的回复。我只使用 vue.js 而不是在我的应用程序的任何地方使用 nuxt。它是一个拥抱应用程序,因此使用 nuxt 将完全重写整个应用程序。所以我想知道有没有其他方法可以在没有 SSR 的情况下使用 vue-meta 更新元标记属性。因为没有 SSR 的 vue-meta 不能正常工作。
-
Vue-meta 与此无关。它所做的只是在您运行 Vue 应用程序时附加/修改元标记,并且它正在正确地执行此操作。 Google 搜索结果不会运行您的 Vue 应用程序,它只会读取您 HTML 页面上的内容。因此,要么你需要在你的 index.html 中包含一些基本的元标记,如果它需要每个页面有不同的元内容,你就必须预先用 SSR 渲染页面。没有办法让谷歌为你的搜索结果解析你的运行时 javascript 代码。
-
实际上,将 Vue 应用程序传递到 Nuxt 应用程序并不是一件容易的事。你也许可以试一试。你会比预期更快地实现它。
标签: vue.js seo nuxt.js meta vue-meta