A stack of plain manila folders on a desk in late afternoon light through window blinds, with reading glasses, a pen and a laptop beside them.

Field notesTechnical SEO

The Case Files: Every Hacked Website We Cleaned Up in 2026, What Gave It Away and What Fixed It

In 2026 we cleaned up four hacked business websites and watched bots hammer several more. Three of the four owners had noticed nothing at all. Every hacked site ran self-hosted WordPress, and every attack was built to look clean to the person who owned it. These are the case files, what gave each one away and the guides that go deeper.

Four hacked business websites, one year, and what gave each one away. AI-generated illustration.

In one paragraph

A hacked website is one carrying content or code its owner did not put there, from spam pages and hidden links to code that runs in visitors' browsers. Google lists code injection, page injection, content injection and redirects as forms of hacked content (Google Search Central, 2026). The cases below cover each of those, plus the bot traffic that usually comes first.

Check the terms

Which guide do you need? Five questions

Answer for your own site. Each answer points to the guide in this series that covers it. It sends nothing anywhere.

  1. Do you suspect something is wrong but every check says clean?

  2. Is there a plugin or admin on your WordPress site you cannot explain?

  3. Was your site cleaned and the spam came back?

  4. Are bots hitting your login, forms or ads?

  5. Are you choosing or changing your website platform?

Every case in this file is a client site we worked on in 2026, anonymized. Details and sources are in each linked guide.

01 / 06

What do the hacked sites we cleaned up have in common?

Three things. Every one ran self-hosted WordPress. Every attack was designed to stay out of the owner's view. And in three of the four, the owner had noticed nothing; the fourth knew the site had been hacked before, but not what was still hiding. That matches the wider picture: plugins carried 91% of the 11,334 new WordPress vulnerabilities found in 2025 (Patchstack, 2026), and attackers automate their search for them.

We are an SEO and web agency, not an incident response firm, and these sites came to us for search work. The hacks came with them. We are not naming the businesses. They are clients, and the lessons are about the attacks, not about them.

The case files, 2026 (First-party incident records, 2026)
SiteWhat we foundHow it hidWhat gave it away
Professional services firmA fake cache plugin running an attacker's code for about 7 monthsHid from the Plugins screen; skipped logged-in usersOur own review of the site
Real estate brokerageThe same fake plugin, same file date, for about 10 monthsThe same wayAn integrity check built after the first case
Art galleryNine pages replaced by gambling doorways, two attacker admins, a planted Search Console ownerPlain folders the server sent before WordPress ranA page three times too heavy, with a title the gallery never wrote
Plumbing companyCasino spam, a hidden link that survived a cleanup and an old hacked server that came back through the domain settingsA link styled as a typo; the old server out of sightA link-level audit; our own traffic data

Two more sites appear in the series for a different reason: a health clinic whose calculator page was hammered by bots, and a pool company whose Google Ads were flagged after our own edge challenged Google's traffic. Neither was hacked. Both taught us something about bots.

02 / 06

What was the hidden plugin that ran for months?

A fake caching plugin, with a made-up author, found on a professional services firm's site in July 2026 and on a real estate brokerage's site in October. On both, its files dated to November 29, 2025. It hid from the Plugins screen, skipped logged-in users and handed visitors code fetched live from the attacker's server.

This is the case that best answers "how could I be hacked and not know?". The owner, logged in, saw a normal site. The Plugins screen did not list the plugin. The code it served came from the attacker's server each time, so it could change what it did whenever they chose, without touching the site.

The second find matters as much as the first. After the first cleanup, an integrity check was built to compare the plugins on the server with the plugins WordPress shows. Three months later, on another site, that check flagged the same plugin. One site's incident became the next site's early warning.

Full story, the cleanup measurements and an 8-point self-check: the plugin the owner never saw.

03 / 06

How did gambling pages hide on an art gallery's website?

As plain folders that the server sent before WordPress was ever asked. Nine of the gallery's 39 sitemap pages were replaced by gambling doorways aimed at Indonesia. WordPress search, its API, a Google site: search and the Wayback Machine all said clean. A 639 KB page among 185 KB pages, and one strange day in Search Console, gave it away.

The attack ran on a schedule: two admin accounts four seconds apart, then a hidden file, then nine doorway folders in nine minutes, then a Search Console verification file one minute later to claim the site in Google's tools. A script, not a person.

The symptom in Search Console was a single day, September 3, with 112 clicks and 3,103 impressions against a normal 1.4 and 64.3, then straight back to normal. Gambling and adult searches made up 79.5% of the quarter's clicks (First-party incident records, 2026).

The seven signs that would have caught it, and how to check each: how to tell if your website is hacked.

04 / 06

What did a plumbing company's cleanups miss?

Two things a normal cleanup does not look for. A two-word link on the home page, the same color as the text and placed between commas like a typo, wrapped in 11 invisible off-screen boxes. And the old hacked server, which came back for about 16 hours and 49 minutes when the domain's settings were reset to the registrar's defaults.

The link survived because the first cleanup checked spam pages and brand names, not the links inside the pages it kept. The old server came back because moving the site had not cleaned the server it left, and the domain's nameservers were changed through the registrar account itself, with every registrar lock still on. Who made that change is still unknown.

A 10-point checklist for the steps after the obvious ones: what a hacked website cleanup misses.

05 / 06

What did the bots do once the sites were protected?

They kept coming. In five days behind our edge, the rebuilt plumbing site logged 3,412 trap hits from 1,450 addresses, including 1,588 requests for a WordPress login it no longer had (First-party edge data, 2026). Across the wider web, bots made up 53% of traffic in 2025 and bad bots 40% (Thales, 2026).

The bots wanted logins, configuration files and known plugin weaknesses. Someone checked whether the old spam pages were still up, from 18 addresses with one request each. A toolkit checked a known backdoor path from 9 hosts. None of it found anything, because the new site was static.

Two lessons came from other sites. On a health clinic's site, 108 of 142 blocked visitors used home or mobile connections, so blocking by address alone would have locked out patients. And on a pool company's site, our own edge was challenging Google's traffic until Google Ads flagged the site; the flags cleared after we fixed it.

The numbers, the caveats and our own mistake: what our edge saw in five days.

06 / 06

How do you keep a business site from becoming the next case file?

Shrink what can be attacked, and watch from outside. Two-step login on every account, including the domain. Fewer plugins and updates on. A Cloudflare proxy in front, where your platform allows one. And for most service businesses, a static site on Cloudflare, which removes the server code, plugins and site login these attacks relied on.

Platform choice sets how much of this is your job. Hosted builders patch their own servers; self-hosted WordPress hands you everything. Not every platform lets a Cloudflare edge sit in front of it: Wix does not, and Shopify's help center says it does not. The details are in our website builder security comparison.

Where the platform allows it, put an edge in front. It filtered the bots and recorded the trap hits behind these case files. RankShield, our founder's security company, runs that kind of layer on Cloudflare, which it describes as "a managed filtering layer on Cloudflare's global network that sits in front of your whole site". It is $39 a month, added on top of a RankShield plan; details are on the RankShield edge page. It is an option we offer, never a condition of working with us.

For most service businesses, our answer is a static site on Cloudflare with an edge in front. Every attack in these files needed something a static site does not have. The case for it, and its limits, are in why we build sites as static pages on Cloudflare.

Watching from outside matters as much as hardening. In every case here, the owner was looking from inside: logged in, at the dashboard, at what WordPress reported. Look at what the server sends to a stranger, read Search Console monthly and test your contact form. Our free SEO audit is a good first look.

Watch it work

Turn on what makes AI recommend you.

AI recommends the businesses it can read, trust and quote. Flip on the four signals we engineer, and watch your visibility climb and the answer rewrite itself.

THE FOUR SIGNALS WE ENGINEER

AI VISIBILITY6%
THE AI ANSWER

not recommending you

Illustrative · the four signals are the real system we build

Questions

This article, answered.

Jamie Kloncz · SEO Elite Agency, Naples

In the places owners do not look. On the sites in these case files, attackers hid a plugin from the WordPress Plugins screen, served their code only to visitors who were not logged in, planted pages as plain folders the server sent before WordPress ran, styled a link to look like a typo and kept an old copy of the site on another server. Each trick defeats a check owners trust: the dashboard, a logged-in look at the site or WordPress's own search. The defense is to look from outside, as a stranger would.

Jamie Kloncz · SEO Elite Agency, Naples

On WordPress, mostly through plugins and logins. Patchstack found 11,334 new vulnerabilities in the WordPress ecosystem in 2025, 91% of them in plugins (Patchstack, 2026), and automated tools scan for them constantly. Stolen or reused passwords are the other common way in; on one site in these files, our review judged a stolen login the most likely entry. On every site here, how the attacker first got in could not be proven; on most, the logs no longer reached back far enough. That is common, and it is why prevention matters more than forensics.

Jamie Kloncz · SEO Elite Agency, Naples

Months. The fake plugin in these case files sat on one site for about 7 months and on another for about 10 months before it was found, and neither owner had noticed anything. On the art gallery's site, the spam pages produced a single unusual day in Search Console and nothing else the owner would see. Hacks built for search spam or for running code in visitors' browsers are designed to stay quiet, because they are worth more to the attacker the longer they last.

Jamie Kloncz · SEO Elite Agency, Naples

Yes, and usually not because anyone chose them. Every site in these case files is a small or local business: a professional services firm, a real estate brokerage, an art gallery and a plumbing company. Attackers run automated tools across huge lists of sites, looking for known plugin weaknesses, exposed logins and leaked files. In five days, a small plumbing site logged trap hits from 1,450 different addresses (First-party edge data, 2026). Size does not protect a site; fewer things to attack does.

Jamie Kloncz · SEO Elite Agency, Naples

No. They are our clients, and the lessons are about how the attacks worked, not about the businesses. We describe each one by type, such as an art gallery or a plumbing company, and we leave out anything that would identify it or help an attacker, such as file names, addresses or the attackers' own domains. Every number in these case files comes from our own records of the work, and each linked guide lists its sources.

Start with the audit.

About 60 seconds, no email, and you get named findings for your own site, not a score out of a hundred.