Signs a site is hacked shown on a laptop screen
← Blog

Signs a site is hacked: 18 signals to check

Ivan Pantić

In short: signs a site is hacked today rarely look like a black page with a message. Look for a pattern of small signals in the browser, Google search, WordPress admin and hosting, then spend fifteen minutes checking without changing anything.

Most people imagine a compromised WordPress install as a black page with a skull. That still happens, but it is rare. An attacker who knocks you offline loses the most valuable thing: access. The one who leaves you alone and quietly uses the server for spam, pharmacy pages or mobile redirects can earn money for months.

That is why compromise is more often spotted in boring details than in a dramatic message: a hosting bill that jumped, mail that never reaches a client, traffic that slowly drops, a page that takes one extra second. Each signal on its own can have a harmless explanation. The problem is that owners look at them one by one and miss the pattern.

This article groups signals by where you notice them: in the browser, in Google search, in WordPress admin, on hosting, and through other people. At the end there is a fifteen-minute check you can do yourself, plus a list of things that are often mixed up with a breach.

Why a breach is rarely noticed immediately

Clean desktop next to a phone showing a different page

The average owner opens the page a few times a week, always from the same computer, always logged in, always in a browser with cached content. That is the worst condition for spotting an infection, because modern malware is written to skip you.

Malicious code on WordPress often has conditions: show only to visitors from Google, only on phones, only once per IP, and never to a logged-in administrator. Some samples run only at night or on weekends. Others show only to Googlebot, so the site looks perfect to you while search results offer content you never wrote.

Add that the average breach does not start with a guessed password but with a plugin left unpatched for eight months, and you get an infection that can sit quietly for weeks. That is why it helps to know what to look for.

Signals you see in the browser

These are signs an ordinary visitor can notice - if you look at the site the way a visitor does, not as a logged-in administrator. Many first signs a site is hacked start right here, before any warning in search.

Slow page load crowded with extra ads

1. The page loads noticeably slower than before

An infected install often runs extra code on every load: it checks where the visitor came from, calls a remote server for new instructions, writes to the database. If a page that used to open in one second now takes four, and you changed nothing, that is worth checking.

Slowness alone is not proof - it can be weak hosting, huge images or a new plugin. Sudden slowness with no change on your side is a signal.

2. Redirects that happen only sometimes

This is one of the most common reasons people call us. A client says the site sent them to a betting page, you open it and everything looks fine. You assume the visitor had a virus on the phone.

Inconsistency is the proof here, not the rebuttal. Redirect malware almost always runs conditionally and remembers the visitor, so it will not fire the second time. Two independent reports should be treated seriously. We unpacked that scenario in the article on why a site redirects to another site.

3. Ads, banners and pop-ups that are not in your theme

If ads appear and you do not run ads, someone planted them. The same applies to notification permission pop-ups, fake "your device is infected" warnings, and download buttons for a program.

4. A white screen, odd characters at the top or bottom

Badly written malware often leaves traces: a line of random letters at the top, an error with a path you do not recognize, or a blank white screen on some pages. Especially telling is a long encoded line in the page source with eval( or base64_decode(.

5. Content you do not see but others do

Open the site from a phone that is not on your Wi-Fi, in a private window, without logging in. Surprisingly often the page looks different from the outside.

Signals you see in Google search

Google sees your site more often and more thoroughly than you do. That is why a large share of infections show up first in search results. Foreign language or pages that should not exist are solid signs a site is hacked, even when the homepage looks fine to you.

Search results with foreign titles and a warning icon

6. A site description in a language you never used

Search site:yourdomain.com and look at what appears. Titles and snippets in Japanese, Chinese, Russian or English drug names are classic SEO spam. The attacker is using your domain authority to rank their pages.

7. Indexed pages that do not exist on your site

The same site: search also finds URLs like /wp-content/uploads/2019/cheap-meds/. If the indexed page count far exceeds what you actually published, generated content is on the server.

8. A Google warning that the site may be hacked

When Google detects compromised content, it adds a warning under the title. In worse cases visitors see a red interstitial. You then lose almost all traffic until the issue is fixed and a review is requested.

9. A sudden unexplained drop in organic traffic

If clicks fell 40 or 60 percent in a few days and you changed nothing, check the security issues tab in Search Console. That is the fastest confirmation or denial.

Signals inside WordPress admin

Here you look for traces left so the attacker can keep access. They are the easiest to check and the hardest to explain another way. An unknown administrator or PHP in uploads are among the clearest signs a site is hacked.

User list with an unknown administrator highlighted

10. An administrator account you did not create

Open Users, All Users and filter by administrator. Any account you do not recognize, especially with a random name or an unknown email domain, is a serious sign. Check the registration date against when problems started.

There is a quieter variant: the attacker does not create a new account, but quietly promotes an existing subscriber. Review the whole list, not only the newest rows.

11. A plugin or theme you did not install

Especially if the plugin is inactive, with no description, no author and no project link. Attackers leave a "legitimate" plugin as a spare entrance because owners rarely delete inactive plugins.

12. Files changed when nobody was working

In File Manager or FTP, sort by modification date. If index.php, wp-config.php, .htaccess or theme files changed at 3 a.m. two weeks ago and you were not working then, that is one of the most reliable signals.

Look closely at wp-content/uploads. It should hold images and documents. Any .php file there is almost certainly a problem. How to find and remove those files is covered in how to find a WordPress backdoor.

13. You cannot log in or you get kicked out

If your password suddenly fails and you did not change it, someone else may have. If the dashboard throws you out or loads with errors, code may be blocking the real owner. Combined with other signs, it carries weight.

14. Updates that "do not stick" or files that return

If you update WordPress or a plugin and later see the old version, or a deleted file comes back after a few hours, there is code restoring itself. That is why an infection returns after cleanup.

Signals at hosting and server level

Hosting sees what WordPress does not show. The control panel is often where an infection is confirmed fastest.

Hosting resource graph with a sudden spike

15. A sudden jump in resource use

If CPU, process count or traffic jumped without a matching visit spike, someone is using the server for something else - usually outbound mail, attacks on other sites, or mining.

16. Outbound mail you did not send

Check outbound mail stats in cPanel. Thousands of messages from an unused mailbox are unambiguous. Legitimate mail then starts landing in spam because the domain hits blacklists. We cover that chain in why a website sends spam emails.

17. A notice or suspension from the host

This is the most direct signal. If you received an abuse notice or the account is already suspended, treat it as a confirmed incident. The first-hour order is in what to do when hosting suspends the account for abuse.

18. Random file and folder names in the site root

wp-conflg.php, class-wp-cache.php in the wrong place, radio.php, PHP inside wp-includes/fonts/. Attackers name files so they look like WordPress. Anything you do not recognize in the root deserves a look.

Signals that arrive from other people

Client sending a screenshot of a blocked page

Clients and colleagues are often the first to notice, and they mention it in half a sentence. If a buyer says antivirus blocked you, if someone got mail "from you" that you did not send, if a supplier says your offer link went somewhere odd - write it down. One report can be chance. Two in the same week usually are not.

Take a client screenshot especially seriously. It is evidence from outside your device, network and login.

What is not a sign of a breach, but often gets mixed up

Panic is as expensive as neglect, so it helps to know what should not scare you.

Certificate warning that is not an infection

An expired SSL certificate. The browser warning looks dramatic, but it is usually a missed renewal and takes minutes to fix.

Login attempts in the logs. Every public WordPress site sees automated login tries, often hundreds a day. That means someone is trying, not that they succeeded. A successful login is the worrying event.

"Error establishing a database connection". In most cases this is a server or limit issue, not an attack.

A white screen after updating a plugin. A classic version conflict. If it started right after you clicked Update, the cause is almost certainly harmless.

A traffic drop after a Google algorithm update. It happens seasonally and hits whole niches. Check whether the drop started on a known update day before you assume an infection.

Unwanted comments. Comment spam is annoying and normal on any site with open comments. It does not mean someone is inside.

How to check your suspicion in about fifteen minutes

If two or more signals line up, this order gives a clear answer with no risk to the site. These are checks, not edits. The goal is to know in fifteen minutes whether the signs a site is hacked are strong enough for cleanup, or whether another explanation fits better.

Short checklist on a desk next to a timer

Step 1: Look at the site as a stranger

Open a private window, log out, turn off Wi-Fi on the phone and use mobile data. Walk the homepage, one category and one article. Note everything that is off.

Step 2: Check what Google sees

Search site:yourdomain.com and page through the results. Then open Search Console and look at Security and manual actions. If a problem is listed, diagnosis is done.

Step 3: Count administrators

Users, All Users, filter Administrator. Compare the list with people who should have full access. Do not delete anything yet, only record it.

Step 4: Check file modification dates

In File Manager sort the root by date, descending. Then do the same in wp-content/themes and wp-content/uploads. Look for PHP where it does not belong and changes in periods when you were not working.

Step 5: Check outbound mail and resources

In the hosting panel look at mail sending stats and the load graph for the last thirty days. A spike that does not match your traffic is strong evidence.

Step 6: Skim access logs

Look for repeating requests to files you do not recognize, especially POST requests to a PHP file in uploads. That is the signature of an active backdoor.

If after these six steps you have no finding, the chance of infection is low and another explanation is worth hunting. If you have at least two clear findings, treat the site as compromised: those are enough signs a site is hacked to start in order, not at random.

Suspicion confirmed: what to do next and in what order

Order matters, because the wrong first move destroys evidence or causes new damage. First make a full copy of files and the database as found, even if infected. Then change passwords in order: hosting, FTP and SSH, database, WordPress administrators, mail accounts. Enable two-factor where it exists.

Only then does cleanup start. The step order is in my site is hacked, what to do first, and a full cleanup example is the hacked WooCommerce store.

What not to do

Do not delete files at random before a copy. Do not restore an old backup without checking - if the infection is older than the backup, you restore it too. Do not install five security plugins hoping one will help. And do not tell the host "everything is fixed" before it really is.

How fast you should react

In most infections the damage is not instant, it accumulates. The first days are mostly just presence of code. After a week spam pages start getting indexed. After two to three weeks the domain hits mail blacklists. Hosting usually reacts in that window.

The difference between reacting in the first 24 hours and reacting after a month is not mainly the cleanup price, it is how long ranking and reputation take to recover. What drives the amount of work is in the cost of cleaning a hacked site.

How to reduce the chance this happens again

Most breaches we see come through outdated plugins and themes, especially abandoned ones or copies from pirate sources. Regular updates close most of the problem, and removing what you do not use closes much of the rest - every inactive plugin is still code on the server.

Strong unique passwords, two-factor for administrators, a small number of people with full access, an off-server backup you have actually restored once, and basic monitoring for file changes or downtime all help. None of that is expensive. The expensive scenario is the one with none of it.

The first step you can take right now

If you recognized two or more signals on your site, start with the free public-content check on hakovansajt.com - it takes under a minute and shows whether known malware, redirects or injected links are visible in public code.

Signs a site is hacked before a free public scan

If it is urgent, if hosting already suspended the account, or if every hour of downtime costs money, get in touch on 065 402 5000 (Viber and WhatsApp) or helpdesk@hakovansajt.com. We work every day from 8 to 21.

Questions

Frequent questions

Short answers with this article. If your question is not here, write to us via contact.

How can I be sure the site is hacked, not just slow?

Slowness alone is not proof. Confirmation comes from three places: an unknown administrator account, a PHP file where it does not belong (most often in wp-content/uploads), or a security issue in Google Search Console. Any one of those three is enough to treat the site as compromised.

The site looks normal when I open it, but clients report redirects. Are they right?

Most likely yes. Redirect malware regularly skips logged-in administrators and remembers visitors, so it does not show the second time. Check from a private window, on mobile data, and ideally from a device that has never visited the site.

Can antivirus on my computer detect that the site is hacked?

Not reliably. Antivirus protects your device and reacts only if the site tries to deliver a file or script it already knows. Most site infections - spam pages, hidden links, backdoors, outbound mail - never trigger a visitor's antivirus.

Is it enough to delete the suspicious files I found?

Usually not. Attackers leave more than one entrance, often several backdoors in different places, plus scheduled tasks and database changes. If you delete only what is visible, the infection usually returns within a few days.

Can restoring a backup solve the problem?

Yes, but only if you reliably know the backup is older than the breach and you immediately close the vulnerability that was used. Otherwise you restore the infection and lose content created in the meantime. Treat backup as help during cleanup, not a replacement for it.

How long until a Google warning is removed?

After the site is truly cleaned and a review request is submitted, the warning usually disappears within hours to a few days. Rankings take longer and depend on how long the site was infected and how many spam pages were indexed.

Does this only happen to large sites?

No. The vast majority of attacks are fully automated: scripts scan the internet for known vulnerabilities, regardless of whose site it is or how much traffic it has. A ten-page company site is just as useful for sending spam as a large portal.