The blog is basically a page that lists the summary of like 10 articles, each item title linking to the full article page.
I've seen:
Where do I use these?
Right now on the individual article page I have:
<article itemscope itemtype="http://schema.org/Article">
<h1 itemprop="name"> <a href="..."> A title... </a> </h1>
<div itemprop="articleBody">
bla bla
</div>
...
</article>
Which is ok I guess, but what do I do on the article index page? Do I add these to each article and add itemscope itemtype="http://schema.org/Blog" itemprop="blogPosts"
to the container element of all articles? Because in the docs it doesn't appear that article is a child of blog...
I agree with what others say that the subject is very vague. Never the less I will attempt to express my thoughts on the matter and show you how I'm doing it on my blog.
I use both WebPage and Blog item types in the same document to mark up different things.
I use WebPage item type on the body tag (but you can also use any other parent of the breadcrumb). By doing so I can mark up my bread crumbs.
<body itemscope itemtype="http://schema.org/WebPage">
<ul itemprop="breadcrumb">
<li>
<a href="foo">foo</a>
</li>
<li>
<a href="foo/bar">bar</a>
</li>
<li>
<a href="foo/bar/baz">baz</a>
</li>
</ul>
...
</body>
When I loop the blog posts I use the Blog item type on the wrapper that contains all of the blog articles. I mark every article with the property blogPosts
and uses of course BlogPosting as item type.
<section itemscope itemtype="http://schema.org/Blog">
<article itemprop="blogPosts" itemscope itemtype="http://schema.org/BlogPosting">
...
</article>
<article itemprop="blogPosts" itemscope itemtype="http://schema.org/BlogPosting">
...
</article>
...
</section>
See edit below for an update to this opinion
On the articles landing page I don't use the Blog item type. But I do mark the post as a BlogPosting item.
<article itemscope itemtype="http://schema.org/BlogPosting">
...
</article>
The only reason I can see that you would wanna mark something with a Blog item type is because of the blogPosts
properties and the fact to say that it is a blog.I think you fulfill saying that it's a blog by marking the article as a BlogPosting . I also don't think it's correct using the property in this context since this is used in a plural form. To me that reflect a different area of use.
I'm not sure if the schema has extended or if I missed it the first time around, but the Blog item has a property called blogPost
now, that is the singular form blogPosts
. So then I would say that it makes more sense to mark up the main element as the Blog item and use the blogPost
property for the article and mark it up as a BlogPosting item
I would use http://schema.org/WebPage for your all up page since this allows you to define things like Breadcrumbs/navigation which are important for describing a site regardless of the particular content.
There is still a lot of work needed in the microdata schemas and you've pointed out what appears to be a gap -- there is no parent/child relationship between Article and anything else that I can see (eg 'Articleindex' or 'Articles').
I haven't really read anything that indicates this parent child hierarchy is super important anyways, unless the parent is experssing attributes which are important to convey, so I think you can get away with either.
However, you haven't mentioned what type of content the "articles" are. If they are more journalistic or official in nature (like a news article, research paper, etc) I'd use http://schema.org/Article for each article and not worry about the article index page. Otherwise, use http://schema.org/Blog http://schema.org/BlogPosting for each.
The Article and Blog schema descriptions are pretty vague right now and will probably change sometime in the future, but i believe the Blog schema to be a little more relevant for a, well, blog (it's even implied in the Article schema description page down below, under " More specific types
").
So, you can start by defining your main blog page with the higher level schema:
<!DOCTYPE html itemscope itemtype="http://schema.org/Blog">
<meta itemprop="creator" content="Creator of the blog">
<meta itemprop="name" content="Title of your Blog">
<meta itemprop="description" content="Description of your blog">
<meta itemprop="image" content="http://www.yourblog.com/main/image/pic.gif">
And you can define your blog pages with the second level blog schema, BlogPosting , and define the appropriate item properties, like so:
<!DOCTYPE html itemscope itemtype="http://schema.org/BlogPosting">
<meta itemprop="author" content="Author of your blog">
<meta itemprop="name" content="Title of your content">
<meta itemprop="description" content="Description of your post">
<meta itemprop="image" content="http://www.yourblog.com/post/image/pic.gif">
Urghh, complicated :P, there are a million properties you can employ, but just focus on the most important ones.
Oops! this code is error!
<!DOCTYPE html itemscope itemtype="http://schema.org/Blog">
You should use this code:
<!DOCTYPE html>
instead of:
<!DOCTYPE html itemscope itemtype="http://schema.org/Blog">
When we declare the type of the blog, we can add it in body tag:
<body itemscope='' itemtype='http://schema.org/Blog'>
Inside of this section, we can use "Itemprop" as the property of the itemtype.
We're talking about the type of a site, not a basic language of a site.
Here are other important itemscopes to use
Example for Person
<div itemscope itemtype="http://schema.org/Person">
<span itemprop="name">Mahdi Maghrooni</span>
<img src="http://maghrooni.ir/img/users/FCwNdpWQKGQqiZphN6rj2YuHY3bXrF.jpg" itemprop="image" alt="Maghrooni" />
</div>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.