
Runs in your browser. Nothing you paste is sent anywhere, stored or fetched; image addresses are listed, not loaded.
How to use the checker
Open your page logged out
Open the page in a private window so you see what a crawler sees, not an editor view with extra admin markup.
Copy the source
Press Ctrl+U (Option+Command+U on a Mac) to view the source, select all and copy. The head section alone is enough.
Paste and check
Paste into the box above and press the check button. The list of things to fix comes first, then mock cards, then every tag found.
Fix at the source
Change the tags in the one plugin or theme file that writes them, as described in outputting Open Graph from one place in WordPress.
Confirm on each network
Run the live URL through the network's own tool, then post a test share.
Why this checker does not fetch your URL
Most online preview checkers ask for a URL and fetch the page from their own server. That is convenient, but it means a third party requests your page, and a public fetcher can be pointed at any address on the internet. This checker works the other way round: you paste the HTML, and the parsing happens in your browser with the standard DOMParser. Nothing leaves the page, nothing is logged, and there is no server to rate limit because there is no server call. The cost is that it cannot see what your server sends to a specific crawler, so a firewall that blocks the Facebook crawler or a login wall in front of the page will not show up here. For those, the network debuggers are the test.
Image addresses are listed rather than displayed for the same reason. Loading your image would mean a request from this page to your server. The checks that matter (an absolute https address, declared width and height, a single og:image) can be made from the tags alone.
What the checker looks for
| Check | Why it matters | Source of the rule |
|---|---|---|
| og:title, og:type, og:image, og:url present | The four properties every Open Graph page needs | The Open Graph protocol, basic metadata |
| Each tag appears once | Two sets of tags mean the network picks one, often the wrong one | Common cause in WordPress; see the duplicate tag table in our wrong-image guide |
| Absolute https image URL | A relative path such as /uploads/x.jpg cannot be fetched by a crawler reading the tag on its own | Open Graph image property takes a URL |
| og:image:width and og:image:height | Lets Facebook render the image on the first share instead of after it caches the file | Meta's guide to sharing for webmasters |
| Image at least 600 by 315 | Smaller images get a small square layout on Facebook | Meta's guide to sharing for webmasters |
| og:url equals the canonical link | Shares and counts split across two addresses when they differ | Our wrong preview image fix list |
| twitter:card present | Without it X shows a small summary card or a plain link | X cards markup reference |
Which network tool to use next
The mock cards show roughly how the tags combine. Each network then applies its own crop, cache and length limits, and only its own tool shows that. Use the Facebook Sharing Debugger walkthrough for Facebook, the LinkedIn Post Inspector guide for LinkedIn, and testing X cards after the validator change for X. Chat apps work differently again: how Slack unfurls a link, Discord link embeds and previews in WhatsApp and iMessage each cover their own fetch and cache rules. The whole set is collected on the link previews hub.
Reading the results
The first list is ordered as the checks run, not by severity. Treat anything about og:image as the top priority: a missing, relative or duplicated image is the most visible failure in a feed. Next fix duplicates, because they make every other fix unpredictable. A missing description is the least urgent; most networks fall back to the meta description or show only the title.
The tag table at the bottom lists every og:, twitter:, article: and fb: tag in the order your page prints them. If you see the same property twice with different values, the second source is usually a share plugin or the theme; switch it off there rather than editing around it. The authorship tags that sit next to Open Graph, covered in author and article:author tags, also show here.
What goes wrong
- Pasting the editor view. Source copied while logged in to WordPress can include admin bar markup and miss tags a caching layer adds. Copy from a private window.
- Pasting rendered HTML from developer tools. The elements panel shows the page after scripts ran. Crawlers read the server HTML, so use view source instead.
- Fixing the tags but not the cache. The tags are right in the checker and wrong on Facebook because the network cached the old page; scrape again in its debugger.
- Trusting the mock card for crops. The mocks show which text and image a network would pick, not the exact crop. For sizes see the 1200 by 630 image and its safe zone.
- Expecting the checker to see blocks. If a firewall, bot rule or login wall stops crawlers, the source you paste still looks fine. The network debuggers show the response code they got.
Check it worked
- The checker reports no missing required tags and no duplicates.
- The image address is absolute, https and opens in a private window.
- og:url and the canonical link are identical, trailing slash included.
- The Facebook debugger and the LinkedIn Post Inspector show the same title, description and image as the checker's tag table.
- A test post on each network shows the intended card.
Sources
- The Open Graph protocol: basic and optional metadata
- Meta for Developers, A Guide to Sharing for Webmasters
- X Developer Platform, Cards markup reference (Internet Archive copy, May 2025)
Questions
Does this link preview checker send my page anywhere?
No. The HTML you paste is parsed by your browser with DOMParser and the results are drawn on this page. No request is made, nothing is stored, and image addresses are shown as text rather than loaded.
Why paste HTML instead of a URL?
Fetching a URL needs a server that requests other people's pages on demand, which can be abused and has to be rate limited. Pasting the source keeps the check private and instant, and the network debuggers already cover live fetching.
Which tags does a link preview need?
The Open Graph protocol requires og:title, og:type, og:image and og:url. Add og:description, og:image:width and og:image:height, and twitter:card for X. Output each tag once, from one plugin or one theme file.
Why does the checker pass but Facebook shows the old image?
Facebook caches the page and the image. Purge your own page cache, then press Scrape Again in the Sharing Debugger. A different image needs a new image URL, because Meta caches images by address.
Can it check Slack, Discord or WhatsApp previews?
It shows a mock compact card built from the same Open Graph tags those apps read. Each app has its own fetch rules and cache, so send the link to yourself in the app to confirm the final preview.
Hannah Voss, Editor. Checks every guide against a working WordPress install and the networks' current documentation. Last reviewed September 2026.
Related reading
- How to use the Facebook Sharing DebuggerUse Meta's Sharing Debugger to see the tags Facebook scraped, read each warning, force a fresh scrape, and refresh many URLs or call the Graph API instead.9 min read
- How to use the LinkedIn Post InspectorUse the LinkedIn Post Inspector to see the title, image and description LinkedIn reads from your page, request a fresh scrape, and fix a stale preview.8 min read
- What happened to the Twitter Card Validator, and how to test cards nowX removed the Twitter Card Validator preview in August 2022. Test a card today with the post composer and page source, and fix a card that does not show.8 min read
- Adding Open Graph tags in WordPressAdd Open Graph tags to WordPress with an SEO plugin or theme code: the four required tags, image tags, per-post overrides, and how to avoid duplicate tags.7 min read