Zombie Keywords
Lists every enabled keyword with zero impressions over the lookback window, grouped by campaign — the dead weight that clutters audits and sometimes hides real problems like sub-first-page bids or negative conflicts.
by Russ Savage (concept), chiliad (rewrite)·freeadwordsscripts.com
Overview
Zombie Keywords pulls every enabled keyword that recorded zero impressions during the lookback window (90 days by default — a fair trial) and groups the result per campaign with sample keywords. Zombies are rarely dangerous by themselves, but hundreds of them slow every audit, distort keyword counts, and often point at a real cause worth fixing: bids below first page, negligible search volume, or keywords silently blocked by your own negatives.
Setup
- 1Open your Google Ads account and go to Tools → Bulk Actions → Scripts.
- 2Click the + button to create a new script and paste the code below.
- 3Adjust DATE_RANGE if 90 days is too strict or too lenient for your volume.
- 4Set EMAIL_ADDRESS to receive the report; leave blank for logs only.
- 5Preview once to verify, then schedule monthly.
Configuration Variables
| Variable | Default |
|---|---|
DATE_RANGE | LAST_90_DAYS |
SAMPLES_PER_CAMPAIGN | 10 |
MAX_KEYWORDS | 100000 |
EMAIL_ADDRESS | (empty) |
Expected Output
=== Zombie Keywords (0 impressions during LAST_90_DAYS) === Total zombies: 214 Generic — Broad: 148 zombie keyword(s) - "artisanal shoe repair kit" (EXACT) in Repair Kits - "bespoke sneaker restoration" (PHRASE) in Restoration ... and 138 more Brand — Exact: 66 zombie keyword(s) - "brandname outlet coupon 2019" (EXACT) in Coupons ... and 56 more Email sent to you@example.com
Notes
Report-only: nothing is paused automatically — zombie lists deserve a human look because a zero-impression keyword can also mean a seasonal term or a brand-new addition. If entire ad groups are zombies, check bids and run a negative keyword conflict check before bulk-pausing.