A social media post checker is anything that tests a post against a network's rules before you publish it, so that a refusal reaches you at your desk instead of an hour after the scheduled time. Eight things decide almost every failure: the length of the text in the network's own unit, the links and hashtags in it, the shape of the picture, the size and length of the video, its frame rate and resolution, whether pictures and video are mixed, the fields the network makes you fill in, and the time the post will go out. You can check them by hand with the list below, or let a tool read the numbers for you. Rules checked 8 October 2026.
Most pages on this topic are a browser extension that scans a draft for tone and risky words, a one-page checklist of habits, or a table of image sizes copied from older ad specifications. None of them tells you that Threads counts a smiley as four characters, that Instagram refuses a 3:4 portrait photo, or that TikTok accepts a 120 fps phone video and rejects it hours later. This guide is about those mechanical rules: what a network enforces by refusing the post or by quietly dropping part of it.
The checklist
Run these in order. The numbers are the ones Preflight's validator uses.
- Count the text the way the network counts it. A caption can be fine in your editor and refused on the network, because the unit differs. Instagram allows 2,200 characters, Bluesky 300 graphemes (what a reader sees as one character), Threads 500 with each emoji counted as its UTF-8 bytes, Mastodon 500 by default with every link counted as 23. YouTube limits the description to 5,000 bytes, so a Czech description of 3,000 characters can overflow it. All networks: network limits.
- Count the links. Threads refuses a post with more than 5 links. Mastodon charges 23 characters per link whatever its length; Bluesky charges the full address. Instagram captions do not make links clickable.
- Count hashtags and mentions. Instagram refuses more than 30 hashtags or 20 @mentions. On YouTube, more than 60 hashtags and the video loses every hashtag, not just the extras.
- Check picture format and shape. Instagram feed pictures must sit between 4:5 and 1.91:1; a 3:4 portrait is 0.75 and fails. The API takes JPEG only, and Preflight converts other formats for you rather than refusing them. Threads takes up to 10:1. Telegram takes photos whose width plus height is at most 10,000 pixels and a ratio of at most 20:1. LinkedIn takes fewer than 36,152,320 pixels. The Instagram image size guide goes through the feed crop in detail.
- Check picture file size. Bluesky takes 2,000,000 bytes per picture, Threads 8 MB, LinkedIn and Telegram 10 MB, Facebook 10 MB, Mastodon 16 MB by default, Pinterest and Tumblr 20 MB. Preflight makes a smaller JPEG copy for the network where it can and leaves your file alone.
- Check video length and file size. Bluesky stops at 3 minutes and 100 MB, Threads at 5 minutes and 1 GB, Instagram Reels at 15 minutes and 300 MB, TikTok at 10 minutes and 4 GB (and no longer than the creator's own maximum), LinkedIn at 30 minutes and 500 MB, Tumblr at 10 minutes. Telegram takes 50 MB through the Bot API and Discord 10 MB. An Instagram or Facebook story video is 3 to 60 seconds.
- Check frame rate and resolution. Instagram Reels, TikTok and Threads take 23 to 60 fps; a Facebook reel takes 24 to 60 and must be vertical, at least 540 by 960. TikTok wants 360 to 4,096 pixels on each side. Phones can record at 120 fps, and the network says nothing until processing.
- Do not mix pictures and video by accident. LinkedIn and Mastodon refuse a post that mixes them. Bluesky, TikTok and Facebook accept it and silently send only the first kind, so the pictures vanish behind a video. Instagram carousels, Threads, Telegram and Discord take both.
- Write alt text. Instagram, Facebook, Threads, LinkedIn, Bluesky, Mastodon, Pinterest, Discord and Tumblr carry it per picture. No network refuses a post without it, so nothing will remind you; it is a habit, not a rule.
- Fill in what the network requires. TikTok needs a privacy level, and a tool that leaves it unset posts the video as "only me". Pinterest needs a board and one picture. YouTube needs a video, and refuses < and > in a title or description. A Facebook reel needs a single vertical video.
- Check the account type and the time. Instagram publishes only to Business and Creator accounts. For the schedule, confirm the time zone the time is shown in before you trust it, and remember that Instagram allows 50 API publishes per account in 24 hours.
- Read the first line, where the network folds. The text before "more" is what most people read: about 125 characters on Instagram, about 210 on LinkedIn desktop and 140 in the app, about 477 on Facebook mobile. Put the point there.
What each network refuses
The refusals below are the ones Preflight's validator reports as errors, plus the silent ones it reports as warnings. Where a network has its own page, the limit is explained there with its source.
| Network | Refuses | Typical symptom |
|---|---|---|
| Over 2,200 characters, 30 hashtags or 20 mentions; feed pictures outside 4:5 to 1.91:1; Reels outside 23 to 60 fps | "Aspect ratio not supported" or "image format not supported" | |
| TikTok | Video under 3 seconds or over 10 minutes; under 360 or over 4,096 pixels a side; outside 23 to 60 fps | "Frame rate check failed" hours after upload; a video posted as only me |
| YouTube | Description over 5,000 bytes; < or > in title or description; no video | A Short over 3 minutes appears as a normal video; all hashtags ignored above 60 |
| Threads | Over 500 characters (emoji as bytes); more than 5 links; pictures beyond 10:1 | A post of "495 characters" refused as 501 |
| Over 3,000 characters; pictures together with a video; video under 75 KB or over 500 MB | Refusal on a post that mixes a video and a picture | |
| Bluesky | Over 300 graphemes or 3,000 bytes; pictures over 2,000,000 bytes; video over 3 minutes; MOV | A fifth picture simply missing; a MOV refused |
| Reel that is not vertical, under 540 by 960, outside 24 to 60 fps or 3 to 90 seconds | Posted as a normal post, or refused for size or shape | |
| No board chosen; no picture; video | Pin title cut at 100 characters, description limited to 800 | |
| Mastodon | Text over your instance's limit (500 by default); pictures with video; over 4 pictures | A limit that differs from the 500 you expected |
| Telegram | Caption over 1,024 (message 4,096); photo with width plus height over 10,000 or ratio over 20:1; video over 50 MB | A long caption refused although the same text works as a message |
| Discord | Over 2,000 characters; more than 25 MB of files in one message; a sender name containing "discord" or "clyde" | Upload rejected for size |
| Tumblr | More than one video per post; video over 10 minutes or 500 MB | The second video refused |
Three checks you can do now, without an account
The same rules are available as three free tools that run on the validator rather than on a copy of it.
- [Character counter](/free-tools/character-counter). Paste a caption and see its length on twelve networks at once, counted as each network counts: graphemes on Bluesky, emoji as bytes on Threads, bytes for the YouTube description, links as 23 on Mastodon. It marks which networks would refuse the text and why. It does not judge wording or know your Mastodon instance's own limit.
- [Video and image checker](/free-tools/video-checker). Drop a file and see whether its size, length, format and dimensions pass on each network. The file is not uploaded: your browser reads its type, size, width, height and length, and only those numbers are sent. It cannot read frame rate or the codec inside the file, so the 60 fps ceilings and an unreadable codec stay unchecked there.
- [Caption preview](/free-tools/caption-preview). Write a caption, pick a network and see where it folds behind "more", with the characters past the limit marked. It shows what a reader sees without tapping. It approximates the feed, because networks change their folds.
All three call one public endpoint that needs no sign-in and allows 60 requests per minute from one address. Nothing is stored.
How the same check runs inside Preflight
The free tools are the checker with the account-specific parts left out. Inside Preflight, the same validate() function runs in three places, so a rule cannot pass in one door and fail in another.
- In the composer. Each network is judged by the text it will actually receive, including a caption you wrote only for that network, and by every file on the post, not just the first. Errors block scheduling; warnings tell you what will be changed or dropped.
- Over the API.
POST /v1/platforms/validatetakes the same content, files and targets as creating a post and returnsokand a list of issues, each with a platform, a message and a severity oferrororwarning. It creates nothing. It also knows your account's own limit, such as a Mastodon instance's ceiling, and checks YouTube tags, subtitles and thumbnails. See the posts API. - Over MCP. The
validate_posttool is a dry run ofcreate_postwith the same arguments, so an assistant can report what is wrong before anything is created. See the MCP documentation.
The checks run on every plan, the free one included; plans differ in channels, seats and allowances, and they are listed on the pricing page. Frame rate is measured in the browser at upload; when a file arrived without a reading, the check stays silent rather than guess.
Mistakes the check does not catch
A checker that claims to catch everything is selling something. These are outside what Preflight tests:
- Meaning and tone. It does not read your caption for mistakes, offence, a wrong date or a wrong price. Have a person do it; the approval workflow guide shows how.
- Duplicate content. The same caption sent twice, or to many networks, is not flagged.
- Banned topics and community rules. A network can remove a post for what it says, and no length or format rule predicts that.
- Copyright and music. Whether you may use a track or a picture is not in a file's metadata.
- Codecs and moderation. The validator reads container, size, dimensions and length. A network can still refuse a codec or audio track inside a valid container, or a picture that fails moderation.
- Missing alt text. Nothing refuses a post without it, and the validator does not warn about it.
- Rules that change. Networks change limits without notice; The rules here were checked on 8 October 2026.
- Account state. An expired connection, a restricted account or a daily cap on API posts is a state of the account, not a property of the post. On Instagram, the publishing guide covers the cap and the two-step publish.
How the free tools and the endpoint behind them handle text is described in the privacy policy, and the service rules are in the terms.
Questions people ask
- What is a social media post checker?
- A tool or checklist that tests a post against a network's rules before it is published: text length in the network's unit, links and hashtags, picture shape and size, video length, size and frame rate, and required fields. A good one names the network and the rule, so you know what to change. Checked 8 October 2026.
- How do I check a caption before posting to several networks?
- Count it in each network's own unit, not in your editor: 2,200 characters on Instagram, 300 graphemes on Bluesky, 500 on Threads with emoji counted as bytes. The free character counter does this for twelve networks at once and shows which would refuse the text.
- What should I check before posting a video?
- Length, file size, frame rate and resolution. Instagram Reels, TikTok and Threads take 23 to 60 fps; TikTok needs 360 to 4,096 pixels on each side and 3 seconds to 10 minutes; Bluesky stops at 3 minutes and 100 MB. Also check that the video is not mixed with pictures on LinkedIn or Mastodon.
- Is there a free tool to check post length?
- Yes. The Preflight character counter at /free-tools/character-counter needs no account and counts a caption on twelve networks the way each one counts. The video and image checker and the caption preview are free too, and neither uploads your file.
- Can a post checker guarantee a post will not fail?
- No. It can catch the mechanical rules a network publishes, such as length, ratio, size and frame rate. It cannot predict moderation, copyright claims, an expired account connection or a rule the network changed yesterday. Treat a clean result as a good sign, not a promise.