0

我希望谷歌机器人识别我的页面的标题和描述,标题和描述来自数据库..我用

document.title = $scope.dataFetchedFromDB.title;

document.querySelector("meta[name='description']").content = $scope.dataFetchedFromDB.description;

它确实会更改浏览器中的标题和描述,但不会更改 google、facebook 或 slack 获取的片段……旧的标题和描述仍然存在。

我知道 ng-meta npm 包,但我的页面没有静态路由,路由由页面 ID 确定(每个页面都有其 ID 及其描述和标题)我也读过

4

1 回答 1

0

请记住,虽然 Google 说他们使用 JavaScript 来抓取页面,但 Facebook、Twitter 等却没有。您可以通过此处的链接测试 Google 对您页面的呈现。

但谷歌需要一段时间才能在他们的片段中索引这些变化。我建议创建一个 Google Search Console 帐户并让它获取并呈现您希望它重新索引的页面。即便如此,公开结果也需要数天或数周才能反映您的更改。

此外,使用 Javascript 的 Googlebot 似乎没有太大的耐心。尝试确保您在页面加载后的瞬间更改您的标题和描述,而不是在最后。在一些小测试中,Googlebot 渲染器似乎可能会在几秒钟后超时,并且仅捕获原始标题和描述。

为了让 Facebook/Twitter 等其他网站呈现正确的元数据,您需要在服务器端呈现这些数据。当您说“查看源代码...”时出现的任何内容都会被这些简化的爬虫看到。考虑更新到 Angular(来自 AngularJS)并尝试为您的元数据进行服务器端渲染。

于 2018-05-07T22:18:53.157 回答