Open Graph vs Schema Markup: They Do Completely Different Things

Last Updated: February 25, 2026 · 9 min read

Open Graph and Schema Markup (JSON-LD) are both metadata standards, and both live on your web page, but they serve completely different audiences. Confusing them is one of the most common misconceptions in technical SEO. The short answer: Open Graph is for social media previews; Schema Markup is for search engines. You need both.

🔵 Open Graph (OG Tags)

  • ✓ Created by Facebook (2010)
  • ✓ Lives in HTML <meta> tags
  • ✓ Controls social media link previews
  • ✓ Used by Facebook, LinkedIn, Slack, WhatsApp, Discord
  • ✓ Defines: title, description, image, URL, type
  • ✗ Google ignores OG tags for ranking

🟣 Schema Markup (JSON-LD)

  • ✓ Created by Google/Bing/Yahoo (2011)
  • ✓ Lives in <script type="application/ld+json">
  • ✓ Controls Google rich results
  • ✓ Used by Google, Bing, Yahoo, AI crawlers
  • ✓ Defines: prices, ratings, events, recipes, jobs, etc.
  • ✗ Social platforms mostly ignore JSON-LD

1. Side-by-Side Code Comparison

Both living on the same article page:

Open Graph (in <head>)

<!-- Controls Facebook/LinkedIn preview -->
<meta property="og:type"
  content="article" />
<meta property="og:title"
  content="My Article Title" />
<meta property="og:description"
  content="Short preview text..." />
<meta property="og:image"
  content="https://example.com/img.jpg" />
<meta property="og:url"
  content="https://example.com/article" />

<!-- Twitter-specific card tags -->
<meta name="twitter:card"
  content="summary_large_image" />
<meta name="twitter:title"
  content="My Article Title" />

Schema Markup (JSON-LD)

<!-- Controls Google rich results -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "My Article Title",
  "datePublished": "2026-02-25",
  "author": {
    "@type": "Person",
    "name": "Jane Doe"
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.com/article"
  }
}
</script>

2. The Overlap — Where They Describe the Same Thing Differently

ConceptOpen GraphSchema Markup (JSON-LD)
Page titleog:title"headline"
Descriptionog:description"description"
Imageog:image"image"
Page URLog:url"url" or "@id"
Content typeog:type (article, website)"@type" (Article, WebPage)
Author namearticle:author"author": { "name": "..." }
Publish datearticle:published_time"datePublished"

⚠️ Keep them consistent

While they serve different audiences, the title, description, image, and URL should match across OG tags and JSON-LD. Contradictions between them can confuse search engines and social crawlers about what the page is actually about.

3. Do OG Tags Help SEO?

Does Google use OG tags for ranking?

No. Google's John Mueller has confirmed Google does not use OG meta tags as a ranking signal. They are completely ignored for organic search.

Can OG tags help SEO indirectly?

Yes — if your OG image is compelling, it drives more social shares and link clicks, which can generate backlinks and branded search. But this is indirect, not a direct ranking factor.

Does Schema Markup affect social previews?

Almost never. Facebook, LinkedIn, and Twitter primarily use OG tags for link preview generation. They do not read JSON-LD to build previews.

Which should I prioritise if I can only do one?

If SEO is the goal, prioritise Schema Markup. If social sharing performance matters more, prioritise OG tags. Ideally, implement both — a good SEO plugin handles both at once.

4. The Right Approach: Implement Both

A good SEO plugin (Yoast, RankMath) handles OG tags and basic Article/WebPage schema simultaneously. For more specific schema types (Product, Recipe, Event), you add JSON-LD on top.

✅ Complete metadata strategy per page

OG tags: Title, description, image, URL on every page (SEO plugin handles this)
Twitter Card: summary_large_image on every page (SEO plugin handles this)
JSON-LD: Article/WebPage on blog posts + Organization in layout (SEO plugin) + specific types (Product, Recipe, etc.) per page type

5. Twitter Cards: The Third Metadata Layer

Beyond Open Graph and Schema Markup, there is a third metadata layer: Twitter Cards (now X Cards). Twitter/X does not reliably read OG tags — it has its own twitter: meta tags that control link preview appearance on the platform:

<!-- OG tags (Facebook, LinkedIn, Discord, Slack) -->
<meta property="og:title" content="Article Title" />
<meta property="og:description" content="Preview text" />
<meta property="og:image" content="https://example.com/img.jpg" />

<!-- Twitter Cards (X/Twitter specifically) -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Article Title" />
<meta name="twitter:description" content="Preview text" />
<meta name="twitter:image" content="https://example.com/img.jpg" />
<meta name="twitter:site" content="@yourhandle" />

<!-- JSON-LD (Google, Bing, AI crawlers) -->
<script type="application/ld+json">
{ "@context": "https://schema.org", "@type": "Article", ... }
</script>

In practice, modern SEO plugins (Yoast, RankMath) generate all three from a single configuration. If you are rolling your own, you need all three code blocks populated on every page.

6. When They Conflict: Keeping Metadata Consistent

The most common mistakes happen when OG tags and Schema Markup describe the same page differently. Google and Facebook both crawl your page — contradictions confuse both systems:

⚠️ Different titles in og:title vs JSON-LD headline

Impact: Google sees two different names for the same content. It may pick either for display, or discount both in favour of the visible page title. Use the same title string in both.

Source both from the same CMS field. A shared page title field should populate og:title, twitter:title, and the JSON-LD headline simultaneously.

⚠️ Different images in og:image vs JSON-LD image

Impact: Your social sharing image and your Google rich result thumbnail come from different sources. Visually inconsistent across channels.

Use the same featured image for both. If you need different aspect ratios, use og:image for 1.91:1 social format and ImageObject for 16:9 article thumbnail.

⚠️ Page is Article in JSON-LD but og:type is website

Impact: Minor inconsistency. Facebook defaults to 'website' type if og:type is missing. More importantly, og:type='article' unlocks additional article-specific OG properties (published time, section, tags).

Set og:type='article' on all article pages and og:type='website' on the homepage and category pages.

⚠️ URL differs between og:url and JSON-LD @id or url

Impact: Google may not correctly identify the canonical URL for entity graph purposes. Social sharing creates duplicate URLs in crawl data.

Always use the canonical URL in both. If you have trailing-slash or www variants, pick one and use it consistently.

7. Metadata Audit: How to Check Your Current Setup

1

View source on any page and search for og:title. Confirm the OG title, description, image, and URL are correctly populated and match your intended content.

2

Use the Facebook Sharing Debugger (developers.facebook.com/tools/debug) to see exactly how Facebook renders your page preview. This also shows the raw OG tag values Facebook scraped.

3

Use the LinkedIn Post Inspector (linkedin.com/post-inspector) to preview LinkedIn sharing. LinkedIn sometimes caches aggressively — the inspector forces a fresh scrape.

4

Use Twitter/X Card Validator (cards-dev.twitter.com/validator) to preview the Twitter Card format. Confirm twitter:card is set to summary_large_image for article pages.

5

Run your URL through SchemaValidator.org to check the JSON-LD. Confirm @type, headline, image, and author are all correctly structured and error-free.

Frequently Asked Questions

If I already have Open Graph tags, do I still need Schema Markup?

Yes — they serve entirely different audiences. Open Graph controls social media link previews on Facebook, LinkedIn, Discord, and Slack. Schema Markup (JSON-LD) controls Google rich results, Bing, and AI crawler understanding. An SEO strategy needs both: OG tags for social sharing performance, JSON-LD for search engine rich result eligibility. A good SEO plugin generates both from the same configuration.

Does Facebook read JSON-LD for link previews?

No. Facebook's crawler (facebookexternalhit) reads og: meta tags, not JSON-LD. When a URL is shared on Facebook, it looks for og:title, og:description, og:image, and og:url in the HTML meta tags. JSON-LD is completely ignored for this purpose. If your OG tags are missing and only JSON-LD is present, Facebook shares will use a fallback (usually the page title and none of the images you intended).

What happens if og:title and JSON-LD headline have different values?

Google reads the JSON-LD headline for rich result display and entity understanding. Social platforms read og:title for link preview. If they differ, Google shows your JSON-LD title in search results while Facebook shows your og:title. This is not a technical error, but it creates brand inconsistency across channels. Best practice: source both from the same CMS field so they are always identical.

Can I use Open Graph and Schema Markup together on the same page?

Yes — they are completely independent and coexist without conflict. Most pages should have all three metadata layers: og: meta tags for Facebook/LinkedIn/Slack, twitter: meta tags for X/Twitter, and JSON-LD for Google/Bing/AI crawlers. A single SEO plugin configured correctly handles all three layers simultaneously.

Do OG tags affect my Google Search ranking?

No. Google has explicitly confirmed that og: meta tags are not used as ranking signals in Google Search. They are completely ignored for organic search ranking purposes. If you see advice claiming "better OG tags improve your SEO score", that is incorrect. Only JSON-LD structured data affects your eligibility for Google rich results.

My Twitter/X link previews are broken but my OG tags look correct. Why?

Twitter/X uses its own twitter: card meta tags system (twitter:card, twitter:title, twitter:description, twitter:image). While it can fall back to OG tags, this fallback is unreliable. Always define explicit twitter:card tags alongside your OG tags. Set twitter:card to summary_large_image for article and blog pages to get the full-width image preview. Use Twitter's Card Validator tool to test.

What og:type value should I use for different page types?

Use og:type="website" for your homepage and category/archive pages. Use og:type="article" for blog posts, news articles, and guides — this also enables article-specific OG properties: article:published_time, article:author, and article:section. Use og:type="product" for e-commerce product pages if your platform supports it (Shopify does this automatically). Most other pages default to "website".

Does LinkedIn use the same OG tags as Facebook?

Yes — LinkedIn reads the same og: meta tags (og:title, og:description, og:image, og:url). However, LinkedIn caches aggressively and sometimes shows outdated previews even after you update OG tags. Use the LinkedIn Post Inspector tool (linkedin.com/post-inspector) to force-refresh LinkedIn's cache and see the current preview. Changes can take up to 7 days to propagate across LinkedIn.

Validate Your Schema Markup

Check your JSON-LD structured data — not your OG tags — for Google rich result eligibility.

Open Schema Validator →