Open Graph Checker: A Faster Way Than Manually Viewing Source
Viewing page source to check og: tags works for one page. Here's why an open graph checker that crawls, validates, and compares runs over time beats doing it by hand — and what it should actually flag.
August 16, 20266 min read
The default way most people check Open Graph tags is right-click, view source, and scan for og:title, og:description, and og:image somewhere in the head. It works. It's also slow, error-prone once you're doing it for more than a handful of pages, and it tells you nothing about whether the values are actually correct — only whether they exist. An open graph checker built as an actual tool, rather than a manual habit, needs to do three things view-source can't: crawl more than one page at a time, validate values against real criteria instead of just presence, and remember what a page looked like last time so it can tell you when something changed.
What manually viewing source misses
Viewing source answers exactly one question: is this tag present in this page's HTML, right now. It doesn't tell you if the og:image URL actually resolves to a real file rather than a 404 or a redirect loop — you'd have to open that URL separately to know. It doesn't tell you if the image's actual dimensions match what og:image:width and og:image:height claim. It doesn't tell you whether the description is truncated when rendered on a specific platform, since raw HTML doesn't show you the rendered result. And it can't tell you, on its own, whether the value used to be different — a title that quietly reverted to a placeholder still reads as 'present' when you view source, and nothing about the HTML flags that it's wrong rather than just unfamiliar.
What a real checker should validate
An open graph checker worth using goes past 'is the tag there' and validates the things that actually determine whether a share renders correctly:
- og:title and og:description present and non-empty, not just technically included as blank strings
- og:image resolving to a real, loadable file rather than a broken link, redirect chain, or oversized file that times out on stricter crawlers
- og:image:width and og:image:height accurate to the actual file, so platforms that rely on them don't have to fetch the whole image just to figure out its size
- twitter:card set to a value that matches what's actually available — summary_large_image without a large enough image is a mismatch worth flagging
- Consistency with what the page visibly shows — an og:title that no longer matches the page's actual headline is a sign something drifted, not just a stylistic choice
One page vs. the whole site
The bigger limitation of view-source checking isn't accuracy on a single page — it's that it doesn't scale past one page at a time. Checking ten pages by hand is tedious but doable. Checking a few hundred, which is a realistic count for anything past a small marketing site, isn't something anyone actually does by opening each page's source individually. That's the gap an open graph checker built for crawling closes: point it at a site instead of a single URL, and it visits every reachable page, applies the same validation criteria to each, and comes back with a list instead of requiring someone to repeat the same manual steps hundreds of times. The pages most likely to have a broken og:image are also the ones least likely to get checked by hand, because they're the pages nobody's actively thinking about — which is exactly the coverage gap a crawl-based checker is built to close.
Catching a change, not just a current state
A single check, however thorough, only tells you the state of a page at the moment you ran it. It says nothing about whether that page looked different yesterday, or whether a deploy last week changed an og:image without anyone noticing. That's a meaningful gap, because the majority of real-world Open Graph problems aren't pages that were always broken — they're pages that used to be fine and stopped being fine after a template change, a CMS update, or a migration. Catching that requires comparing today's crawl against a previous one and flagging the difference, which is fundamentally something a one-off manual check can't do without a person remembering, by memory, what a specific page's og:image used to look like.
Where this saves the most time
The clearest case for a real open graph checker over manual source-viewing is right after a change that could affect many pages at once — a template redesign, a CMS migration, a rebrand that touches shared components. In those situations the question isn't 'is this one page okay,' it's 'did this change break Open Graph tags anywhere across the site,' and manually checking source on every page that could plausibly be affected is impractical even for a determined person with a free afternoon. A crawl-based checker answers that question directly, in one run, instead of requiring someone to guess which pages might have been affected and check those specifically — which is exactly how real regressions get missed, because the guess is usually wrong about at least a few pages.
Common false confidence from a quick source check
A subtler problem with relying on view-source is that it's easy to check the wrong instance of a page and walk away falsely reassured. A page rendered with query parameters, a logged-in state, or an A/B test variant can show different og: tags than the canonical, publicly-shared version of the same URL — and if you check the version in front of you rather than the version that actually gets shared, you can conclude everything is fine while the real shared link is broken. This is a common source of 'it looked fine when I checked it' bug reports: the person checking and the person sharing were, without realizing it, looking at two different renders of what appeared to be the same page. A checker built to crawl and validate systematically avoids this specific trap because it's evaluating the actual public URL a crawler would fetch, not whatever variant happens to be loaded in a particular browser tab at the time someone happens to look.
There's also a coordination cost to view-source checking that only shows up once more than one person is involved. If a designer checks a page's og:image before handoff, and a developer checks it again after implementation, and neither one writes down exactly what they checked or when, there's no shared record of what passed and when it stopped passing if it later breaks. A checker that logs each run and each result creates that shared record automatically, so 'was this ever actually verified, and when' has a concrete answer instead of relying on someone's memory of a browser tab they closed weeks ago.
How useopengraph handles this
Site Audits in useopengraph crawl a site's pages and check og:title, og:description, and og:image presence plus dimensions alongside twitter:card, meta description length, and alt text — replacing the page-by-page view-source habit with a single run that covers the whole site at once. Because each audit run is compared against the last one, a page whose og:image quietly stopped resolving, or whose title reverted to a placeholder, shows up as a flagged regression rather than requiring someone to remember what it used to say. For teams that need to catch a tag's value changing even while it stays technically present, Drift Monitor on the Agency plan extends this further, rechecking tracked pages and diffing content, not just presence, against its last known state.
Stop paying per seat
for a usage-shaped problem.
Unlimited teammates, one usage pool. Start free with the scanner — no card required.