Is it possible to use the same meta tag for opengraph and schema.org
Solution 1:
HTML+RDFa 1.1 and Microdata extend HTML5’s meta
element.
HTML+RDFa 1.1 (W3C Recommendation) defines:
If the RDFa
@property
attribute is present on themeta
element, neither the@name
,@http-equiv
, nor@charset
attributes are required and the@content
attribute MUST be specified.
Microdata (W3C Note) defines:
If a
meta
element has anitemprop
attribute, thename
,http-equiv
, andcharset
attributes must be omitted, and thecontent
attribute must be present.
That means:
It’s not allowed to use Microdata’s
itemprop
attribute together with HTML5’sname
attribute.-
It’s allowed to use RDFa’s
property
attribute together with HTML5’sname
attribute:<meta name="description" property="og:description" content="great description" />
(possibly an issue with having this in the
body
instead of thehead
) -
It seems to be allowed to use Microdata’s
itemprop
attribute together with RDFa’sproperty
attribute if HTML5’sname
attribute is not provided:<meta itemprop="description" property="og:description" content="great description" />
(but the W3C Nu Html Checker reports an error)
Solution 2:
How much meta data you use is up to you. There are at least 5 standards, some like Google+ or Pinterest will fall back to OpenGraph. I don't think any search engine will penalize you for following industry standards. If your website sells product and you have product listing pages with many products per page you will likely want to use schema.org, all the major English language search engines and Yandex have agreed to support it. If your website is more content focussed, schema.org is a lot less important but supporting OpenGraph plus Twitter Cards and even Rich Pins may be more of a necessity.
This is a good article on the various competing standards and which to use. Many people want all the traffic they can get so support many standards.
Solution 3:
<!DOCTYPE html>
<html vocab="http://www.w3.org/2011/rdfa-context/rdfa-1.1" lang="en" dir="ltr">
<head>
<!--w3c-->
<title property="schema:name">Page Title</title>
<meta name="description" content="great description">
<!--schema.org-->
<meta property="schema:name" content="Page Title">
<meta property="schema:description" content="great description">
<!-- opengraph-->
<meta property="og:title" content="Page Title">
<meta property="og:description" content="great description">
<meta property="schema:description og:description" content="great description">
</head>
<body>
</body>
</html>