News item in Schema.org

Simon Arnold picture Simon Arnold · Jan 13, 2015 · Viewed 8.5k times · Source

I'm currently working on a news page for a website. Since I don't find any news example on http://schema.org/, I was wondering what's the best Schema.org type for this?

<li>
  <time>2015-12-31<time>
  <div>
    <h2>News title</h2>
    <div class="content">Lorem Ipsum</div>
  </div>
</li>

Should I even bother adding Microdata?

What I currently have:

<li itemscope itemtype="http://schema.org/Article">
  <time itemprop="datePublished">2015-12-31<time>
  <div>
    <h2 itemprop="headline">News title</h2>
    <div class="content" itemprop="description">Lorem Ipsum</div>
  </div>
</li>

Is Article appropriate?
Should I use headline or name?
Should I use description or articleBody?

Answer

unor picture unor · Jan 13, 2015

The Schema.org type Article is appropriate, as its description says (bold emphasis mine):

An article, such as a news article or piece of investigative report. […]

But you can even be more specific by using the NewsArticle type (note that by using this type, your news post is also an Article and also an CreativeWork and also a Thing, so you don’t "miss" anything).

Regarding description vs. articleBody: Just like their descriptions say, you would use description for a "short description" and articleBody for the "actual body" of the news article.

Regarding name vs. headline: they would often have the same content, so if you don’t know/need this difference, you could either use both (itemprop="headline name") or simply go with name (as this is what every item/Thing can have, while headline is an addition for CreativeWork only).

It has nothing to do with the Microdata, but you might want to use the article element for each news post in this list. If it’s a list, for example, of recent news posts, the parent should probably not be article but section:

<section>
  <h1>Recent news posts</h1>
  <ul>
    <li><article><!-- news post 1 --></article></li>
    <li><article><!-- news post 2 --></article></li>
  </ul>
</section>

And an article could look like:

<li>
  <article itemscope itemtype="http://schema.org/NewsArticle">
    <header>
      <time itemprop="datePublished">2015-12-31<time>
      <h2 itemprop="name">News title</h2>
    </header>

    <div itemprop="description"><!-- news teaser --></div>
    <!-- or "articleBody" instead of "description" if it’s the full content -->

  </article>
</li>