Key takeaways from this article:

  • Contact scraping is the automated harvesting of email addresses, phone numbers, and physical addresses directly from your website’s HTML source code — usually within hours of a site going live.
  • Scrapers don’t need your permission and they don’t care about your privacy policy. They read your page source the same way a browser does, then extract every contact pattern they find using regex.
  • The downstream consequences are real and specific: spam email, robocalls, spam texts, junk mail, and phishing attacks — all originating from data harvested from your site.
  • Standard contact forms don’t stop this. Scrapers aren’t submitting forms — they’re reading the HTML before any form interaction happens.
  • The only reliable protection is making sure your contact information doesn’t exist as readable text in your HTML in the first place — through encoding, encryption, or image rendering.

Most WordPress site owners assume their contact information is reasonably safe as long as they’re not doing anything obviously reckless — no password sharing, no sketchy plugins, a solid hosting provider. The spam texts and robocalls that start arriving weeks after launch feel random, disconnected from anything they consciously did.

They’re not random. There’s a direct line from your WordPress site’s HTML source code to those calls, and understanding that line is the first step to cutting it.

Contact scraping is the process — and if you have an email address, phone number, or physical address published anywhere on your WordPress site, it almost certainly has already happened to you.

What Contact Scraping Actually Is

Contact scraping is the automated extraction of contact information from publicly accessible web pages. A scraping bot — an automated program, not a human — requests your page the same way a browser does, reads the raw HTML it receives, and searches that HTML for patterns matching email addresses, phone numbers, and physical addresses. Anything it finds gets extracted, logged, and typically sold or added to a spam list.

The mechanics are straightforward. Email addresses follow a consistent pattern: characters, an @ symbol, a domain, a dot, a top-level domain. Bots use a regular expression — essentially a pattern-matching rule — that looks something like \w+@\w+\.\w+ and pulls every string in your HTML that fits that pattern. Phone numbers follow regional formats that are equally predictable. Physical addresses have standard structures by country that bots are trained to recognize.

This is not sophisticated hacking. It requires no credentials, no vulnerability, no exploit. The scraper simply reads the source of your public pages — the same source you can see by pressing Ctrl+U in any browser — and extracts what it finds there. If your email address is in that source as readable text, it will be found.

A bearded man in a light blue shirt sits at a desk with a laptop, gesturing with frustration—perhaps struggling with contact scraping tools. Books, a smartphone, and takeout coffee sit nearby, while a bookshelf is in the background.

How Scraping Bots Find Your Site

You don’t need traffic for scrapers to find you. Bots don’t rely on Google to discover new sites — they use their own crawling infrastructure, continuously scanning IP ranges, monitoring new domain registrations, watching public WHOIS data, and following links from sites they’ve already indexed.

A new WordPress site is typically discovered by scraper bots within hours of going live. The WordPress platform itself is identifiable from several signals in the HTTP response headers and page structure, which is why WordPress sites receive disproportionate bot attention — there are over 800 million WordPress-powered sites, and scrapers know the platform’s conventions well enough to navigate them efficiently.

Once a scraper hits your homepage, it doesn’t stop there. It follows internal links — to your About page, your Contact page, your footer, your sidebar. Contact information tends to concentrate in predictable places: the footer, the contact page, the about page, and embedded in page headers. Scrapers know this and prioritize those locations.

The WordPress Target Problem

WordPress sites are scraped disproportionately because the platform’s structure is well-known and consistent. Scrapers can navigate a WordPress site efficiently precisely because the theme structure, widget areas, and typical footer placement follow patterns the bots are trained on. A site owner who chose WordPress for its ease of use inadvertently chose one of the most well-understood targets for automated contact harvesting.

What Happens to Your Data After It’s Scraped

Scraped contact data doesn’t stay with the scraper. It enters a market. There are active commercial exchanges where harvested contact lists are sold, rented, and traded — sometimes within hours of collection. A single scraping operation targeting thousands of WordPress sites simultaneously produces lists that are immediately monetizable.

The buyers of that data use it for several purposes, none of which you consented to:

  • Email spam campaigns — your address gets added to bulk mailing lists for unsolicited commercial email, phishing attempts, and malware distribution
  • Robocalls and spam texts — your phone number gets loaded into autodialers and SMS blasting platforms
  • Junk mail — your physical address, if harvested, lands you on direct mail lists sold to lead generation companies
  • Targeted phishing — your email combined with your site’s business information enables personalized phishing attacks that reference your business by name, making them significantly more convincing
  • Data broker profiles — your contact information gets absorbed into data broker databases where it’s combined with other publicly available information about you, enriched, and resold repeatedly

Once your contact data has been scraped and sold once, it doesn’t stop circulating. Data broker lists are resold to other buyers, aggregated into larger databases, and redistributed indefinitely. There is no meaningful way to remove your information from a list that has already been distributed to hundreds of buyers.

The only reliable answer to contact scraping is prevention. Once the data is out, there is no getting it back.

How to Tell If It’s Already Happening to You

The signs are rarely ambiguous once you know what to look for. Contact scraping almost always produces a predictable pattern of downstream symptoms:

  1. 1

    A sudden increase in spam email after launching or updating your site. If your inbox goes from manageable to overwhelming within weeks of publishing your WordPress site — or after adding a new page with contact info — that’s a strong signal your address was harvested at launch.

  2. 2

    Robocalls and spam texts to a number that was previously quiet. If the phone number published on your site starts receiving calls and texts it never received before, the timing is almost never coincidental. Numbers on new business sites get harvested fast.

  3. 3

    Junk mail to your business address. Physical address harvesting is less discussed but just as real. If your office or business address is published on your WordPress site and you start receiving a wave of unsolicited direct mail, the source is likely the same automated scraping that hit your email and phone.

  4. 4

    Phishing emails that reference your business by name. Generic phishing is annoying. Targeted phishing that says “Dear [Your Name], regarding your business at [Your Business Name]…” is a clear indicator that a scraper combined your contact info with other publicly available data about you and sold the enriched profile.

A young woman with red hair, wearing a white shirt, looks concerned as she answers a spam call on her smartphone. She stands indoors in front of large windows with a blurred cityscape in the background.

What Doesn’t Protect You (And Why)

Several common assumptions about contact protection turn out to be wrong once you understand what scrapers actually do.

Doesn’t Work

Publishing your email as “name [at] domain [dot] com” — basic scrapers are trained to recognize this pattern and decode it automatically. It was a valid workaround in 2005. Not anymore.

Works

Encoding your email so the HTML source contains encrypted or entity-encoded characters that human visitors still see correctly but bots cannot extract as a recognizable email string.

Doesn’t Work

Relying on your contact form as your only published email. If your email address appears anywhere in your site’s HTML source — footer, header, About page — the scraper finds it regardless of whether the contact form is the “official” way to reach you.

Works

Auto-detection that scans your entire site for every instance of contact information in the HTML and protects all of them — not just the ones you manually specified with shortcodes.

Doesn’t Work

robots.txt — the file that tells legitimate crawlers what to index. Bad bots don’t read robots.txt. It’s a convention for cooperative crawlers like Googlebot, not an enforcement mechanism.

Works

Active bot detection that identifies scraper behavior patterns — request timing, user agent strings, honeypot trigger events — and blocks or traps the bots before they can harvest anything.

The common thread in what doesn’t work is that it all assumes the scraper is cooperating in some way — reading your signals, respecting your preferences, acting in good faith. Scrapers don’t cooperate. They read your source code and extract what’s there. The only effective protection operates at the source code level, making sure the contact information isn’t there as extractable text in the first place.

A person in a gray tank top is touching a transparent virtual shield icon with a check mark in the center, symbolizing security or verification against issues like contact scraping happening.

What Actually Stops Contact Scraping

Effective contact protection has two layers, and both matter.

Layer one is making the data unreadable. This means encoding or encrypting your contact information so that what appears in the HTML source is not a recognizable email address, phone number, or address — even though it renders correctly for human visitors. Basic HTML entity encoding scrambles the characters in the source. Stronger encryption uses site-specific keys so that even if a scraper captures the encoded string, it can’t reverse-engineer the original contact information without the key that’s unique to your site. The most aggressive version of this is rendering contact information as an image entirely — no text in the HTML whatsoever, just a PNG that a human can read but a bot cannot parse as contact data.

Layer two is catching and blocking scrapers before they succeed. Honeypot traps — hidden links and form fields that are invisible to human visitors but visible to bots — identify scrapers the moment they interact with them. Once identified, the scraper’s IP gets blocked permanently and reported to a shared intelligence network so other sites benefit from the same block. This is the active defense that complements the passive protection of encoding: encoding means even a successful scrape yields nothing useful; honeypots mean the scraper often doesn’t get that far.

WhoKnew Shield™ combines both layers in a single plugin: dual-layer contact encoding in the free version, with military-grade site-specific encryption, Silent Contact™ image rendering, Scraper Trap™ honeypots, and the WhoKnew Intelligence™ network of 15 million known bad actor IPs in the Pro tier. It also auto-detects contact information across your entire site — no manual shortcodes, no gaps from pages you forgot to protect. Download the free version directly from WordPress.org and see what’s actually in your source code.

The Right Mental Model

Think of contact scraping the same way you think about leaving cash on a table in a public place. The cash is real and visible and accessible to anyone who walks by. Whether someone takes it depends entirely on who walks past — you have no control over that. The fix isn’t to hope nobody dishonest walks by. The fix is to not leave the cash on the table. Contact encoding and encryption is the equivalent of putting your cash in your pocket. It’s still yours, still accessible to the people you want to reach — it just isn’t lying there in plain sight for anyone to take.


Further Reading

Stop Contact Scraping Before It Starts

WhoKnew Shield™ protects email addresses, phone numbers, and physical addresses from scraper bots — auto-detecting contact info across your entire WordPress site with no shortcodes required. The free version starts working immediately.

Get WhoKnew Shield™ →

Download the free version from WordPress.org · Pro from $8/mo · No credit card required

Who knew the robocall you got this morning started with a bot reading your WordPress footer at 3am the night you launched your site.

J. Moody, Founder/CEO

Author J. Moody, Founder/CEO

I build WordPress and WooCommerce plugins to solve problems I've actually hit myself — not theoretical ones. I've done a little bit of everything and built the tools I wished existed along the way.

More posts by J. Moody, Founder/CEO
Share