Policy Background
In May 2023, Google Ads updated its "malware or unwanted software" policy, splitting it into three separate policies:
- Malware policy — targets software designed to harm or exploit systems
- Compromised sites policy — targets sites that have been hacked or infected
- Unwanted software policy — targets deceptive or harmful software downloads
Reference: Google Ads Policy — Abuse of the ad network
What is a "Compromised Site"?
A compromised site is one where a third party has injected malicious code without the site owner's knowledge. Common examples include:
- Injected JavaScript that redirects visitors to phishing pages
- Hidden iframes loading malware downloads
- SEO spam injections (pharmaceutical, gambling links inserted into pages)
- Backdoor scripts that give attackers ongoing access
Google detects these issues through its Safe Browsing system and will disapprove any ads pointing to compromised URLs.
How to Diagnose the Issue
- Check Google Search Console: Go to Security & Manual Actions → Security Issues. If your site is flagged, Google will show the type of compromise detected.
- Scan with Google Safe Browsing: Visit Google Safe Browsing Transparency Report and enter your URL.
- Use Sucuri SiteCheck: sitecheck.sucuri.net provides a free scan that identifies known malware and blacklisting status.
- Check ad disapproval reason in Google Ads: In your Google Ads account, hover over the disapproved ad's status to see the specific policy violation.
Step-by-Step Fix
Step 1: Isolate and Identify the Malicious Code
- Put your site into maintenance mode if possible
- Check recently modified files (sort by date in your file manager or use SSH:
find . -mtime -7 -name "*.php") - Look for suspicious patterns:
eval(base64_decode,str_rot13,gzinflate, unexpected<iframe>tags, or<script>tags pointing to unknown domains
Step 2: Remove the Malicious Code
- Delete injected files and code blocks
- Restore from a known-good backup if the infection is widespread
- Update all CMS, plugins, and themes to their latest versions
- Change all passwords (admin, FTP, database, hosting control panel)
Step 3: Patch the Underlying Vulnerability
- If using WordPress: Update all plugins and themes, remove unused ones, install a security plugin (Wordfence, Sucuri)
- If using Shopify: Review installed apps, remove any suspicious ones, check theme code for injections
- If custom-built: Audit input validation, SQL injection vulnerabilities, and file upload handlers
Step 4: Request a Review
- In Google Search Console → Security Issues, click "Request Review"
- Explain what was compromised, how you fixed it, and what steps you've taken to prevent recurrence
- Submit the review request — Google typically processes it within 72 hours
Once Search Console clears the flag, your Google Ads disapprovals should resolve automatically. If they don't, contact Google Ads support directly.
Pro Tip: Always set up Google Search Console email alerts for security issues. Early detection means fewer days of ads being disapproved.
Prevention Best Practices
- Keep all software (CMS, plugins, themes) updated to the latest versions
- Use strong, unique passwords and enable two-factor authentication
- Install a Web Application Firewall (WAF) like Cloudflare or Sucuri
- Regularly back up your site to a separate location
- Monitor your site with Google Search Console and Sucuri
- Limit file upload capabilities and use SFTP instead of FTP
Conclusion
Compromised site disapprovals can be stressful, but they follow a predictable pattern: diagnose → clean → patch → request review. The key is speed — the faster you identify and remove the malicious code, the sooner your ads resume serving. Invest in prevention to avoid repeat incidents.