All posts

How to Verify an Email List Too Big for Excel or Google Sheets (100k to 1M+ Rows)

··4 min read

To verify a list too big for a spreadsheet, don't open it in one: shrink the CSV to an ID and email column, dedupe it, split it into parts, verify each part, and join the results back on the ID. Excel stops at 1,048,576 rows and Google Sheets at 20 million cells, and both get slow well before that. On SimpleVerifier one list takes up to 100,000 rows, so a 600,000-row file runs as six parts; a longer file is offered as a first part to run now and the rest to download.

The limits you're hitting

  • Excel: "1,048,576 rows by 16,384 columns" per worksheet (Microsoft's Excel specifications and limits). Open a bigger CSV and the rows past the limit aren't loaded. Save it, and they're gone.
  • Google Sheets: "Up to 20 million cells or 100MB for spreadsheets that are created in or converted to Google Sheets" (Google Drive help). A lead export with 40 columns hits 20 million cells at 500,000 rows.
  • Leading zeros and long numbers: Excel turns phone numbers and IDs into numbers, dropping zeros and rounding long values. See CSV to Excel without losing leading zeros.

Big outbound lists (a ZoomInfo or Apollo bulk export, a merged year of scraping, an agency's combined client lists) cross these lines quickly.

Step 1: cut the file down before checking

You pay for checks in time if not in money, so remove rows that don't need checking first:

  1. Keep only what you need to verify: a row ID (or the LinkedIn URL) and the email. Everything else stays in the original file for the join later. The CSV column editor does this in the browser.
  2. Normalise and dedupe: lower-case and trim the email, then remove duplicates with remove duplicate emails. Merged lists often shrink a lot here.
  3. Remove the obviously bad: blank cells, broken syntax (bulk email syntax checker), and addresses already on your suppression list (compare email lists).
  4. Decide on role addresses: for person-level cold email, drop info@ and sales@ with the role-based email filter.

Free cleanup before verification covers more of these steps.

Step 2: split into parts

Split the slim file into parts of up to 100,000 rows with the email list splitter. Name them in order (part-01, part-02) so the join is easy.

If you upload a longer file to SimpleVerifier anyway, it isn't refused: the verify page offers the first 100,000 rows as a part to run now and the rest as a download to upload next. A file that's too large to send in one go is sent with only its email and phone columns, every row kept, and the results are joined back to your other columns in the browser afterwards.

For a pipeline rather than a person, the API has a lists endpoint that runs a list as a job on your account, and bulk-verify a CSV with an API has a resumable script.

Step 3: verify each part

Upload each part. Every address gets a live SMTP mailbox check and comes back valid, risky (catch-all, role, disposable or mailbox full, with the reason), invalid or unknown. Download each result file.

Big lists take a while for reasons outside any verifier's control: some mail servers slow down or temporarily refuse repeated checks from the same source. How long bulk email verification takes explains what affects speed.

Step 4: join results back

Stack the result parts with CSV merge, then look up each original row's status by ID or email with CSV VLOOKUP. Both run on the CSV, not in a spreadsheet. The verification results cleaner splits the final file into send, hold and suppress lists.

Step 5: send a big list safely

  • Spread valid rows across inboxes and days. A big clean list can still get you blocked if it goes out too fast. See cold emails per day per inbox and the cold email volume calculator.
  • Catch-alls last, highest grades first, a few hundred per batch; stop a batch above 2% hard bounces.
  • Unknowns: re-check after a day; servers that didn't answer often do later.
  • Suppress invalid rows in your sequencer so a re-import can't add them back.

What verifying a big list costs

Per-check pricing gets expensive at 500,000 rows. SimpleVerifier's monthly plans are built for volume:

  • Starter, $9 a month: 2,500 checks.
  • Pro, $39 a month: Unlimited email verification.*
  • Business, $99 a month: the first 300,000 checks a month at full speed, priority lane, 5 seats.
  • Agency, $249 a month: the first 750,000 checks a month at full speed, priority lane, 15 seats, client workspaces.

*Pro fair use: the first 100,000 checks a month at full speed, then slower, never cut off. On Pro, Business and Agency, lists past the monthly full-speed volume keep running in the slower lane rather than stopping. See pricing. Check your list free first: the first 100 checks are free with a Google sign-in, enough to sample a big file with the email list sampler.

More reading: best email verifier for large lists, what it costs to verify 500,000 emails, verify 1 million emails, and our bulk email verifier page.

Common questions

What is the maximum number of rows in Excel?

Microsoft's Excel specifications page lists 1,048,576 rows by 16,384 columns per worksheet. A CSV with more rows opens incomplete, and Excel warns that the file didn't load completely.

How many rows can Google Sheets hold?

Google's Drive help says up to 20 million cells or 100 MB for spreadsheets created in or converted to Sheets. Cells count across all tabs, so a wide file holds far fewer rows.

How do I verify a 500,000-row email list?

Strip it to the email column plus an ID, dedupe, split it into parts of 100,000, verify each part, then join results back to the original file on the ID. Send valid rows in batches across your inboxes and keep catch-alls for later.

How long does it take to verify 1 million emails?

It depends on the verifier's capacity and how fast the receiving mail servers answer; some servers deliberately slow down repeated checks. Plan for hours, not minutes, and run parts in parallel only if your plan allows it.

Check your list before you send

Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.