Instagram Caption Character Counter
Write your caption and watch it checked live against Instagram's 2,200 character limit, 30-hashtag limit, and the feed's ~125-character preview cutoff.
About the Instagram Caption Character Counter
Three real Instagram limits get checked as you type. The character count is compared against the documented 2,200 character cap (a caption sitting at exactly 2,200 is still within the limit, 2,201 is over it and flagged). The hashtag count uses a simple #word match and compares it to Instagram's documented cap of 30 hashtags per post. The preview box highlights roughly the first 125 characters, which is about where Instagram's feed view truncates a caption and shows "… more" before the rest is hidden behind a tap, so you can see at a glance whether your hook lands before the cutoff.
An honest limitation worth knowing: complex emoji can inflate the count
The character count here comes from JavaScript's .length property, which counts UTF-16 code units rather than what a human would visually recognize as one character. For plain text and the vast majority of simple emoji, this lines up correctly with what you'd expect. But some emoji, a family emoji, or one with a skin-tone modifier, are actually built from multiple Unicode code points joined together behind the scenes (using what's called a zero-width joiner sequence), and .length counts each of those joined pieces separately rather than as the single visual character you see. That means a caption using several complex compound emoji can register a noticeably higher character count here than the number of "characters" you'd count by eye. Implementing fully accurate grapheme-level counting would require additional Unicode-segmentation logic, and since it isn't publicly confirmed exactly how Instagram's own backend counts characters either, this tool sticks with the same straightforward length-based approach that's the most broadly reliable baseline, while being upfront that heavy compound-emoji use is where the count can drift from a purely visual character tally.
Why the hashtag pattern here is simpler than this site's dedicated hashtag tools
This counter's hashtag detection, /#[a-zA-Z0-9_]+/g, only matches plain ASCII letters, digits, and underscores, noticeably narrower than the Unicode-aware pattern used by this site's dedicated Hashtag Extractor tool, which also recognizes accented Latin and Cyrillic characters. That's a deliberate difference in scope: this tool exists specifically to check your hashtag count against Instagram's real 30-tag limit, so it intentionally mirrors the plain, universally-supported hashtag format rather than attempting the broadest possible character coverage, keeping the count you see here squarely focused on the specific limit it's meant to help you avoid.
Why 125 characters is a strategic number, not just a mechanical one
Instagram's feed view genuinely does truncate captions at roughly this length before showing "… more," which means anything written past that point is initially hidden behind a tap most scrolling viewers will never make. That turns the highlighted preview region into a real writing constraint worth planning around: your strongest hook, the line most likely to make someone stop scrolling or actually tap to read further, should ideally land within that visible window rather than being buried in the part of the caption most people will simply never see. Treat the highlighted portion here the same way a headline writer treats the part of an article visible before the fold.
A small but deliberate detail in the warning text
The over-limit warning messages check whether the overage is exactly 1 before choosing singular or plural wording, "over by 1 character" rather than the grammatically awkward "over by 1 characters." It's a minor detail, but it's the kind of small correctness check that keeps a warning message reading naturally regardless of exactly how far over either limit your caption happens to land, and the same singular/plural check runs independently for both the character-limit and hashtag-limit warnings.
Frequently Asked Questions
Why might the character count seem higher than what I'd count by eye?
The count uses JavaScript's .length property, which counts UTF-16 code units, not visual characters. Complex compound emoji (like ones with skin-tone modifiers or family combinations) are actually built from multiple joined Unicode code points, so they can register as more than one character even though they appear as a single emoji.
Why does this tool's hashtag detection differ from the site's Hashtag Extractor?
This counter uses a plain ASCII-only pattern (letters, digits, underscores) rather than the broader Unicode-aware pattern used by the dedicated extractor tool. Since this tool's job is specifically checking your count against Instagram's real limit, it intentionally focuses on the common hashtag format rather than the widest possible character coverage.
Why does the 125-character preview cutoff matter for how I write my caption?
Instagram's feed view truncates captions around this length before showing "… more," and most scrolling viewers never tap to expand it. That makes the highlighted region a real constraint worth writing around, your strongest hook should ideally land before the cutoff rather than being hidden behind a tap.
Is a caption of exactly 2,200 characters within Instagram's limit?
Yes, 2,200 characters is exactly at the documented cap and still allowed. The warning only appears once you go over that number, at 2,201 characters or more.
Does this tool send my caption text anywhere?
No, character counting, hashtag matching, and the feed preview are all calculated locally in your browser as you type. Nothing you write is transmitted to a server.
What happens if I go over the 30-hashtag limit?
A warning appears showing exactly how many hashtags over the limit you are. Instagram enforces a hard cap of 30 hashtags per post, so exceeding it can prevent the post from being published as written.