社交媒体必备元数据标签

Avatar of Adam Coti
Adam Coti 发表

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

如今,几乎每个网站都鼓励访客在社交媒体上分享其页面。我们都见过无处不在的 Facebook 和 Twitter 图标,以及其他一些图标,它们都在恳求被点击。这并不奇怪,因为通过社交媒体分享(互联网版的口碑传播)是企业和个人提高知名度的最有效方法之一。

当用户选择分享这些链接时,网页开发人员的任务是确保关联的网页已做好充分准备,这就是我们现在要研究的内容。Facebook 和 Twitter 是迄今为止最受欢迎的社交媒体平台,因此让我们专注于这两个平台。

在 Facebook 和 Twitter 上分享

Facebook 为开发者提供了多种选择,让他们可以根据网站内容在时间线上显示共享网页。除非另有说明,否则每个网站都默认为名为“网站”的类型,这也是我们将使用的示例。

假设有人分享了一个虚构旅游公司的首页 - Facebook 会像这样显示它

Facebook 卡片

Twitter 也有多种方法来格式化出现在其 feed 中的共享网页,但我们将查看与上面 Facebook 示例非常相似的一种,Twitter 将其称为“带大型图片的摘要卡片”

Twitter 卡片

我们可以看到,每个功能都包含共享网页的多个属性

  • 醒目的图片和标题
  • 描述
  • 域名

专有 <meta> 标签

我们如何指定这些属性?使用 <meta> 标签。当链接被分享时,Facebook 和 Twitter 都会抓取关联的网页并读取其 <meta> 标签以显示相应的信息。

Facebook 使用 <meta> 标签利用 Open Graph 协议,这是一种用于网页的分类系统,它扩展了 HTML5 中已定义的 <meta> 标签。可以在 Open Graph 网站上找到可用 <meta> 标签的完整列表。可供选择的内容很多,这可能会让人有点不知所措,但实际上只需要四个

<meta property="og:title" content="The Rock" />
<meta property="og:type" content="video.movie" />
<meta property="og:url" content="https://www.imdb.com/title/tt0117500/" />
<meta property="og:image" content="https://ia.media-imdb.com/images/rock.jpg" />
这篇文章的先前版本列出了这四个
<meta property="og:title" content="European Travel Destinations">
<meta property="og:description" content="Offering tour packages for individuals or groups.">
<meta property="og:image" content="http://euro-travel-example.com/thumbnail.jpg">
<meta property="og:url" content="http://euro-travel-example.com/index.htm">

所以我们要么错了,要么它发生了变化。

Twitter 有自己的 <meta> 标签,类似于 Open Graph 协议,但使用“twitter”前缀而不是“og”。与 Facebook 一样,也只需要几个。我们从 Twitter 请求的显示格式类型也会被指定

<meta name="twitter:title" content="European Travel Destinations ">
<meta name="twitter:description" content=" Offering tour packages for individuals or groups.">
<meta name="twitter:image" content=" http://euro-travel-example.com/thumbnail.jpg">
<meta name="twitter:card" content="summary_large_image">

Facebook 和 Twitter 都提供了关于如何使用上述 <meta> 标签的指南。它们彼此非常相似,尽管在解释上可能有些主观。请注意,就我们的目的而言,Facebook 在使用“对象”一词时指的是共享的网页

 FacebookTwitter
标题对象的标题、标题或名称。相关内容的简洁标题。[最多 70 个字符。]
描述对象的简短描述或摘要。[2 到 4 个句子。]简洁地概括内容的描述,适合在推文中呈现。您不应将标题重复用作描述,也不应使用此字段来描述网站提供的通用服务。[最多 200 个字符。]
图片您对象的图像的 URL。它应该至少为 600×315 像素,但建议使用 1200×630 或更大的尺寸(最多 5MB)。保持接近 1.91:1 的纵横比,以避免裁剪。表示页面内容的唯一图像的 URL。您不应使用通用图像,例如您的网站徽标、作者照片或跨越多个页面的其他图像。此卡片的图像宽度应至少为 280 像素,高度应至少为 150 像素。图像大小必须小于 1MB。
URL您页面的规范 URL。这应该是未修饰的 URL,不包含会话变量、用户识别参数或计数器。 

由于这些专有 <meta> 标签最终指的是相同的元素,因此如果有一种方法可以协调这两个标签,那将是理想的。幸运的是,确实有。

协调 标签

拥有多个看起来冗余的 <meta> 标签不会造成任何损害。过多的信息永远不会伤害任何人,除非它会向 HTML 文件中添加一些额外的字节。

但就我们的目的而言,为了简洁起见,我们可以利用 Twitter 允许我们用自己的标签替换 Open Graph <meta> 标签这一事实。最终,除了需要指定显示格式外,不需要任何自定义的 Twitter <meta> 标签。这给了我们以下内容,这可以被认为是使网页适合在社交媒体上分享所需的 <meta> 标签的最低限度

<meta property="og:title" content="European Travel Destinations">
<meta property="og:type" content="article" />
<meta property="og:description" content="Offering tour packages for individuals or groups.">
<meta property="og:image" content="http://euro-travel-example.com/thumbnail.jpg">
<meta property="og:url" content="http://euro-travel-example.com/index.htm">
<meta name="twitter:card" content="summary_large_image">

协调图像指南很简单:遵循 Facebook 的建议,将最小尺寸设置为 1200×630 像素,并将纵横比设置为 1.91:1,但遵守 Twitter 的文件大小要求,即小于 1MB。

验证 <meta> 标签

如果对减少到这五个标签的合理性有任何疑问,我们可以使用有帮助的 Facebook 分享调试器Twitter 卡片验证器。这两个工具都会抓取公共服务器上托管的任何网页以查找相关的 <meta> 标签,并显示其在共享时的外观。它还会列出任何错误并提供建议。那么,我们在这个特定示例中做得如何呢?Twitter 似乎对这些内容没问题,但另一方面,Facebook 将一项内容列为警告

Facebook 警告

这为我们接下来要讨论的内容提供了一个完美的过渡……

社交媒体分析

Facebook 指出的是,如果您要使用他们的分析工具(他们称之为 域名洞察),则必须提供与您的帐户关联的唯一 ID 号码。然后 标签将如下所示

<meta property="fb:app_id" content="your_app_id" />

Twitter 有类似的功能,他们称之为 Twitter 卡片分析。为了充分利用此工具,Twitter 建议使用以下 标签,其中包含您希望与共享网页关联的 Twitter 用户名

<meta name="twitter:site" content="@website-username">

但是请记住,如果您对使用这些分析工具没有特别的兴趣,那么省略上述两个 <meta> 标签不会影响共享网页在 Facebook 时间线或 Twitter feed 中的显示方式。

其他内容?

Facebook 文档建议使用一个额外的 <meta> 标签,尽管它不是必需的。一个表示共享页面所在的网站名称的标签

<meta property="og:site_name" content="European Travel, Inc.">

Twitter 也建议使用另一个 标签,该标签是推荐的,但不是必需的

<meta name="twitter:image:alt" content="Alt text for image">

这为视力障碍者提供了替代的图像描述。

最终标记

应该就是这样。重申一下,当您查看 Facebook 和 Twitter 关于共享网页的文档时,还有许多其他可用的 标签可用于指定不同类型的内容。但是,一般来说,以下内容就足够了

<!--  Essential META Tags -->
<meta property="og:title" content="European Travel Destinations">
<meta property="og:type" content="article" />
<meta property="og:image" content="http://euro-travel-example.com/thumbnail.jpg">
<meta property="og:url" content="http://euro-travel-example.com/index.htm">
<meta name="twitter:card" content="summary_large_image">

<!--  Non-Essential, But Recommended -->
<meta property="og:description" content="Offering tour packages for individuals or groups.">
<meta property="og:site_name" content="European Travel, Inc.">
<meta name="twitter:image:alt" content="Alt text for image">

<!--  Non-Essential, But Required for Analytics -->
<meta property="fb:app_id" content="your_app_id" />
<meta name="twitter:site" content="@website-username">

资源