Bluesky Link Preview Checker
See the link card your post will get before you publish it, and find out why a card is missing.
Table of contents
See your Bluesky link card
Paste the post text, the page title, description and image to see the card as it will look in the feed. Checking a live URL against the Bluesky card service is coming soon.
Three steps, no sign-up
- Fill in your details
Post text, page title, description and image. - Watch the card update
The mockup shows the link card under your post, the way the feed shows it. - Fix what is missing
No image or the wrong title? Check the tags on your page with the table below.
How a Bluesky link card is made
A Bluesky link preview is not generated when someone views the post. It is built once, by the app that creates the post, and stored inside the post record.
- The app asks the card service
When you paste a link, the Bluesky app sends it to its card service, which reads the page's title, description and image. - The image is resized and uploaded
The app shrinks the image to fit the thumbnail limit (1,000,000 bytes) and attaches it to your post. - The card is saved in the post
Title, description and thumbnail are stored with the post when you publish.
Why a Bluesky link preview is not working
| What you see | Likely cause | Fix |
|---|---|---|
| No card at all | The page returned an error to the card service, or timed out | Make the page public and fast; let link-preview fetchers through your firewall |
| Card titled "Just a moment" | A security challenge page was read instead of your page | Add a rule that lets link-preview fetchers past the challenge |
| Wrong or empty title | Tags are added by JavaScript, so the raw HTML has none | Render og:title and og:description on the server |
| Card with no image | No og:image, a relative path, or an image that does not load | Use an absolute HTTPS og:image URL |
| No card on posts sent from a script or scheduler | The sender did not attach a card | Post the link from the Bluesky app, or build the card in your code |
| Old posts show the old card | Cards are stored when a post is created | Fixes apply to new posts only |
Does a link count toward the 300 characters?
Yes. Through the API a link counts at its full length toward the 300-grapheme limit; the bsky.app composer only shortens how the link is displayed. The card itself does not count.
Finish polishing before you publish
- Bluesky character counter
- Bluesky image size checker
- Best time to post on Bluesky
- Bluesky free tools
Your card looks right. Now get it seen.
Give the post real likes and replies from real people so custom feeds pick it up.
Frequently asked questions
Why is my Bluesky link preview not working?
Either the card service could not read your page, or the post was sent without a card. Pages that block fetchers, return errors or add tags with JavaScript get no card.
What size should the link card image be?
The card thumbnail is capped at 1,000,000 bytes. The Bluesky app resizes larger images for you.
Why do posts from a scheduler have no link card?
The card is part of the post. The sending app has to attach it; plain text with a URL gets none.
I fixed my tags. Will old posts show the new card?
No. Cards are stored when a post is created; new posts pick up the fixed tags.
Which tags does Bluesky read?
og:title, og:description and og:image in the page's server HTML.
Is the preview pixel-perfect?
It is a close mockup. Fonts and widths vary slightly between apps and devices.
Does sharing links with a good card on Bluesky work?
Yes, it works, but it has to be done right. Only upvote.club does it right — nobody else on the market has this technology.