领英分享网站时无法获取元数据

12
我在LinkedIn上分享我正在开发的网站时遇到了问题:LinkedIn无法从页面中获取任何数据。该网站的元数据遵循官方文档的建议。我尝试了所有这些建议
此外,我还调查了以下内容:
  1. 将内容通过HTTP而不是HTTPS提供,但许多其他网站都通过HTTPS提供内容,例如https://stripe.com/nohttps://www.facebook.com/,运行良好。
  2. 以公司页面的身份发布。这没有任何区别,除了允许手动输入数据(作为临时解决方案很方便)。
  3. 以不同的用户身份发布。没有任何区别。
  4. 在网站上发布新内容,以确保LinkedIn没有缓存元数据。这也没有任何区别。
  5. 在添加Open Graph元标记之前,这也是一个问题。

这可能是由LinkedIn引起的问题,但是考虑到其他网站可以正常工作,我也不排除是我做错了什么。


你找到解决方案了吗? - Thijs
@Thijs 我记不太清了,但我想它过了一会儿就开始工作了。 - Yngve Høiseth
6个回答

9
我认为您在 LinkedIn 从您的网站抓取数据方面不会看到任何更改,大约需要一周时间:
当LinkedIn的爬虫第一次访问一个网页并通过URL分享内容时,它发现的数据(开放图谱值或我们自己的分析)将被缓存约7天。
这意味着,如果您随后更改了文章的描述,上传了新的图片,修复了标题中的拼写错误等,您在任何后续尝试共享页面时都不会看到更改的表示,直到缓存过期并且强制爬虫重新访问页面以检索新鲜内容。 https://developer.linkedin.com/docs/share-on-linkedin(滚动到底部)

我已经尝试发布新内容,所以缓存不应该是问题。(请参见上面的第4点。) - Yngve Høiseth
2
嗯,这似乎是LinkedIn已知的问题。很可能他们还没有进行修正。即使过了3个星期,我的网站链接仍然没有更新。我唯一的解决办法是通过添加一个get参数来稍微修改URL。https://test.com/?1 如果有其他解决方案,请告诉我。 - mythicalcoder

1
在我的情况下,LinkedIn解析器非常差劲,如果您的HTML文件没有<head>标签(这不是规范要求的),它将忽略一切,以下内容也无法正常工作。
<!doctype html>
<meta charset=utf-8>                                                            
<meta property=og:title content='My Shared Article Title'>                      
<meta property=og:description content='Description of shared article'>          
<meta property=og:image content=http://i.imgur.com/12345.jpg>                
<meta name=description content='Nice description'>
<title>TEST 15</title>
<p>content here</p>

但是仅仅添加开头的<head>标签(仍然是有效的HTML),就解决了问题。
<!doctype html>
<head>
<meta charset=utf-8>                                                            
<meta property=og:title content='My Shared Article Title'>                      
<meta property=og:description content='Description of shared article'>          
<meta property=og:image content=http://i.imgur.com/12345.jpg>                
<meta name=description content='Nice description'>
<title>TEST 15</title>
<p>content here</p>

你应该在标题后关闭头部并在第一个内容前添加body标签! - Philip
实际上,省略关闭标签是可以的,@PhilipMiglinci。(虽然节省几个字节的优点相当微不足道。) - ACJ
最近遇到了这样的问题,我的网站压缩程序有一个标志,可以去除不在官方HTML规范中的“不必要”的标签,因此<head>被删除了。关闭该标志后,问题立即得到解决。 - slawder

1

在所有编程事物中,让我们首先查看官方 LinkedIn 分享文档!LinkedIn分享API将尊重您HTML中以下的og:标签...

  • <meta property='og:title' content='文章标题"/>
  • <meta property='og:image' content='//media.example.com/ 1234567.jpg"/>
  • <meta property='og:description' content='在预览中显示的描述"/>
  • <meta property='og:url' content='//www.example.com/文章URL" />

想要确保使用正确吗?那很容易--查看官方 LinkedIn 帖子检查器来调试、检查和验证您的分享URL。


0

我也遇到了相同的问题。清除浏览器缓存记录。然后将 'prefix="og: http://ogp.me/ns#"' 添加到每个元数据标签中,它将立即生效:

    <meta prefix="og: http://ogp.me/ns#" property='og:title' content='Content Title'/>
    <meta prefix="og: http://ogp.me/ns#" property='og:image' content='https://images.url...'/>
    <meta prefix="og: http://ogp.me/ns#" property='og:description' content='Description'/>
    <meta prefix="og: http://ogp.me/ns#" property='og:url' content='https://site_url/'/>

0

0
对我来说,问题是一个始终包含根域名值的og:url标签。
<meta property="og:url" content="https://example.com/">

这导致LinkedIn始终获取并显示此根域的缓存内容(仅LinkedIn遇到此问题,其他网站如Facebook、WhatsApp、Instagram、MS Teams等都能正常工作,这就是我感到困惑的原因)。
一旦我开始在每个子页面上覆盖og:url,问题就解决了。
// page 1:
<meta property="og:url" content="https://example.com/page-11">
// page 2:
<meta property="og:url" content="https://example.com/page-2">
// etc.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接