NEW: the postqueen MCP server is live. Connect it in a minute
All posts

The Cross-Posting Playbook: What to Change for Each Network

postqueen team6 min readGuides

Cross-posting has a bad reputation and it earned it honestly. Everyone has seen the LinkedIn post that still says RT, the Instagram caption built around a link nobody can click, the Bluesky post cut off mid-word at 300 characters, and the thread pasted into a single box with "1/7" still sitting at the top.

None of that is an argument against cross-posting. It is an argument against fanning one text field out to six networks and calling it distribution. The idea can travel. The post cannot. This playbook covers what to change per network, what should never make the trip, and the failures that only surface after you hit publish.

The unit that travels is the idea, not the text

Start here, because every rule below follows from it. You have one thing to say. Each network is a different room with different acoustics, a different crowd, and different rules about what you are allowed to bring in. The thing you say stays the same. The way you say it does not.

The practical version: write the richest draft first, for whichever network gives you the most room, then adapt downward. Writing to the smallest limit first is the classic mistake, because it hands every network the most compressed version of the idea. Terse writing that lands at 280 characters reads as curt at 3,000.

Cross-posting fails when one text field is fanned out to six networks. It works when one idea gets written six times.

What changes per network

Length, and the first line

Hard caps are the easy part. At the time of writing, Bluesky stops at 300 characters, Mastodon defaults to 500 (instances can raise it), Threads allows 500, X allows 280 on standard accounts and more on paid tiers, Instagram captions run to 2,200, and LinkedIn gives you roughly 3,000. Verify these yourself before you rely on any of them, because they move, and a tool that silently truncates is worse than one that refuses to post.

The fold is the harder part and nobody publishes it. On most feeds only the first line or two is visible before a "see more" link, and how much fits depends on the device. So the first line is not an introduction. As far as most of the feed is concerned, it is the whole post. Rewrite it per network. The line that earns a tap on LinkedIn is rarely the line that works on X.

Links

Instagram captions do not carry clickable links, so any post whose payload is a URL simply does not function there without a rewrite. Beyond that, several networks are widely believed to show posts containing external links to fewer people. Platforms rarely confirm this and it is genuinely hard to measure from outside, so treat it as a hypothesis to test on your own account rather than a law: try the link in a reply, try it in the post, and look at your own numbers over a month.

One thing that is not a hypothesis: use a different UTM per network. If every channel gets the same link, your analytics will faithfully report that the traffic came from social, which you already knew.

Media

Aspect ratio is the tell. A 16:9 image built for a timeline gets letterboxed or center-cropped in a 4:5 feed, and the crop usually eats whatever text you put near the edges. Build the asset for its destination, or at minimum keep everything important inside a safe center box so the crop is survivable.

Alt text is the thing that silently gets dropped in cross-posting, every time. It is per-network metadata, it does not ride along automatically in most tools, and it is the one part of the post that some of your audience depends on entirely.

Hashtags and mentions

Hashtags are not a universal mechanic. On Mastodon they are load-bearing infrastructure, because many instances do not index full post text by default, so a hashtag is often the only route by which a post is discoverable at all. On Instagram they still work as topic routing. On LinkedIn and X, a block of tags at the bottom now mostly reads as noise. Same characters, opposite effect.

Mentions are worse, and this is the pitfall that actually causes damage. Handles do not map across networks. The @alex you meant on one network is a different person on another, or nobody. Copy a mention across and you either ping a stranger, credit the wrong human, or leave dead text where a link should be. Mentions get rewritten by hand or dropped.

What never travels

  • Mentions and handles. Rewrite them per network or remove them.
  • Native vocabulary. RT, quote tweet, boost, and link in bio mean nothing (or something wrong) away from their home network.
  • Thread structure. A seven-part thread is a format, not a text. Pasted as one block with the 1/7 markers still in it, it reads as a mistake, because it is one.
  • Compression artifacts. Abbreviations and dropped articles that a character limit forced on you read as brusque everywhere the limit does not exist.
  • Screenshots of another network. An X screenshot on LinkedIn tells the reader exactly where the post really lives.
  • Timely hooks tied to one network's moment. A reply to a conversation nobody else saw is not a post, it is a fragment.

The pitfalls you only see later

Publishing everywhere in the same minute is the most common one. If two networks share part of your audience (they do), an identical post landing simultaneously in both looks like a bot, because that is precisely what a bot does. Stagger by a few hours. It costs nothing and removes the machine smell.

Then there is drift. You fix a typo on one network and not the others. You delete a post in one place. Three months later the versions have quietly diverged and nobody knows which one is canonical. Keep the source of the idea somewhere outside all of them, in a file or a doc you control, and treat each network as a rendering target.

The last one is measurement. If the same text goes out with the same link everywhere, you learn nothing about which network is worth your Tuesday. Vary one thing at a time if you actually want an answer.

A workflow that stays honest

The mechanic that makes all of this practical is per-channel variants: one post that holds different text for each network, edited separately and previewed separately. If your tool gives you a single composer and a row of checkboxes, it is structurally encouraging the exact thing that gave cross-posting its bad name.

postqueen keeps per-channel variants and previews each one, and the same shape holds from the CLI, where two channels are simply two commands with two texts.

terminal
# one idea, two drafts, two networks
postqueen posts:create --channel bluesky \
--text "Token refresh fails silently more often than it errors. Here is the check we run."
 
postqueen posts:create --channel linkedin \
--at "2026-08-05T09:00:00Z" \
--text "$(cat drafts/token-refresh-linkedin.md)"

That is the whole discipline, in the end. Same idea, two files, two commands. The extra ten minutes per post is the difference between distribution and spam, and your audience can always tell which one you picked.

Ready to get started?

Queue this week's posts in minutes, or hand the whole thing to your favorite AI. postqueen keeps publishing either way.

Seven days free. Cancel in one click from settings.