Why doesn't Facebook show a preview image when I share my site?
When content is shared for the first time, the Facebook crawler will scrape and cache the metadata from the URL shared. The crawler has to see an image at least once before it can be rendered. This means that the first person who shares a piece of content won't see a rendered image:
There are two ways to avoid this and have images render on the first Like or Share action:
1. Pre-cache the image with the Sharing Debugger
Run the URL through the URL debugger to pre-fetch metadata for the page. You should also do this if you update the image for a piece of content.
og:image:height Open Graph tags
Using these tags will specify the image dimensions to the crawler so that it can render the image immediately without having to asynchronously download and process it. When you set a custom share image, SEO Product Optimizer will read the width and height and input them to the suitable tags of the product automatically.
Sharing Best Practices for Websites - https://developers.facebook.com/docs/sharing/best-practices#images