# Firecrawl 3k Plan Optimization

**Last Updated:** 2026-02-28

Guide for maximizing research quality and content output when you have 3,000+ Firecrawl credits per month (Hobby plan). Default config is tuned for this budget.

## Default Configuration (3k Plan)

`v2/config/firecrawl-config.php` defaults:

| Option | Default | Purpose |
|--------|---------|---------|
| `proactive_enabled` | `true` | Always use Firecrawl for top N competitors (skips cURL) |
| `firecrawl_proactive_top_n` | `3` | Top 3 competitors get Firecrawl first (Personio, etc.) |
| `remediate_top_n` | `7` | Remediate up to 7 sparse competitors per post |
| `max_age_ms` | `172800000` (2 days) | Cache scrapes; speeds up repeat runs |
| `credit_log_enabled` | `true` | Log usage to `v2/data/firecrawl-credits-log.json` |
| `use_firecrawl_search_default` | `false` | Set `true` to add Firecrawl Search to pipeline by default |

## Credit Budget (Typical)

| Source | Credits/Post | Notes |
|--------|--------------|-------|
| Proactive (top 3) | 3 | Always; JS-heavy sites get full content |
| Remediation (top 7) | 0–4 | Only when cURL returns sparse |
| Firecrawl Search (optional) | 2–5 | When `use_firecrawl_search_default` or `--use-firecrawl-search` |
| **Total per post** | **5–12** | Typical range |
| **10 posts/month** | **50–120** | Leaves 2,880+ for batch remediation |

## Monthly Batch Remediation

Use surplus credits to fix sparse competitor data across all content:

```bash
# 1. Audit: list all sparse competitors (blog, tools, templates)
php v2/scripts/dev-helpers/audit-firecrawl-sparse-competitors.php --output-urls=sparse.json

# 2. (Optional) Limit batch size
php v2/scripts/dev-helpers/firecrawl-batch-remediate-sparse.php --input=sparse.json --max-urls=200

# 3. Full batch remediation
php v2/scripts/dev-helpers/firecrawl-batch-remediate-sparse.php --input=sparse.json
```

**Suggested cadence:** Run audit monthly; batch remediate when sparse count is high or before major content pushes.

## Enabling Firecrawl Search by Default

For pillar posts or when SISTRIX gaps are common, enable Firecrawl Search in the pipeline:

**Option A – Config (all new posts):**

In `v2/config/firecrawl-api-key.php`:

```php
'use_firecrawl_search_default' => true,
```

**Option B – Per run:**

```bash
php v2/scripts/blog/run-new-post-pipeline.php --post=slug --category=lexikon --use-firecrawl-search
```

## Monitoring Usage

1. **Credit log:** `v2/data/firecrawl-credits-log.json` (when `credit_log_enabled` is true)
2. **Summary script:** `php v2/scripts/dev-helpers/firecrawl-credit-summary.php`
3. **Dashboard:** [Firecrawl usage](https://firecrawl.dev/app/usage)

## Reducing Usage (Credits Tight)

In `v2/config/firecrawl-api-key.php`:

```php
'proactive_enabled' => false,
'firecrawl_proactive_top_n' => 0,
'remediate_top_n' => 5,
'use_firecrawl_search_default' => false,
```

Or use pipeline flags: `--no-firecrawl-remediate`, `--no-firecrawl-search`.

## References

- [FIRECRAWL_INTEGRATION.md](FIRECRAWL_INTEGRATION.md) – Full integration guide
- [MCP_INTEGRATION.md](../../development/MCP_INTEGRATION.md) – MCP usage
- [mcp-usage.mdc](../../../.cursor/rules/mcp-usage.mdc) – When to use Firecrawl MCP
