How to Clean Scraped Business Data Before You Use It
Scraped data arrives in the shape of the page it came from, not the shape you need. That's the whole problem in one sentence.
A business name is whatever was in the title tag. A phone number is however the web designer chose to type it. A website URL carries whatever tracking parameters were on the link that was harvested. None of it is wrong, exactly — it's just raw, and raw data behaves badly the moment it meets a CRM.
Here's the cleaning pass, roughly in the order that gives you the most back for the least effort.
Business Names Are Usually Page Titles
The single highest-value fix. "Bright Smile Dental Practice | Leeds | Book Online Today" is a title tag written for Google. The name is the first six words.
Look for the standard separators — pipes, en dashes, spaced hyphens, and occasionally colons — and cut everything after the first one. Then strip the recurring suffixes that survive: "Official Site", "Home", "Welcome to", location tags, and the increasingly common "| 5 Star Rated".
Two cautions. Genuine hyphenated business names exist, so a spaced hyphen is a much safer cut point than a bare one. And some businesses legitimately have a pipe or dash in their trading name, which is why this should be a step you can review rather than a blind replace across ten thousand rows.
This field ends up in your subject lines and your CRM, so it repays the attention.
Phone Numbers Need One Format, Not Six
The same scrape will give you 0113 249 6000, (0113) 249 6000, +44 113 249 6000, and 01132496000. These are one number written four ways, and every one of them fails a comparison against the others.
Convert everything to E.164 — strip punctuation, drop the leading zero, prepend +44. The UK phone formatting guide covers the awkward cases: numbers already in international form, extensions that can't be represented, and the length check that catches "Call us today!" sitting in a phone field.
Do this before deduplication, because phone is one of the few reliable keys you have and it only works if both sides are in the same format.
URLs Carry Passengers
Scraped website addresses routinely arrive with query strings attached — utm_source, utm_campaign, fbclid, gclid, session identifiers. They describe how the link was found, not where the business lives.
Cut everything from the question mark onwards, then normalise what's left: consistent protocol, no trailing slash, and a consistent decision about www. You want exactly one canonical string per business, because domain is the most reliable deduplication key in local business data and it only works on normalised input.
Watch for the rows where the "website" is actually a Facebook page, a Google Business profile, or a directory listing. Those aren't the business's website and shouldn't be treated as one — most obviously because the domain is shared with thousands of other businesses, which will wreck any domain-based matching.
Emails Need Filtering, Not Just Finding
Scraped email addresses include a predictable set of things that aren't leads: the web developer's address, a stock photo library's licensing contact, no-reply addresses, and whatever was in a third-party widget's markup.
Filter out addresses on domains that obviously aren't the business — the CMS vendor, the analytics provider, the payment processor. Filter no-reply and postmaster addresses. And be suspicious of any address whose domain doesn't match the business's own domain, unless the business genuinely uses a Gmail or Outlook address, which plenty of small UK businesses do.
Empty Should Mean Empty
One convention for missing data across every column, and it should be a genuinely empty cell rather than "N/A", "null", "-", or "unknown". Mixed conventions produce CRM records whose email address is the word null.
This is trivial to get right at export time and tedious to fix afterwards, because by then the placeholder text is indistinguishable from real data.
Some of These Businesses Have Closed
No amount of formatting fixes a business that shut in March. Directory data lags reality, and a listing can stay live long after the shutters come down.
There's no clean automated answer, but there are signals: a dead website, a disconnected number, or a listing with no recent reviews in a category where reviews are constant. Spot-check twenty rows before committing to a list — if several are gone, the problem is the source, not the cleaning. The data decay guide covers how fast this happens.
The Order Matters
Clean fields, then deduplicate, then export. Deduplicating first means matching inconsistent strings against each other, which is how the duplicates got there.
Most of this is mechanical, which means it should be automated rather than done by hand more than once. LeadSnipe's export pipeline runs the whole pass — name trimming, E.164 conversion, tracking parameter stripping, empty-cell normalisation — and then deduplicates non-destructively on the cleaned fields. The lead list quality checklist is the shorter version to run before you use any list, and the clean CSV export guide covers the file itself.