Searching for "average SMS opt-in rate" gets you a single number, usually a small share of site visitors. That number won't help you plan. An unchecked box at checkout, a popup on a blog post and a keyword on a printed receipt don't share a denominator, so they can't share an average. If you compare your checkout box against a popup benchmark, you'll either panic for no reason or relax when you shouldn't.
This post ranks capture methods from the lowest opt-in rate to the highest, rather than quoting numbers we haven't measured. It then covers the tactics that move each method and the disclosure language each one needs. Disclosure matters to growth too: carriers review your opt-in flow during 10DLC registration, and a weak flow can stop a campaign before the list matters at all.
What "opt-in rate" actually measures
An opt-in rate is subscribers divided by the people who saw the ask. The hard part is defining who saw it:
- Website popup: unique visitors who were shown the popup, not all sessions.
- Checkout checkbox: completed checkouts, not cart starts.
- Keyword (text JOIN to your number): people exposed to the sign, receipt or ad. This is usually a guess, so keyword rates are the least reliable numbers you'll track.
- Transactional signup (booking or order updates): people who completed the form that offered texts.
Track each method on its own line. A blended "list growth rate" hides which channel is working.
Typical opt-in rates by capture method
Rates vary a lot by audience, offer and traffic quality, so treat the order below as a sanity check, not a target.
| Capture method | Denominator | How it usually compares | Biggest lever |
|---|---|---|---|
| Website popup, no incentive | Visitors shown the popup | Lowest | Timing and targeting |
| Website popup with an incentive | Visitors shown the popup | Higher than a plain popup | Offer value, two-step form |
| Checkout checkbox (unchecked) | Completed checkouts | Higher than any popup | Wording and placement |
| Keyword on signage or receipts | People exposed (estimated) | Low, and hard to measure | Clear reason to text now |
| Transactional updates (bookings, orders) | Completed forms | Highest | Framing texts as the useful default |
The pattern is simple. The closer the ask sits to something the person already wants, such as an order update, an appointment reminder or a discount on the cart in front of them, the higher the rate. Cold site traffic converts worst because it has the least reason to hand over a phone number.
A worked example
Take an assumed store with 20,000 monthly visitors, 400 checkouts a month, a popup converting at an assumed 3% and a checkout box converting at an assumed 12%:
- Popup: 20,000 × 3% = 600 subscribers a month
- Checkout: 400 × 12% = 48 subscribers a month
The popup brings in more volume. The checkout subscribers have already bought, though, and they tend to stay longer and respond better. Measure both channels on downstream revenue per subscriber, not only on list size.
Raising web opt-in rates
Use a two-step form
Ask for the email first, then the phone number on the next screen. Each step is a smaller commitment, and you keep the email even when the person skips the phone field. Many stores find the phone step converts a meaningful share of people who just gave their email. Run the test yourself before you trust a benchmark.
Time it to intent
A popup that fires at second three on a blog post annoys people. A popup that fires on a product page after some scroll, or on exit intent from the cart, meets them while they're deciding. Suppress it for existing subscribers and for anyone who closed it in the last week or two.
Make the offer specific
"Get 15% off your first order" beats "Join our VIP list." Restock alerts, early access and order tracking all work for audiences that don't respond to discounts.
Keep the disclosure visible
Put the disclosure next to the phone field, not behind a link. Carriers and the TCPA both expect marketing consent to be clear and specific. The disclosure should name:
- Your brand and that the texts are recurring marketing messages
- Message frequency ("up to 4 msgs/mo")
- "Msg & data rates may apply"
- How to get help (reply HELP) and opt out (reply STOP)
- Links to your terms and privacy policy
- That consent is not a condition of purchase
We've collected approved wording in 10DLC opt-in examples and sample messages. The broader list-building playbook is in how to grow an SMS subscriber list compliantly.
Raising checkout opt-in rates
Checkout is usually your best-quality source. The rules are stricter here, so the tactics are narrower.
- Leave the box unchecked. A pre-checked marketing box doesn't get you clear consent, and carriers reviewing your flow will flag it.
- Separate marketing from order updates. "Text me shipping updates" and "Text me offers" are two different consents. Bundling them inflates your rate and muddies your consent records.
- Write the label as a benefit. "Text me early access to sales and restocks" works better than "Subscribe to SMS marketing." Keep the full disclosure directly under it.
- Prefill the phone field. If the shopper already typed a phone number for shipping, offer to reuse it. Removing a step lifts conversion.
- Follow up after the order. The thank-you page is a second chance for buyers who skipped the box. They just bought, so the ask feels natural.
If you plan to text people who abandon carts, the consent has to come before they abandon. Abandoned cart SMS covers where that capture needs to happen.
Raising keyword opt-in rates
Keyword signup means printing "Text JOIN to (555) 010-0199" on a sign, receipt, menu or ad.
Pick a keyword people can't mistype
Short, single words work best: JOIN, VIP, DEALS or your brand name if it's easy to spell. Avoid keywords that autocorrect or that look like ordinary replies, like YES or OK. Once a keyword is live and printed, don't change it.
Give a reason to text right now
"Text VIP for 10% off today" outperforms "Text VIP to join our list." People act on an immediate payoff. They rarely act on an abstract one.
Send the confirmation reply every time
The first message after a keyword opt-in confirms the subscription and repeats the disclosure. It needs to cover the same points as the web disclosure. Keep it in plain characters so it fits one segment:
Acme Coffee: You're in! Up to 4 msgs/mo. Msg & data rates may apply. Reply HELP for help, STOP to opt out. Terms: yourdomain.example/sms
That message is about 125 characters, which fits in one 160-character GSM-7 segment. Add a single emoji and the limit drops to 70 characters per segment (67 per part once split). The same message becomes 2 segments.
What keyword signups cost on Ready
On Ready, an inbound text is billed like a sent one, at $0.0075/segment plus a $0.0045 carrier fee. An assumed 1,000 keyword signups in a month looks like this:
- Inbound JOIN: 1,000 × 1 segment = 1,000 segments
- Plain-text confirmation: 1,000 × 1 segment = 1,000 segments
- Total: 2,000 segments × $0.0075 = $15, plus 2,000 × $0.0045 in carrier fees
With an emoji in the confirmation, that becomes 3,000 segments: $23 plus 3,000 × $0.0045. That's 50% more for one decorative character. The all-in figure excludes the compliance surcharge. If you turn on DNC/litigator scrubbing or landline validation for the account, each adds $0.003 per segment. Both are off by default.
Single vs double opt-in: what it does to your rate
Double opt-in, where the subscriber must reply YES to confirm, lowers your raw opt-in rate because some people never reply. What you keep is a list of people with working numbers who clearly want the texts. That means fewer complaints, fewer opt-outs and cleaner carrier reputation. For keyword signups the person has already texted you, so a confirmation reply is usually enough. For web forms, the extra step does the most to keep typo'd and fake numbers out. We lay out the full tradeoff in single vs double opt-in deliverability.
If you only judge opt-in rate, single opt-in always wins. If you judge revenue per subscriber after 90 days, the result is often much closer.
Where Ready fits in your opt-in flow (and where it doesn't)
Be clear about who stores what:
- Your form or store keeps the consent record: the opt-in time, the exact wording shown and the page URL. Ready does not store per-contact consent, and a keyword reply does not create a consent record in Ready. Log it on your side. (A contact who signs up on a Ready-hosted opt-in page is the exception: Ready stores that sign-up, with the time, IP address and exact wording, and support@tryready.com can send you a copy.)
- Ready records the sender's attestation on each bulk send and each API send that sets
consent_attested: who sent, to how many and when. When you send through the API,consent_attested: trueis your promise that the recipient agreed:
POST https://api.tryready.com/v1/messages
X-API-Key: <key>
Idempotency-Key: <uuid>
{"to": "+12125550199", "body": "Acme Coffee: You're in! Up to 4 msgs/mo...", "consent_attested": true} - STOP is handled automatically. An opt-out applies across every campaign, and later sends to that number are refused before they go out, with no charge. See the messages API docs.
- Quiet hours are enforced based on the recipient's area. A confirmation triggered at 11 PM is held and sent later, and it's only charged when it sends. Campaigns, drip campaigns and automations wait up to 24 hours for the window; a one-to-one or API text is held only if the window opens within 6 hours, otherwise it is refused and must be resent; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.
Your 10DLC campaign registration needs to describe this same opt-in flow. Registration on Ready costs $25/mo for registration, plus $2 per number. Most approvals take 2 to 7 days. Ready doesn't make you compliant on its own; compliance stays the sender's responsibility. The tooling reduces the most common mistakes.
The practical takeaway
Don't benchmark against one "average SMS opt-in rate." Track each capture method against its own denominator and use the order above as a sanity check. Then work on the method closest to purchase intent. For most businesses that's checkout and transactional signups first, a two-step incentive popup second and keywords for offline traffic. Keep every disclosure visible and specific, keep the confirmation message to one plain-text segment and store your own consent records.
If you want to test a keyword flow, sign up and send your first one-to-one texts before you register. The first 20 are free, so use them before you pay for registration.