Twitter-Card 元标记问题

Twitter-Card Meta Tag Issue

URL 有问题:https://www.halleonard.com/viewpressreleasedetail.action?releaseid=10261

当您在浏览器和开发人员工具中查看源代码时,您可以看到 Open Graph 和 Twitter 的所有元标记。我检查了 Facebook 调试器,除了一些规范问题外,我对结果相当满意。

我还将上面的 URL 插入到第三方 Open Graph Debugger 中: http://debug.iframely.com/ Open Graph、Twitter 甚至其他的所有标签都返回正面。

为什么 Twitter 的 Card Validator 回来了

INFO:  Page fetched successfully
INFO:  9 metatags were found
ERROR: No card found (Card error)

关于如何让 Twitter 正确显示的任何见解?

我用 w3c 验证器检查了你的源代码。

https://validator.w3.org/

似乎 google 标签管理器没有正确安装:您必须将 google tag manager (noscript)(第 10:13 行)移动到 body 部分的顶部并且绝对从 head 部分删除它。

您可以在这里找到一些信息 https://support.google.com/tagmanager/answer/6103696?hl=en

并且(更具体)在您的标签管理器页面中(如附件)

我认为您可能正在阻止或重定向 Twitterbot 代理。

我用 curl 伪造了一个 Twitterbot 代理:

curl -A 'Twitterbot' https://www.halleonard.com/viewpressreleasedetail.action?releaseid=10261 -o ~/Desktop/what-twitterbot-sees.html

这就是你的服务器 returns:

如您所见,有 10 个元标记(如果排除 <meta charset> 个),这是卡片验证器指示的内容,根本没有 <meta name="twitter:*"> 个标记。

如果您可以设置自定义用户代理字符串,则可以使用您的浏览器进行重现。这可以通过 Google Chrome:

我很确定在您的 Web 服务器级别或您的应用程序代码中存在某种重定向规则。


根据developer.twitter.com,我使用的用户代理字符串是正确的:

Twitter uses the User-Agent of Twitterbot (with version, such as Twitterbot/1.0)

由于您选择的 twitter:card 类型,出现错误。您忘记添加 twitter:image 内容。这两个都应该加上。

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="ADD IMAGE URL">

Reference Link