如何在网站首页使用schema.org和JSON-LD标记数据
How to mark data using schema.org and JSON-LD on a website's home page
最近我读了很多关于使用schema.org标记结构化数据的文章,第一个问题是,是否推荐使用json-ld
?因为它似乎是新的并且还没有得到完全支持。
我的第二个问题是在主页或存档页面上(通常是我们有超过 1 篇文章或产品或博客 post 的页面)我如何使用 schema.org?例如对于这样的页面:
<!DOCTYPE html>
<html>
<head>
<title>Blog Home Page</title>
</head>
<body>
<h1>Blog title</h1>
<!-- this needs schema.org -->
<article>
<h2>Article title</h2>
Writtem by <span>Authorname</span> on <time datetime="">21 april</time>
<p>
Some text
</p>
Rated :
<div class="star-rate">
<span class="star full">
<span class="star full">
<span class="star full">
<span class="star half">
<span class="star empty">
</div>
By <span>5</span> users.
</article>
<article>
<h2>Article title</h2>
Writtem by <span>Authorname</span> on <time datetime="">21 april</time>
<p>
Some text
</p>
Rated :
<div class="star-rate">
<span class="star full">
<span class="star full">
<span class="star full">
<span class="star half">
<span class="star empty">
</div>
By <span>5</span> users.
</article>
<!-- and more articles to go -->
</body>
</html>
如何使用 josn-ld 标记结构化数据以及如何将 json 对象关联到 <article>
标签。
有些消费者支持 JSON-LD,有些则不支持。对此没有统一的答案,这取决于你想支持哪个consumers/features。例如,消费者 Google JSON-LD for some of their features, but 它的一些其他功能。
如果您在一个页面上有多个实体(例如示例中的两篇文章),您只需提供多个节点即可。有多种方法可以实现此目的:
您可以为每个节点提供一个 script
元素:
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "CreativeWork"
}
</script>
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "CreativeWork"
}
</script>
您可以提供一个 script
元素并使用一个数组作为 @graph
的值(为所有节点共享 @context
):
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@graph":
[
{
"@type": "CreativeWork"
},
{
"@type": "CreativeWork"
}
]
}
</script>
为了让其他人能够区分节点(并对其做出自己的声明),您可以为每个节点提供一个带有 @id
keyword.
的 URI
最近我读了很多关于使用schema.org标记结构化数据的文章,第一个问题是,是否推荐使用json-ld
?因为它似乎是新的并且还没有得到完全支持。
我的第二个问题是在主页或存档页面上(通常是我们有超过 1 篇文章或产品或博客 post 的页面)我如何使用 schema.org?例如对于这样的页面:
<!DOCTYPE html>
<html>
<head>
<title>Blog Home Page</title>
</head>
<body>
<h1>Blog title</h1>
<!-- this needs schema.org -->
<article>
<h2>Article title</h2>
Writtem by <span>Authorname</span> on <time datetime="">21 april</time>
<p>
Some text
</p>
Rated :
<div class="star-rate">
<span class="star full">
<span class="star full">
<span class="star full">
<span class="star half">
<span class="star empty">
</div>
By <span>5</span> users.
</article>
<article>
<h2>Article title</h2>
Writtem by <span>Authorname</span> on <time datetime="">21 april</time>
<p>
Some text
</p>
Rated :
<div class="star-rate">
<span class="star full">
<span class="star full">
<span class="star full">
<span class="star half">
<span class="star empty">
</div>
By <span>5</span> users.
</article>
<!-- and more articles to go -->
</body>
</html>
如何使用 josn-ld 标记结构化数据以及如何将 json 对象关联到 <article>
标签。
有些消费者支持 JSON-LD,有些则不支持。对此没有统一的答案,这取决于你想支持哪个consumers/features。例如,消费者 Google
如果您在一个页面上有多个实体(例如示例中的两篇文章),您只需提供多个节点即可。有多种方法可以实现此目的:
您可以为每个节点提供一个
script
元素:<script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "CreativeWork" } </script> <script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "CreativeWork" } </script>
您可以提供一个
script
元素并使用一个数组作为@graph
的值(为所有节点共享@context
):<script type="application/ld+json"> { "@context": "http://schema.org/", "@graph": [ { "@type": "CreativeWork" }, { "@type": "CreativeWork" } ] } </script>
为了让其他人能够区分节点(并对其做出自己的声明),您可以为每个节点提供一个带有 @id
keyword.