How to read the result
When someone pastes a link into Facebook, LinkedIn, WhatsApp, Slack or X, the app fetches the page and builds a card from its Open Graph tags: og:title, og:description and og:image. Without them it falls back to the page title and meta description, and shows no image, or a grey box. X reads its own twitter: tags first and falls back to the Open Graph ones. The two cards above are built the same way, from the real tags on the page.
The image matters most. Use a 1200 by 630 image (a ratio of 1.91 to 1) with the subject in the middle, because every app crops the edges, and give it as a full https address. This tool asks for the image the way an app would and tells you whether it answers with an actual image. A relative address, an http address or a broken link each means no picture in the share.
og:url should be the canonical address of the page, so that shares of the same page with tracking parameters count together. twitter:card set to summary_large_image gives the big card on X; summary gives the small one with the image at the side.
Apps cache the card
Once an app has fetched your page it keeps the card for a while, often for days, so a fix does not show at once when you paste the link again. Facebook and LinkedIn have a debugger that refreshes their copy; on other apps, add a query string such as ?v=2 to the link to make them fetch it fresh.