Most caption guides are a long list of "spicy lines you can copy-paste". They are useless. Across the 100+ creators MAHO manages, captions only matter when they are doing one of three jobs: pulling a fan into a DM, building social proof on the feed, or closing a PPV unlock. This guide breaks captions down by job, gives you 8-10 ready-to-use lines for each, and shows the Hook / Body / CTA structure we drill into every chatter on day one.
Every caption you write should have a single job. Trying to make one caption do all three at once produces flat copy that converts on nothing. We split captions into three buckets, and for any given post the chatter or creator picks one. The bucket determines the structure, the tone, and the length.
The reason this framework matters: it is the same split our chat team uses to write mass-DM blasts, which run roughly 60% welcome / PPV and the rest as engagement. Captions on the feed mirror the DM rhythm, and that consistency is what fans recognise as a "voice".
Every caption that converts on OnlyFans follows the same three-part structure. The proportions shift slightly between the three types, but the structure does not. If you take only one thing from this guide, take this:
| Part | Length | Job | Example phrasing |
|---|---|---|---|
| Hook | 1 line, <10 words | Stop the scroll, set the curiosity | "You will not believe what I just filmed..." |
| Body | 1-2 short sentences | Tease the content, not describe it | "It is the longest video I have ever uploaded and the kinkiest." |
| CTA | 1 line, action verb | Tell the fan exactly what to do next | "Tip $20 and I will send it to your DMs" |
Captions without a hook scroll past. Captions without a body feel cheap. Captions without a CTA produce nothing measurable. The most common mistake is missing the CTA, the second-most common is having two CTAs (the fan freezes and does neither). One CTA per caption, every single post.
Social-proof captions sit on personality posts, BTS, polls, and feed-filler. The CTA here is soft: a like, a comment, a story tap. The job is to keep the fan emotionally subscribed between PPV drops. Without these posts, the feed reads as one long sales pitch and re-subs collapse.
| # | Caption | Best paired with |
|---|---|---|
| 1 | "Lazy Sunday vibes. What is everyone up to today?" | Selfie in bed, no makeup |
| 2 | "Filming day. Comment if you can guess the theme." | BTS shot of camera setup |
| 3 | "This outfit is my favourite. Should I wear it more often?" | Mirror shot, full outfit |
| 4 | "Reading your comments with my coffee. You always make me smile." | Coffee or breakfast shot |
| 5 | "Just hit 5k subs. Not the number, the feeling. Thank you." | Personality milestone post |
| 6 | "My gym selfie said I have been working too hard. My DMs disagree." | Post-workout shot |
| 7 | "Day one of the new month. What do you want to see this week?" | 1st of the month reset post |
| 8 | "This is the angle I almost did not post. You decide." | Outtake or behind-the-scenes |
| 9 | "Trying something new for the feed. Tell me if it is a yes or no." | New aesthetic / new outfit |
| 10 | "Ten things I love about my fans. Top of the list: you are still here." | Story-style appreciation post |
Pattern across all ten: the CTA is a question or a soft prompt, never a price. The fan is not being sold to, the fan is being kept engaged.
DM-opener captions exist for one reason: get the fan to message you. Once a fan is in your DMs, the chat team's tools take over (PPV, custom-content offers, tip menu, queue). The chat team needs that DM to start before they can sell anything. The CTA here is "send me a DM" or a question that begs a private answer.
| # | Caption | What the chatter does next |
|---|---|---|
| 1 | "DM me your dirtiest thought right now. I will reply to one of you." | Filter top spenders, reply with a custom tease |
| 2 | "Bored. DM me a number 1-5 and I will send you something." | Map number to PPV tier price |
| 3 | "Picking 3 fans tonight for a free DM gift. DM the word YES." | Welcome gift to all, upsell to PPV after |
| 4 | "Tell me one thing you wish I would film. I read every reply." | Lock fan asks into the Notion request log |
| 5 | "My next set is in your DMs already. Check now." | Pre-warmed fans open and unlock immediately |
| 6 | "Should I send the spicy one or the soft one to your DMs? You choose." | Two-option vote becomes a binary PPV pitch |
| 7 | "Reply with your favourite emoji and I will pick a matching photo to send." | Match emoji to content tag, send tailored PPV |
| 8 | "DM me if you cannot sleep. We can keep each other company." | Late-night chat opens a high-spend window |
| 9 | "Quick poll in DMs. First answer wins a free clip." | Reward fastest fan, set anchor for whale tier |
| 10 | "Two new outfits. DM me 1 or 2." | Binary vote turns into a paired PPV upsell |
Pattern: every CTA pulls the fan into the DM. None of them sell directly on the feed. That is by design, the feed warms the fan, the DM closes.
PPV-seller captions sit on locked posts and on the social teaser that drives the unlock. The CTA is direct: a price, a tip amount, a bundle. These captions look more aggressive than the other two, because they are. The whole point is to ask for the sale, and a fan who scrolls past one of these has either already unlocked or is not buying today.
| # | Caption | Price band |
|---|---|---|
| 1 | "My longest video ever. 14 minutes, no cuts. Tip $30 and it is yours." | $25-40 |
| 2 | "This is the set I almost did not film. Locked. $20 unlocks the full reel." | $15-25 |
| 3 | "4 outfits, 1 location, 1 mood. The full bundle drops at $40 in your DMs." | $30-50 |
| 4 | "Two angles, both unposted. Tip $25 to see both." | $20-30 |
| 5 | "Solo set, premium length. Locked PPV, $35. The teaser is in your inbox." | $30-40 |
| 6 | "Custom request from a fan. I am sending it to anyone who tips $15." | $10-20 |
| 7 | "I filmed this in three takes. Only the third made the cut. $25 in DMs." | $20-30 |
| 8 | "Halloween-themed PPV is live. $40 unlocks the full set, today only." | $30-50, tent-pole |
| 9 | "Premium drop of the month. 12 photos + 1 video. $45 to unlock." | $40-60 |
| 10 | "Renew + unlock today and the next set is on me. Tip $30 to claim." | $25-40, retention |
Pattern: every caption has a number. Vague PPV captions ("DM me for a surprise") underperform direct ones ("$30 unlocks the full reel") by a margin we have measured repeatedly. Fans want to know what they are buying and what it costs before they tap.
Three things will get a caption pulled, the post hidden, or in the worst case the account in trouble:
Beyond the rules, two patterns we drill into every chatter we onboard: (1) write the CTA first, then write the hook to lead into it; (2) read the caption out loud, if it sounds like an ad, rewrite it.
Captions are a numbers game. The lift from a good caption versus an average caption on the same content can be twofold on PPV unlocks, but only if you are measuring. The minimum testing rhythm we run on every managed account:
Most creators iterate on visuals and ignore captions. Reverse it: the visual is fixed once it is shot, the caption can be A/B tested forever, and the caption is doing more of the conversion work than most creators realise.
Three short lines max. The hook lives in the visible preview before the "more" tap, the body is one short sentence, the CTA is one short line. Anything longer reads as a brochure and the CTA gets buried below the fold. Across our portfolio, captions under 30 words outperform captions over 50 words on the same content.
Sparingly and on purpose. One or two emojis at the end of the hook or the CTA can lift click-through. A wall of emojis reads as spam and OnlyFans' visibility scoring weights it down. Save the emoji for the moment the caption needs a tone signal, a flirt, a wink, a frame for the price.
No. PPV captions sit inside the locked post and inside the DM that delivers it, and they are the most price-direct of the three types. Feed captions can be Type 1, 2, or 3 depending on the post's job. Treat them as different copy formats, not as one unified "caption" pool.
You can rotate a caption library of 10-12 lines per type without fans noticing. You cannot reuse the same caption back-to-back without it reading as lazy. A monthly rotation is the practical rhythm. Outside the rotation, write a fresh caption for tent-pole drops (Halloween, Christmas, anniversary).
OnlyFans does not surface hashtags meaningfully. They will not break the caption but they will not earn their place either. Save the hashtag energy for the social-funnel posts on Reddit, X, and IG, where they actually drive discovery. On OnlyFans, the caption is for the existing fan, not for the algorithm.
Yes. The chatter knows what the DM team is selling this week, the creator knows the personality voice. The strongest captions on our managed accounts come from a 5-minute briefing where the chatter says "I want to drive DMs to this $25 PPV" and the creator writes the hook. Split work, single voice.
Three signals, in order of importance. PPV unlock rate on the post (Infloww shows it). DM volume in the hour after posting (chat team tracks it). Likes and comments on the feed (OF native stats). If the unlock rate is up but the DM volume is flat, the caption is doing PPV work but not Type 2 work. Match the signal to the type.