If you're sending texts to a lead list and a third of them never reach a human, you're not running a campaign — you're lighting money on fire. Dead numbers, landlines, disposable burners, and people who never actually opted in are the quiet killers of SMS ROI. Worse, some of those misses can turn into complaints, carrier blocks, or a TCPA letter.
This is a practical cleanup playbook. No theory, no fluff — just what to do before you hit send.
Why your list is dirtier than you think
Phone lists rot fast. People change carriers, abandon numbers, port to a different provider, or hand out a Google Voice number they never check. If you bought a list, multiply that rot by whatever the seller was incentivized to ignore.
A few patterns to expect in a typical unverified list:
- Landlines mixed in with mobiles. Texts to landlines either silently fail or get read aloud by a robot. Either way, no reply.
- Disconnected or reassigned numbers. Reassigned is the dangerous one — the new owner never consented and can complain.
- VoIP and disposable numbers. Often used by people gaming signup forms. High bounce, near-zero conversion.
- Typos and bad formats. Off-by-one digits, missing country code, extra characters.
If you've never cleaned a list, expect 30%+ of it to fall into one of those buckets. That's not pessimism — that's the baseline.
Step 1: Run every number through a carrier lookup
Before a number ever enters your sending tool, hit it with a carrier lookup. This is a cheap API call (fractions of a cent per number) that tells you:
- Is this a real, active number?
- Is it a mobile, landline, or VoIP line?
- Which carrier owns it right now (catches ports)?
Filter out landlines and disconnected lines automatically. Flag VoIP for a closer look — some are legit business mobiles, some are throwaway. If your CRM lets you store the line type as a field, do it. You'll thank yourself later when you're segmenting.
The math is brutal in your favor: a lookup costs a fraction of a cent. A wasted SMS plus the carrier fee plus the registration overhead costs you more. Cleaning is always cheaper than blasting.
Step 2: Make your opt-in form do real work
The single highest-leverage change most senders can make is free: fix the form where numbers come in.
Confirm the number on the form itself
Two fields, not one. Make people type their number twice, or show it back to them in a confirmation step. Fat-fingered digits drop out immediately.
Send a confirmation text before they're "in"
A double opt-in flow — they enter their number, you text a code or a "reply YES to confirm" — is the cleanest list-builder there is. It proves the number works, proves the person owns it, and creates a documented consent record you can show a regulator. Yes, you'll lose some signups. Those signups were going to bounce anyway.
Be specific about what they're agreeing to
"I agree to receive texts" isn't enough anymore. Say what kind of texts, roughly how often, and from whom. A clear checkbox with plain language beats a wall of legalese every time. If you want a deeper look at where the consent rules are heading, the TCPA changes for 2026 are worth reading before you redesign anything.

Step 3: Stop pretending cold lists are okay
This is the part nobody wants to hear. If you didn't collect the number yourself, with clear consent to text your business specifically, you don't have permission to text it. Buying a "lead list" and SMS-blasting it is the fastest way to:
- Get your sending number blocked by carriers within a day or two
- Earn a complaint that turns into a $500–$1,500 per message lawsuit
- Burn the registered business identity you spent weeks getting approved for SMS sending (the 10DLC registration — that's the carrier program that approves business texting on regular 10-digit numbers)
Third-party consent, "partner network" consent, and "they opted in somewhere" consent all fail the same legal test. The only consent that holds up is consent given directly to you, for the kind of messages you're actually sending.
If cold outreach is the goal, voice with proper disclosure is a different conversation — but SMS isn't the channel for it.
Step 4: Segment by line type and engagement
Once your list is clean on the way in, keep it clean on the way out:
- Suppress non-mobile lines from SMS campaigns automatically.
- Track replies and clicks. A number that hasn't engaged in 6+ months is a candidate for a re-confirmation text or removal.
- Watch your opt-out rate per send. If it spikes above 2–3%, something is wrong with either the list or the message.
- Re-validate quarterly. Numbers port. People churn. Run the active part of your list back through carrier lookup every few months.
This is the boring part that separates senders who keep their delivery rates high from senders who wonder why their messages stopped landing. If you're already seeing drops, the post on why business texts aren't going through walks through the common causes.
Step 5: Keep a consent paper trail
If you ever get a complaint or a carrier audit, the question is the same: prove this person agreed to hear from you. That means storing, for every contact:
- The exact form or channel they opted in through
- Timestamp and IP address
- The specific language they agreed to
- Any confirmation reply they sent back
Store it in your CRM, your SMS platform, or both. If you can't pull up that record in under a minute, you don't really have it.
What to do next
If you're staring at a list right now and dreading the send, work through this order:
- Export the list. Run it through carrier lookup. Drop landlines, disconnected, and obvious junk.
- Check your consent records for what's left. Anything you can't document, suppress.
- Fix the opt-in form so the next batch comes in cleaner than the last one.
- Send to the cleaned segment, watch opt-out and reply rates, and adjust.
A list of 3,000 numbers you actually have permission to text will outperform 10,000 cold numbers every single time — in conversions, in cost, and in the number of legal letters you don't receive.