OpenGraph or Schema.org?

29,121

Solution 1

So, to start with a couple of cliche's and mangled metaphors - we're talking apples and oranges a bit comparing OG and Schema.org, and when it comes to this metadata it's horses for courses.

The right answer depends on your intent, in adding metadata to your page. What is it that you're hoping to gain? What is the win for you here? The different forms of metadata are for slightly different purposes.

Google has made it clear that it's moving away from a focus on microformats and onto a focus on Schema.org in order to build rich-data results for search. If you want to optimize for Google, Bing and other search engines add the Schema.org markup. It's the direction HTML5 has stepped in.

Facebook OG markup is to be added if what you want is to benefit from turning your content into a social object and enable its multi-point connectivity to the social graph that is the Facebook universe.

In my experience most people are looking to gain from both approaches - do as well as they can in search rankings and increase reach and distribution through social channels. So, IMHO, it's probably best to be as thorough as possible adding the Schema.org markup where it fits your content and use Open Graph metadata. They do slightly different, but complementary things.

Solution 2

We are talking about two separate concepts here: syntax and vocabulary.

The Open Graph Protocol and Schema.org are vocabularies. Other vocabularies are, for example, Dublin Core, FOAF, and SIOC.

These vocabularies are typically not coupled to a specific syntax. If you want to describe your content in HTML documents with such a vocabulary, you could use the syntaxes RDFa and/or Microdata.

Which one should I integrate as I think only 1 is necessary ? [actually can you only integrate one or ?]

Your first example uses Open Graph Protocol (= vocabulary) with RDFa (= syntax). Your second example uses Schema.org (= vocabulary) with Microdata (= syntax).

You can mix them up as you like. (You could use both vocabularies with both syntaxes on the same page. You could use both vocabularies with only one syntax. You could use only one vocabulary with both syntaxes, or with only one syntax. …). It totally depends on your specific use case.

What do you want to achieve? If you are interested in a specific 3rd party parsing your content, you should check their documentation. They typically support only certain vocabularies with certain syntaxes.

But if you want to mark up your content with semantic metadata without having a specific use case in mind, you could stick to one syntax and use whichever vocabularies are appropriate for your content. Personally, I’d choose RDFa (Lite). It is based on RDF, which works with other formats than HTML, too. It is a W3C Recommendation (Microdata is not). And most vocabularies you’ll find are defined in RDF(S). See my answer about the future of RDFa and Microdata.

Solution 3

All depends if you're trying to markup your website for a social world (facebook) or search engines. Both are recommended but if you only have time for one then prioritize the company's marketing focus. OGP is huge for facebook, but does not have an ounce of use in SEO. Seo is completely reliant on micro-data and is the way for proper html5 creation.

HTML5Doctor on Microdata http://html5doctor.com/microdata/

Google talking about markup: http://www.google.com/support/webmasters/bin/answer.py?answer=1211158

Bing talking about markup: http://onlinehelp.microsoft.com/en-us/bing/hh207238.aspx


Update

For anyone finding this answer, a lot has changed since I first posted it. Schema.org is widely used by all major search engines and then some but the markup is now preferred to JSON-LD. Great article from SEO Skeptic outlining the change made by Google.

Google Structured Data provides documentation in JSON-LD and is greatly encouraged although RDFa and microdata is still partial supported.

JSON-LD should be used in conjunction with any social channels you are trying to target OGP for Facebook, Twitter Cards for Twitter, etc

Solution 4

They can both be used safely together. Currently the two efforts use different syntaxes to encode data in HTML (W3C RDFa or Microdata), but there are active discussions at W3C towards eventual convergence of those designs. Or greater compatibility, at least. Whether there will also be convergence at the vocabulary level between Schema.org and OGP, or services that consume both, remains to be seen. But in the meantime they both add value and can be safely combined.

Solution 5

Google does favor schema, and open graph is better for web content that is related to social media. Your sample code looks good, but don't forget to include the prefix

<html prefix="og: http://ogp.me/ns#">

in the head of each page that has ogp.

You can check to make sure the ogp or schema works by using the rich snippet testing tool

http://www.google.com/webmasters/tools/richsnippets

In the case of Schema, you can check by using the SDTT: Structured Data Testing Tool

https://search.google.com/structured-data/testing-tool

Share:
29,121
Tom
Author by

Tom

Updated on October 10, 2021

Comments

  • Tom
    Tom over 2 years

    Just wondering whether you guys out there are favouring the OpenGraph protocol following markup like:

    <meta property="og:title" content="The Rock" />
    <meta property="og:type" content="movie" />
    <meta property="og:url" content="http://www.imdb.com/title/tt0117500/" />
    

    Or the Schema.org protocol with

    <div itemscope itemtype="http://schema.org/Product">
      <span itemprop="name">Kenmore White 17" Microwave</span>
      <img src="kenmore-microwave-17in.jpg" alt='Kenmore 17" Microwave' />
      <div itemprop="aggregateRating"
        itemscope itemprop="http://schema.org/AggregateRating">
    

    Which one should I integrate as I think only 1 is necessary ? [actually can you only integrate one or ?]

    Frankly, IMHO - I think OpenGraph is "less intrusive" to the total codebase - as it's easier to implement Partial Views [using ASP.NET MVC] whereas the Schema.org protocol requires [at least in my opinion] disruptive HTML add-ins across your code ?

    Edit: Seems I ended up integrating both - not sure whether this is allowed but the documentation on Schema.org is unclear. Notably, this link doesn't provide much info

    Q: How does schema.org relate to Facebook Open Graph?
    Facebook Open Graph serves its purpose well, but it doesn't provide the detailed information search engines need to improve the user experience.

    A single web page may have many components, and it may talk about more than one thing. If search engines understand the various components of a page, we can improve our presentation of the data. Even if you mark up your content using the Facebook Open Graph protocol, schema.org provides a mechanism for providing more detail about particular entities on the page.
    For example, a page about a band could include any or all of the following:

    • A list of albums
    • A price for each album
    • A list of songs for each album, along with a link to hear samples of each song
    • A list of upcoming shows Bios of the band members

    So I assume that they are compatible together.

  • mahemoff
    mahemoff almost 12 years
    "Since Facebook is connected to Bing Maps; it would be a safe assumption that the OGP will become obsolete". This is a big leap of logic. Facebook is still very independent from Bing and MS.
  • Matthew Sprankle
    Matthew Sprankle almost 12 years
    It was at a time when the direction seemed different. Thank you for bringing my attention back to this.
  • Rodolfo
    Rodolfo over 11 years
    I just added schema.org info to my product pages, but they also already have a og:image line for facebook/pinterest. When I test the result in Google's rich snippet testing tool, it only recognizes the og:image. Does Google only use one (the first it finds) protocol for a page?