SEO ZOMBIE SLAYER
Pricing
from $0.50 / 1,000 results
SEO ZOMBIE SLAYER
SEO Zombie Slayer crawls websites to hunt dead links, SEO issues, performance problems, and security risks. Includes Lighthouse audits, competitor comparison, and a fun game mode with XP, levels, and boss battles to turn SEO audits into action
Pricing
from $0.50 / 1,000 results
Rating
5.0
(1)
Developer

ANIRBAN ROY
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
๐ง SEO Zombie Slayer
Transform Your SEO Audit Into An Epic Battle Against Website Issues
Discover and eliminate SEO zombies lurking in your website with this gamified, comprehensive SEO audit tool. Get actionable insights, competitive intelligence, and interactive reports that make fixing SEO issues actually fun.
๐ฏ What Does This Actor Do?
SEO Zombie Slayer is a comprehensive website auditing tool that:
โ
Crawls your website and analyzes every page for SEO issues
โ
Detects 15+ types of SEO "zombies" (broken links, missing meta tags, accessibility issues, etc.)
โ
Performs competitive analysis - Compare your site against competitors
โ
Runs Lighthouse audits - Get Google PageSpeed scores for mobile and desktop
โ
Checks security headers - Audit your site's security posture
โ
Validates SSL certificates - Get expiry warnings before it's too late
โ
Measures Core Web Vitals - LCP, CLS, FID, INP, and more
โ
Generates interactive HTML reports - Beautiful, shareable reports with fix recommendations
โ
Gamifies the experience - Level up, earn XP, unlock achievements!
๐ Quick Start
Option 1: Run on Apify Console
- Go to the Apify Console
- Create a new task from this actor
- Add your website URL
- Click Start and get your report in minutes!
Option 2: API Integration
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const input = {websiteUrl: "https://example.com",maxPages: 50,maxDepth: 3,analysisMode: "full_audit",enableLighthouse: true,enableSecurityAudit: true,enableSSLCheck: true,enableGameMode: true};const run = await client.actor("YOUR_ACTOR_ID").call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Option 3: CLI
apify call YOUR_ACTOR_ID \--input '{"websiteUrl": "https://example.com"}'
๐ Input Configuration
Basic Settings
| Field | Type | Required | Description | Default |
|---|---|---|---|---|
websiteUrl | String | โ | The main website URL to analyze | - |
startUrls | Array | โ | Additional URLs to analyze (for competitive analysis) | [] |
maxPages | Number | โ | Maximum pages to crawl per site | 50 |
maxDepth | Number | โ | Maximum crawl depth | 3 |
analysisMode | String | โ | Analysis type: full_audit, competitive, link_resurrector | full_audit |
Advanced Settings
| Field | Type | Description | Default |
|---|---|---|---|
difficultyLevel | String | Affects XP multiplier: easy, normal, hard, nightmare | normal |
enableGameMode | Boolean | Enable gamification features | true |
enableLighthouse | Boolean | Run Google Lighthouse audits | true |
enableCoreWebVitals | Boolean | Measure Core Web Vitals | true |
enableStructuredData | Boolean | Check Schema.org markup | true |
enableSecurityAudit | Boolean | Audit security headers | true |
enableSSLCheck | Boolean | Validate SSL certificates | true |
checkExternalLinks | Boolean | Check external links for 404s | true |
includeWayback | Boolean | Search Wayback Machine for broken links | true |
generateHtmlReport | Boolean | Generate interactive HTML report | true |
webhookUrl | String | Webhook URL for completion notification | null |
googlePSIApiKey | String | Google PageSpeed Insights API key (highly recommended) | null |
๐ง Zombie Types Detected
The actor detects 15 different types of SEO zombies:
๐ด Critical Issues (Severity: 70-100)
| Zombie | Description | Impact |
|---|---|---|
| ๐ Canonical Chain Zombie | Canonical URL points elsewhere | HIGH - Dilutes page authority |
| ๐ Dead Page Zombie | Page returns 404 but is in sitemap | CRITICAL - Wastes crawl budget |
| ๐ HTTPS Mixed Content Zombie | HTTPS page loads HTTP resources | HIGH - Security warnings |
| ๐ท๏ธ Noindex Trap Zombie | Important page has noindex | CRITICAL - Page won't rank |
๐ก High Priority (Severity: 60-69)
| Zombie | Description | Impact |
|---|---|---|
| ๐ Meta Missing Zombie | Missing title or meta description | HIGH - Poor CTR |
| ๐ Broken Internal Link Zombie | Internal link returns 404 | HIGH - Bad for crawlability |
| โก JavaScript-Dependent Zombie | Content only via JavaScript | HIGH - Googlebot issues |
๐ข Medium/Low Priority (Severity: 0-59)
| Zombie | Description | Impact |
|---|---|---|
| ๐ผ๏ธ Broken Image Zombie | 3+ broken images on page | MEDIUM - User experience |
| โฟ Accessibility Zombie | Missing alt text on images | MEDIUM - Legal + SEO risk |
| ๐ Schema Zombie | No structured data markup | MEDIUM - No rich snippets |
| ๐ Slow Load Zombie | Page load time > 5 seconds | MEDIUM - Ranking factor |
| ๐ป Orphan Page Zombie | No internal links to page | MEDIUM - Discoverability |
| ๐ Redirect Loop Zombie | Redirect chain detected | MEDIUM - Wastes crawl budget |
| ๐ฑ Mobile Unfriendly Zombie | Not mobile responsive | MEDIUM - Mobile rankings |
| ๐ด Duplicate Content Zombie | Content duplicated elsewhere | LOW - Dilutes authority |
๐ฆ Output Data Structure
The actor produces a comprehensive dataset with multiple record types:
1. Site Results (dataType: "site_result")
{"dataType": "site_result","site": "https://example.com","analysis_mode": "full_audit","difficulty": "normal","zombie_score": 37,"final_score": 37,"rating": "๐ก Needs Attention","stats": {"pages_crawled": 45,"total_zombies": 12,"links_checked": 287,"critical_zombies": 2,"high_priority_zombies": 3,"medium_priority_zombies": 5,"low_priority_zombies": 2},"zombies_by_type": {"canonical_chain": 1,"meta_missing_zombie": 3,"broken_internal_link": 4,"accessibility_zombie": 2,"schema_zombie": 2},"category_breakdown": {"technical": { "score": 95, "issues": [], "count": 0 },"content": { "score": 88, "issues": [...], "count": 2 },"performance": { "score": 92, "issues": [...], "count": 1 },"accessibility": { "score": 85, "issues": [...], "count": 2 },"seo": { "score": 78, "issues": [...], "count": 3 },"security": { "score": 100, "issues": [], "count": 0 },"mobile": { "score": 100, "issues": [], "count": 0 },"links": { "score": 82, "issues": [...], "count": 4 }},"fix_recommendations": [{"zombie_type": "canonical_chain","zombie_name": "๐ Canonical Chain Zombie","category": "seo","affected_pages": 1,"priority": "CRITICAL","severity": 80,"fix": "Point canonical to self or consolidate pages","impact": "HIGH - Dilutes page authority","affected_urls": ["https://example.com/page"]}],"lighthouse": {"mobile": {"scores": {"performance": 85,"accessibility": 92,"bestPractices": 88,"seo": 95}},"desktop": {"scores": {"performance": 92,"accessibility": 95,"bestPractices": 90,"seo": 97}}},"coreWebVitals": {"metrics": {"FCP": 1200,"LCP": 2400,"CLS": 0.05,"FID": 100,"INP": 150,"TTFB": 300},"grades": {"FCP": { "grade": "A", "status": "good" },"LCP": { "grade": "A", "status": "good" }},"overall": "A"},"securityAudit": {"score": 85,"grade": "B","vulnerabilities": []},"sslCertificate": {"valid": true,"grade": "A+","daysUntilExpiry": 217},"game_stats": {"final_level": 5,"total_xp": 2500,"max_combo": 15,"rank": "๐ฆธ Master Slayer"},"crawled_at": "2026-01-28T12:00:00.000Z"}
2. Individual Zombies (dataType: "zombie")
{"dataType": "zombie","zombie_id": "zombie_abc123","zombie_type": "canonical_chain","zombie_name": "๐ Canonical Chain Zombie","affected_url": "https://example.com/page","parent_site": "https://example.com","severity": 80,"category": "seo","description": "Canonical URL points elsewhere","fix": "Point canonical to self or consolidate pages","impact": "HIGH - Dilutes page authority","details": "Canonical points to: https://example.com/other-page","priority": "CRITICAL","detected_at": "2026-01-28T12:00:00.000Z"}
3. Performance Data
Additional records for Lighthouse, Core Web Vitals, Security, and SSL checks are included with dataType: "lighthouse", "core_web_vitals", "security_audit", and "ssl_check".
4. Summary (dataType: "summary")
{"dataType": "summary","sites_analyzed": 2,"sites_successful": 2,"sites_failed": 0,"total_zombies": 24,"average_score": 42,"total_pages_crawled": 98,"critical_issues_found": 5,"success_rate": 100,"total_execution_time_seconds": 245}
๐ฎ Game Mode Features
When enableGameMode: true, the actor gamifies your SEO audit:
๐๏ธ Level System
- Level 1-3: ๐ฑ Novice Slayer
- Level 4-6: โ๏ธ Apprentice Hunter
- Level 7-9: ๐ฅ Veteran Exterminator
- Level 10-15: ๐ฆธ Master Slayer
- Level 16+: ๐ Legendary Destroyer
๐ฐ XP System
- Kill zombies to earn XP
- Higher severity = more XP
- Difficulty multipliers: Easy (0.5x), Normal (1x), Hard (1.5x), Nightmare (2x)
- Combo multiplier for rapid kills
๐ Achievements
- ๐ฉธ First Blood - Kill your first zombie
- โก Speed Demon - Complete scan in <60s
- ๐ Zombie Apocalypse - Find 50+ zombies
- ๐ฅ Combo Master - Achieve 10x combo
- ๐ Domain Dominator - Crawl 100+ pages
- ๐ฏ Perfectionist - Site with 0 zombies
- ๐ Time Traveler - Rescue 5+ links from Wayback Machine
- ๐ Boss Slayer - Defeat a boss zombie
๐ Boss Battles
When you find 10+ zombies of the same type, a Boss Zombie appears with 5x health!
๐ Interactive HTML Report
The actor generates a beautiful, interactive HTML report stored in the Key-Value Store:
Features
โจ Competitive Rankings - See how your site stacks up against competitors
โจ Score Explanations - Understand WHY your score is what it is
โจ Category Breakdown - 8 categories with click-to-expand details
โจ Top Issues List - See the 3 most critical problems at a glance
โจ Performance Analysis - Lighthouse, Core Web Vitals, Security, SSL
โจ Fix Roadmap - Prioritized list of issues to fix
โจ Whack-A-Zombie Mini-Game - Yes, there's a game in your report!
Accessing the Report
// Get the report URLconst run = await client.actor("YOUR_ACTOR_ID").call(input);const reportUrl = `https://api.apify.com/v2/key-value-stores/${run.defaultKeyValueStoreId}/records/REPORT`;console.log(`View report: ${reportUrl}`);
๐ง Common Use Cases
1. Pre-Launch Website Audit
{"websiteUrl": "https://staging.example.com","maxPages": 100,"maxDepth": 5,"analysisMode": "full_audit","enableLighthouse": true,"enableSecurityAudit": true,"difficultyLevel": "hard"}
Perfect for: Finding all issues before going live
2. Competitive SEO Analysis
{"websiteUrl": "https://yoursite.com","startUrls": [{ "url": "https://competitor1.com" },{ "url": "https://competitor2.com" },{ "url": "https://competitor3.com" }],"maxPages": 50,"analysisMode": "competitive"}
Perfect for: Understanding your competitive position
3. Quick Health Check
{"websiteUrl": "https://example.com","maxPages": 10,"maxDepth": 1,"analysisMode": "full_audit","enableLighthouse": true}
Perfect for: Quick daily/weekly monitoring
4. Broken Link Finder
{"websiteUrl": "https://example.com","maxPages": 100,"analysisMode": "link_resurrector","checkExternalLinks": true,"includeWayback": true}
Perfect for: Finding and fixing broken links with Wayback alternatives
5. Security-Focused Audit
{"websiteUrl": "https://example.com","maxPages": 50,"enableSecurityAudit": true,"enableSSLCheck": true,"enableLighthouse": false,"enableCoreWebVitals": false}
Perfect for: Security compliance checks
๐ก Pro Tips
๐ Get a FREE Google PageSpeed API Key
Without an API key, you're limited to 10 Lighthouse requests per day. With a free API key, you get 25,000 requests per day!
Get your key here: https://developers.google.com/speed/docs/insights/v5/get-started
Then add it to your input:
{"websiteUrl": "https://example.com","googlePSIApiKey": "YOUR_API_KEY_HERE"}
โก Optimize Crawl Speed
For faster results:
- Reduce
maxPagesfor quick checks - Set
maxDepth: 1for shallow crawls - Disable features you don't need (e.g.,
enableLighthouse: false)
๐ฏ Focus on What Matters
Different modes for different needs:
- full_audit - Comprehensive analysis (recommended)
- competitive - Focus on competitive insights
- link_resurrector - Focus on broken links
๐ Webhook Integration
Get notified when your audit completes:
{"websiteUrl": "https://example.com","webhookUrl": "https://your-webhook-endpoint.com/seo-audit"}
Webhook payload:
{"status": "completed","sites_successful": 1,"sites_failed": 0,"total_zombies": 12,"average_score": 37,"critical_issues": 2,"execution_time_seconds": 145,"timestamp": "2026-01-28T12:00:00.000Z"}
๐ Troubleshooting
โ "Lighthouse scores showing 0"
Cause: Google PageSpeed API rate limit hit (10 requests/day without API key)
Solution: Get a free API key (25,000 requests/day) from Google PageSpeed Insights
โ "Actor times out"
Cause: Too many pages to crawl
Solutions:
- Reduce
maxPages(try 50 or fewer) - Reduce
maxDepth(try 2 or 3) - Disable intensive features temporarily
โ "No zombies found but I know there are issues"
Cause: Detection sensitivity or crawl depth
Solutions:
- Increase
maxDepthto crawl deeper - Try
difficultyLevel: "hard"or"nightmare"for more sensitive detection - Check if pages are actually being crawled (check
pages_crawledin stats)
โ "SSL check failing"
Cause: Certificate issues or network restrictions
Solution: Set enableSSLCheck: false to skip SSL validation if not needed
๐ Performance Considerations
Crawl Speed
- Fast mode (10 pages, depth 1): ~30-60 seconds
- Standard mode (50 pages, depth 3): ~3-5 minutes
- Comprehensive mode (100+ pages, depth 5): ~10-15 minutes
Memory Usage
- Light: < 100 MB (few pages, no Lighthouse)
- Medium: 100-300 MB (50 pages with Lighthouse)
- Heavy: 300-500 MB (100+ pages, full analysis)
API Rate Limits
Without Google API Key:
- Lighthouse: 10 requests/day
With Google API Key:
- Lighthouse: 25,000 requests/day (FREE!)
๐ค Integration Examples
Zapier Integration
- Use webhook to trigger Zapier when audit completes
- Parse the JSON payload
- Send results to Slack, email, or Google Sheets
CI/CD Pipeline
# .github/workflows/seo-audit.ymlname: Weekly SEO Auditon:schedule:- cron: '0 9 * * 1' # Every Monday at 9 AMjobs:audit:runs-on: ubuntu-lateststeps:- name: Run SEO Zombie Slayeruses: apify/apify-action@v1with:actor: YOUR_ACTOR_IDinput: |{"websiteUrl": "https://example.com","webhookUrl": "${{ secrets.WEBHOOK_URL }}"}
Monitoring Dashboard
Use the dataset API to build a custom dashboard:
// Fetch historical dataconst runs = await client.actor("YOUR_ACTOR_ID").runs().list();const scoreHistory = runs.items.map(run => ({date: run.finishedAt,score: run.output.zombie_score}));// Plot score over timeplotChart(scoreHistory);
๐ Advanced Configuration
Custom Zombie Detection Sensitivity
The difficultyLevel parameter affects how aggressively zombies are detected:
// Easy mode - Only critical issues{ "difficultyLevel": "easy" } // 0.75x sensitivity// Normal mode - Balanced detection{ "difficultyLevel": "normal" } // 1x sensitivity (default)// Hard mode - More sensitive{ "difficultyLevel": "hard" } // 1.25x sensitivity// Nightmare mode - Catches everything{ "difficultyLevel": "nightmare" } // 1.5x sensitivity
Analysis Modes Explained
full_audit (Default)
- Crawls all pages within limits
- Checks all zombie types
- Runs all enabled audits
- Best for comprehensive analysis
competitive
- Compares multiple sites
- Generates competitive rankings
- Highlights advantages/disadvantages
- Best for market analysis
link_resurrector
- Focuses on broken links
- Searches Wayback Machine for alternatives
- Provides replacement suggestions
- Best for link maintenance
๐ฏ Feature Roadmap
Coming Soon
- Historical tracking (compare audits over time)
- Custom zombie definitions
- Email report delivery
- PDF export
- Slack integration
- Mobile app companion
- Team collaboration features
- White-label reports
๐ FAQ
Q: How many sites can I analyze at once?
A: Up to 5 sites per run. For competitive analysis, use startUrls to add competitors.
Q: Does this affect my website performance?
A: The crawler is polite and respects robots.txt. It won't overload your server. Default concurrency is 2 requests/second.
Q: Can I schedule automatic audits?
A: Yes! Use Apify Schedules or integrate with your CI/CD pipeline.
Q: Is my data private?
A: Yes. Data is stored in your private Apify dataset and automatically deleted after 7 days (configurable).
Q: Can I export the data?
A: Yes! Export as JSON, CSV, or Excel from the Dataset tab.
Q: What about JavaScript-heavy sites?
A: The actor uses Playwright with full JavaScript rendering. SPAs, React, Vue, Angular - all supported!
Q: Can I customize the HTML report?
A: The report is generated automatically. For custom reports, export the JSON data and build your own visualization.
Q: Does this work with password-protected sites?
A: Not directly. For staging sites, consider IP whitelisting or using a public URL temporarily.
๐ Support
Need Help?
- ๐ Documentation: Check this README first
- ๐ฌ Apify Discord: Join the Apify community
- ๐ง Email Support: Use Apify support for technical issues
- ๐ Bug Reports: Create an issue in the Apify Console
๐ License
This actor is licensed under the Apache License 2.0.
๐ Credits
Built with:
Special thanks to the Apify team and community!
๐ Show Your Support
If this actor helps you find and fix SEO issues, give it a โญ star in the Apify Store!