SEO ZOMBIE SLAYER avatar
SEO ZOMBIE SLAYER
Under maintenance

Pricing

from $0.50 / 1,000 results

Go to Apify Store
SEO ZOMBIE SLAYER

SEO ZOMBIE SLAYER

Under maintenance

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

ANIRBAN ROY

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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.

Apify Actor Made with โค๏ธ License: Apache 2.0


๐ŸŽฏ 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

  1. Go to the Apify Console
  2. Create a new task from this actor
  3. Add your website URL
  4. 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

FieldTypeRequiredDescriptionDefault
websiteUrlStringโœ…The main website URL to analyze-
startUrlsArrayโŒAdditional URLs to analyze (for competitive analysis)[]
maxPagesNumberโŒMaximum pages to crawl per site50
maxDepthNumberโŒMaximum crawl depth3
analysisModeStringโŒAnalysis type: full_audit, competitive, link_resurrectorfull_audit

Advanced Settings

FieldTypeDescriptionDefault
difficultyLevelStringAffects XP multiplier: easy, normal, hard, nightmarenormal
enableGameModeBooleanEnable gamification featurestrue
enableLighthouseBooleanRun Google Lighthouse auditstrue
enableCoreWebVitalsBooleanMeasure Core Web Vitalstrue
enableStructuredDataBooleanCheck Schema.org markuptrue
enableSecurityAuditBooleanAudit security headerstrue
enableSSLCheckBooleanValidate SSL certificatestrue
checkExternalLinksBooleanCheck external links for 404strue
includeWaybackBooleanSearch Wayback Machine for broken linkstrue
generateHtmlReportBooleanGenerate interactive HTML reporttrue
webhookUrlStringWebhook URL for completion notificationnull
googlePSIApiKeyStringGoogle PageSpeed Insights API key (highly recommended)null

๐ŸงŸ Zombie Types Detected

The actor detects 15 different types of SEO zombies:

๐Ÿ”ด Critical Issues (Severity: 70-100)

ZombieDescriptionImpact
๐Ÿ”— Canonical Chain ZombieCanonical URL points elsewhereHIGH - Dilutes page authority
๐Ÿ’€ Dead Page ZombiePage returns 404 but is in sitemapCRITICAL - Wastes crawl budget
๐Ÿ”’ HTTPS Mixed Content ZombieHTTPS page loads HTTP resourcesHIGH - Security warnings
๐Ÿ•ท๏ธ Noindex Trap ZombieImportant page has noindexCRITICAL - Page won't rank

๐ŸŸก High Priority (Severity: 60-69)

ZombieDescriptionImpact
๐Ÿ“ Meta Missing ZombieMissing title or meta descriptionHIGH - Poor CTR
๐Ÿ’” Broken Internal Link ZombieInternal link returns 404HIGH - Bad for crawlability
โšก JavaScript-Dependent ZombieContent only via JavaScriptHIGH - Googlebot issues

๐ŸŸข Medium/Low Priority (Severity: 0-59)

ZombieDescriptionImpact
๐Ÿ–ผ๏ธ Broken Image Zombie3+ broken images on pageMEDIUM - User experience
โ™ฟ Accessibility ZombieMissing alt text on imagesMEDIUM - Legal + SEO risk
๐Ÿ“Š Schema ZombieNo structured data markupMEDIUM - No rich snippets
๐ŸŒ Slow Load ZombiePage load time > 5 secondsMEDIUM - Ranking factor
๐Ÿ‘ป Orphan Page ZombieNo internal links to pageMEDIUM - Discoverability
๐Ÿ”„ Redirect Loop ZombieRedirect chain detectedMEDIUM - Wastes crawl budget
๐Ÿ“ฑ Mobile Unfriendly ZombieNot mobile responsiveMEDIUM - Mobile rankings
๐Ÿด Duplicate Content ZombieContent duplicated elsewhereLOW - 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 URL
const 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


{
"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 maxPages for quick checks
  • Set maxDepth: 1 for 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 maxDepth to crawl deeper
  • Try difficultyLevel: "hard" or "nightmare" for more sensitive detection
  • Check if pages are actually being crawled (check pages_crawled in 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

  1. Use webhook to trigger Zapier when audit completes
  2. Parse the JSON payload
  3. Send results to Slack, email, or Google Sheets

CI/CD Pipeline

# .github/workflows/seo-audit.yml
name: Weekly SEO Audit
on:
schedule:
- cron: '0 9 * * 1' # Every Monday at 9 AM
jobs:
audit:
runs-on: ubuntu-latest
steps:
- name: Run SEO Zombie Slayer
uses: apify/apify-action@v1
with:
actor: YOUR_ACTOR_ID
input: |
{
"websiteUrl": "https://example.com",
"webhookUrl": "${{ secrets.WEBHOOK_URL }}"
}

Monitoring Dashboard

Use the dataset API to build a custom dashboard:

// Fetch historical data
const 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 time
plotChart(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!