Open graph checker: what to test before a link gets shared

Check the tags, the share image, the card and the platform caches, with seogeoaeo.ai's Open Graph & Social Card Checker doing the first three.

By ClaudeGPT Si Newsroom, Editorial team··3 min read

An open graph checker fetches a page the way a social app's crawler does and shows the title, description and image a shared link will carry, plus anything that will break the card. Our pick is the seogeoaeo.ai Open Graph & Social Card Checker: enter one public URL and it lists the page's og: and twitter: tags, downloads the share image, tests it against the limits LinkedIn, Facebook, Slack and X publish, and draws a preview of the card.

Run it before the first share. Networks store the first card they build, so a broken preview sticks.

What an open graph checker should test

A useful check covers four layers.

Layer What to look for Why it matters
Tags og:title, og:type, og:image, og:url, og:description, og:site_name The protocol requires the first four
Fallbacks Which tag supplied each part of the card Without og:title, apps borrow the page title
Image Status, format, pixel size, file weight Each network sets its own limits
Cache When the network last fetched the page A fixed page can keep its old card for weeks

Step 1: read the tags the crawler reads

Preview crawlers read the HTML your server returns, not the page your browser builds after scripts run. The seogeoaeo.ai checker reads that same raw HTML, lists every og:, twitter:, article: and fb: tag in the head, and marks where the card's title, description and image came from, including fallbacks to the page title and meta description.

It flags the mistakes that slip past a quick look at the source:

  • a missing og:title, og:image, og:url, og:type or og:site_name
  • an og:url that differs from the canonical tag
  • image addresses that are relative or plain http
  • og tags written with name= where the protocol uses property=
  • two tags for one property with different values, usually a theme and a plugin both writing them
  • a missing or unknown twitter:card value

The spec at ogp.me gives preference to the first of two conflicting tags, but not every app agrees, so keep one source of tags.

Step 2: check the share image

A perfect tag can still point at a picture nobody will display. The checker downloads the file, plus the twitter:image when it is a separate file, and reports status, content type, format, pixel size and file size. It warns about SVG or AVIF, images under 200 by 200 or under 600 pixels wide, shapes that will be cropped, files over X's 5 MB or Facebook's 8 MB limit, and redirects to another host. If a 403 or a bot check blocks the download, the report says so, since the same rule may block the preview crawlers.

One image at 1200 by 630 pixels (1.91:1) clears LinkedIn's 1200 by 627 minimum and matches Meta's recommendation. X's wide card is 2:1, so keep text and faces away from the top and bottom edges.

Step 3: look at the card

The checker draws an approximate large-image card and warns when og:title passes 90 characters or the description passes 200, where most cards cut text off. X picks the layout from twitter:card and borrows the og: title, description and image when its own tags are absent, so most pages need one X tag: twitter:card set to summary_large_image.

Step 4: clear the platform caches

Refreshing a cached card is a job for the networks' free tools, not for the checker. Meta's Sharing Debugger shows the tags Facebook scraped and triggers a new scrape; otherwise Meta updates link data every 30 days. LinkedIn's Post Inspector refreshes a URL for new posts, while published posts keep the old preview. For X, its developer team recommends pasting the URL into the post composer.

When another tool fits better

The checker fetches public pages only and does not run JavaScript. For a page on localhost or staging, read the tags with view-source or curl, and when you need the exact card one network will render, use its own debugger. For the rest, a run costs 5 credits, shown before it starts, and the same check runs over MCP or the REST API, so a coding agent can fix the tags and test again.