Open Graph image URLs (what crawlers actually need)
Slack, X, iMessage, and LinkedIn do not open your laptop. They GET an absolute HTTPS image URL from your page meta. If that URL 404s, redirects wrong, needs auth, or is not an image, the card is blank or wrong.
Copy-paste meta block
Replace <siteKey>, title, and author with yours. Absolute https:// only — relative paths fail.
<meta property="og:title" content="Ship it" /> <meta property="og:description" content="One-line summary for the preview." /> <meta property="og:url" content="https://example.com/blog/ship-it" /> <meta property="og:type" content="article" /> <meta property="og:image" content="https://cardurl.dev/og/<siteKey>/blog?title=Ship+it&author=you" /> <meta property="og:image:width" content="1200" /> <meta property="og:image:height" content="630" /> <meta property="og:image:alt" content="Ship it — branded social preview" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Ship it" /> <meta name="twitter:description" content="One-line summary for the preview." /> <meta name="twitter:image" content="https://cardurl.dev/og/<siteKey>/blog?title=Ship+it&author=you" /> <meta name="twitter:image:alt" content="Ship it — branded social preview" />
CardURL hosts that /og/ URL for $39/mo after a 7-day trial. Hosted cards keep working through the paid or trial period you already have when you cancel; after the period ends, those image URLs stop resolving. Preview on the home page and at /check needs no signup.
Troubleshooting checklist
Each claim below cites an official source and the date we read it (2026-10-15 unless noted).
- Absolute
https://image URL. The Open Graph protocol definesog:imageas a URL (ogp.me, read 2026-10-15). Apple's Messages preview notes say metadata must be on the linked page and server-side redirects are followed;metaredirects and JavaScript are not (TN3156, republished 2024-04-30, read 2026-10-15). Slack's link expander GETs the page (and the image URL in the tags) over HTTPS (api.slack.com/robots, read 2026-10-15). - Width and height. Open Graph documents optional
og:image:widthandog:image:heightstructured properties (ogp.me). CardURL cards ship at 1200×630. LinkedIn's help page asks for a minimum of 1200×627 and a max file size of 5 MB for share images (Make your website shareable on LinkedIn, last updated "2 years ago" as shown on that page, read 2026-10-15). Apple recommends preview images at least 900 px wide; images under 150 px wide may be ignored or treated as icons (TN3156). twitter:card. X still serves<meta name="twitter:card" content="summary_large_image">on its own docs home (observed on docs.x.com head, 2026-10-15). The old Cards markup reference on developer.x.com no longer publishes a Cards page (those paths redirect away; verified 2026-10-15), so we do not invent size limits from third-party blogs. Keeptwitter:cardplus an absolutetwitter:image(or a solidog:image) on the page you share.- Redirects, auth, and 404s. If the image URL 404s, needs a login, or only resolves after client-side JS, the crawler gets nothing useful. TN3156: no JS, no
metaredirects; auth walls should still expose non-sensitive metadata for the protected page. Slack fetches the image to check validity (api.slack.com/robots). LinkedIn notes that blocked or protected image hosts prevent the preview even when dimensions look right (LinkedIn help above). - Content-type and size. The image URL must return an image (for CardURL,
image/png). Slack checks that the referenced file is a valid image/video/audio resource. LinkedIn caps share images at 5 MB. Apple limits the main linked resource to 1 MB and associated resources (icons, images, videos) to 10 MB total (TN3156 guidelines). - Re-scrape after you fix tags. Slack caches link-expand responses for around 30 minutes (api.slack.com/robots). LinkedIn's Post Inspector is the official re-inspect tool (page live 2026-10-15). X no longer ships a public Card Validator we can cite; after you change tags, post a fresh URL or wait for cache expiry rather than inventing a purge step.
Test with /check
Open /check?url=https://cardurl.dev/guides/open-graph-image-url. Click Read page. You should see the page title and description CardURL pulled from the live meta, plus a stamped preview image. That is the free Social preview generator — not a crawler view of a paid /og/ URL, and not an account login. When the title looks right, put your hosted CardURL URL in og:image on your own site. Install steps: Getting started.
A PNG on disk does not count
Exporting a 1200×630 file into Downloads does nothing. The crawler needs a public address that returns an image. See how hosted URLs work and templates.