Short practical fixes for things that silently break on small sites.
The Sharing Debugger says “Bad Response Code 403”, yet the page opens fine. Almost always: something in front of your origin treats the crawler as a bot (because it is one).
Confirm: curl -s -o /dev/null -w "%{http_code}\n" -A "facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)" https://your-site/page — compare with a browser UA.
Usual culprits and fixes
cf.client.bot) where your plan allows.robots.txt disallowing / for *: Facebook honors robots for some fetches; allow facebookexternalhit, Twitterbot, LinkedInBot, Slackbot, Discordbot.og:image URL 403s. Test the image URL too.Then re-scrape in the Sharing Debugger.
Disclosure: I build SharePack, a $29 one-time pack that shows exactly what each of five real crawlers gets back from your page and generates the fix. Its free check only offers the pack when it confirms the problem on your page. Everything above works without it.