21.05.2026

Google

Compromised Site and Malicious Software: A Complete Guide to Detection and Survival


Compromised Site and Malicious Software: A Complete Guide to Detection and Survival

When Google flags a site as "dangerous," it almost always means one thing: the system detected patterns consistent with phishing behavior, fraudulent funnels, or malware distribution. The system doesn't try to understand what you're actually running. It identifies the risk and pulls the plug.

Since 2025, detection is no longer handled by a simple "algorithm" — it's Gemini models analyzing hundreds of billions of signals simultaneously: account age, behavioral patterns, campaign structure, landing page content. The system evaluates intent, not just the fact of a violation. And if the intent looks suspicious — the account gets banned, even if the landing page is technically clean.

In 2025, Google blocked 8.3 billion ads and suspended 24.9 million accounts. The numbers grew, and so did accuracy — incorrect suspensions dropped by 80% compared to the previous year. This means getting a ban lifted through an appeal is becoming increasingly difficult. If you got hit — chances are, the system is right.

That sounds harsh, but there's an upside. These bans can be lifted if you understand which signals actually trigger the filters. Some triggers are technical, some behavioral, and most are automated. We'll break down each one so you understand what's happening under the hood and how to minimize the risk.

🔍 Compromised Site — how the system decides a site is "compromised"

What Google actually considers a compromised site

In the policy documentation it all sounds neat: the site was hacked, substituted, or infected. In reality, Compromised Site is an automated filter that reacts to any anomalies in code, structure, and infrastructure. The system doesn't try to understand the owner's intentions. It compares the site against millions of malicious page patterns and raises a flag when there are too many signals.

To break it down properly, let's look at the five main layers Google analyzes.

📡 Core technical triggers for Compromised Site

Source code — the system checks HTML, CSS, and JavaScript structure for obfuscated code, encrypted functions, inline scripts, and redirects.

Page behavior — tracking how the page interacts with the browser (popups, DOM manipulation, redirects, attempts to access system resources).

Domain reputation — checking all domains on the same IP, WHOIS data, domain age, usage history.

Content elements — site structure, presence of text, navigation menus, social media links, privacy policy.

Infrastructure — open ports, misconfigured server, missing SSL certificates, shared hosting with suspicious domains.

📍 Real reasons for Compromised Site bans in gray-hat setups

🔧 Cloudflare and auto-injected scripts

In 2023, Cloudflare started adding its own Beacon scripts to proxied domains. Google reads these injections as an unknown tracker and classifies the page as potentially malicious.

What to disable:

  • Email Obfuscation
  • Web Analytics / Beacon

Where:
Cloudflare Dashboard → Analytics & Logs → Web Analytics → Manage site → Disable → Update

Important note: after disabling, always manually purge the Cloudflare cache — otherwise the script keeps injecting for several hours even after the option is turned off. This is a confirmed bug, not a feature.


🏚 Domain with a "dirty" history

Google stores the reputation of every domain. Old phishing or infected zones almost always trigger Compromised Site even with fully clean content.

What to check:

  • VirusTotal (history)
  • Archive.org (content)
  • Safe Browsing API
  • Sucuri
  • URLVoid

Quick tip: domains that have already been removed from a blacklist through an appeal sometimes perform more stably than "clean" newly registered ones.


🧩 Reusing the same white page across multiple domains

Google compares DOM structure and JS patterns. The same template across 10 domains looks like mass generation.

What to change:

  • 40% of the content
  • Block structure
  • CSS classes
  • JS function set
  • SVGs, colors, micro-elements

Simple logic: fewer duplicates — lower risk.


🎨 Duplicate creatives in ad campaigns

The system is trained on visual analysis. If creatives are identical, Google links the campaigns into a single network.

What matters:

  • Text style
  • Color patterns
  • Banner grid layout
  • Landing page structure

Change at least the details: the button, background, copy.


🌐 Cheap and toxic TLDs

Historically, .xyz, .top, .site, .tk, and other cheap zones have been used in malware. Google reacts harshly.

TLD risk levels:

  • .com / .org / .net — low
  • Geo-zones — low
  • .io / .co — medium
  • .xyz / .site / .top — high
  • Free domains — critical

You can work with them — just prepare the domain more carefully.


🔌 Proxying and open trackers

Google analyzes the network environment: IP, DNS, SSL, where traffic flows. If a single IP serves old domains, trackers, and your current project — the risk is high.

Technical rules:

  • Separate IPs for separate projects
  • Clean SSL
  • No "redirects to nowhere"
  • No unnecessary services on the same node

🛠 Server misconfiguration errors

Google Transparency Report detects technical vulnerabilities.

What to close off:

  • Unnecessary open ports
  • FTP
  • Admin panels
  • System directory indexing
  • Missing SSL

Basic setup:

  • SSH: key-based auth only
  • UFW: ports 80/443 open
  • SFTP instead of FTP
  • SSL mandatory
  • Hide admin access

🕷 Malicious scripts, miners, and suspicious behavior

Google analyzes JS and network requests. Any unusual outbound calls are treated as malicious.

Checks to run:

  • Safe Browsing
  • VirusTotal for JS
  • Lighthouse
  • DevTools Network
  • Sucuri Malware Scan

If the code is clean, the ban is almost always tied to infrastructure or the domain itself — not the landing page.

✅ Checklist to avoid Compromised Site

Everything listed here genuinely reduces risk because it closes the main Safe Browsing and Policy Risk signals.


🧭 Before launching a domain

Domain check

  • VirusTotal — history check
  • WHOIS — registration info, reputable registrar
  • Archive.org — old content, traces of previous use
  • Google Safe Browsing — current safety status

Infrastructure and hosting

  • Dedicated IP
  • Valid SSL certificate — Let's Encrypt is perfectly fine; cryptographically it's equivalent to a paid certificate. The only difference is OV/EV legal entity validation, which doesn't matter for ad landing pages. The key thing is to set up auto-renewal via certbot so the certificate doesn't expire at the worst possible moment.
  • .com, .net, .org, or regional TLD domains
  • Hosting on stable providers (Hetzner, Linode, DigitalOcean, Vultr)

A note on Hetzner: some German Hetzner IPs have documented blocks from Google Cloud Platform — due to neighboring hosting accounts that fell under sanctions. It's not a widespread issue, but it's worth running a specific IP through VirusTotal and IPVoid before deploying. If there are flags — request an IP change from the provider.


Code preparation

  • Remove any unnecessary scripts
  • Run JS files through VirusTotal
  • Clean up any obfuscated code
  • Remove popup elements and automatic redirects

Content and page structure

  • Unique text of at least 500 words
  • Proper navigation menu with working sections
  • Social media links (can be placeholder, but must open)
  • Contact form or phone number
  • Privacy Policy + Terms
  • Proper mobile responsiveness

Basic SEO foundation

  • sitemap.xml
  • robots.txt
  • meta description + og tags
  • Internal linking

Final scan

  • Google Mobile-Friendly Test
  • Lighthouse in DevTools (aim for a score above 50)
  • Sucuri Site Check
  • URLVoid — reputation check across multiple engines

🔥 Malicious Software — technical analysis and how to avoid it

What Google means by "Malicious Software"

By Google's definition, it's software that can harm a user's device or data.

In practice, Malicious Software is a more targeted ban that reacts to specific categories of malicious code.

What typically gets flagged:

  • Spyware that collects data without consent
  • Trojans that covertly transmit information
  • Keylogger scripts that intercept input
  • Dialer modules that can initiate calls or SMS
  • Malvertising elements that inject uncontrolled ads
  • Dangerous downloadable files such as .exe, .msi, .bat
  • Hidden redirects to infected resources

Google detects these signals through Safe Browsing and page behavior analysis. Even a single suspicious file or script can trigger a flag.


🔍 Malicious Software detection mechanism

Google examines a site on multiple levels. The logic is straightforward: if something resembles malicious code, the filter fires immediately.


🧪 Static file analysis

Here the system simply reads the code as-is.

  • Scripts are submitted to VirusTotal
  • Checked across dozens of engines simultaneously
  • If multiple engines flag something — a flag is raised

Banana Traff

Banana Traff

Banana Traff — since 2019, we have been engaged in farming and building infrastructure for working with Google Ads. We have a strong understanding of moderation, verification, and scaling processes, and we create solutions that allow ads to run reliably. In our blog, we share our own experience, practical tips, and useful insights for those who work with Google Ads every day.