Features
Every module, explained in detail.
CDN Cache Warming
CacheWarmer uses Puppeteer to launch a headless Chromium browser and visit every URL in your sitemap. This triggers CDN edge nodes and reverse proxies to cache the fully rendered page.
Unlike simple HTTP requests, Headless Chrome executes JavaScript, loads all resources, and generates the same response a real browser would. This means your CDN caches the complete, rendered page — including dynamically loaded content.
Key Capabilities
- Configurable concurrency (process multiple URLs in parallel)
- Adjustable delay between requests to respect server limits
- Custom User-Agent string for cache-specific behavior
- Configurable viewport size for responsive cache warming
- Wait-until options (load, DOMContentLoaded, networkidle)
# .env configuration
CACHE_WARM_ENABLED=true
CACHE_WARM_CONCURRENCY=5
CACHE_WARM_DELAY_MS=1000
CACHE_WARM_USER_AGENT=CacheWarmer/1.0
CACHE_WARM_VIEWPORT_WIDTH=1920
CACHE_WARM_VIEWPORT_HEIGHT=1080
CACHE_WARM_WAIT_UNTIL=networkidle0Facebook Sharing Debugger
When you share a link on Facebook, it uses cached Open Graph metadata. If you've updated your page title, description, or image, Facebook may still show the old version.
CacheWarmer calls the Facebook Graph API scrape endpoint for each URL, forcing Facebook to re-fetch your Open Graph tags. This ensures that when anyone shares your link, the preview is always current.
POST https://graph.facebook.com/
?id=https://example.com/page
&scrape=true
&access_token=YOUR_TOKEN
Response:
{
"url": "https://example.com/page",
"title": "Your Page Title",
"description": "Updated description",
"image": [{ "url": "..." }]
}LinkedIn Post Inspector
LinkedIn caches link preview data aggressively. CacheWarmer automates what the LinkedIn Post Inspector does manually — forcing LinkedIn to re-crawl and update its cached metadata for your URLs.
This ensures that when your content is shared on LinkedIn, the preview card always shows the latest title, description, and image.
# .env configuration
LINKEDIN_ENABLED=true
LINKEDIN_SESSION_COOKIE=your_session_cookie
LINKEDIN_DELAY_MS=3000
LINKEDIN_MAX_RETRIES=3Twitter/X Card Cache
Twitter/X caches card previews when a URL is first shared. CacheWarmer pre-warms this cache by triggering Twitter's card validator for each URL in your sitemap.
This means every link shared on Twitter/X will display the correct card with your latest title, description, and image — right from the first share.
Premium# .env configuration
TWITTER_ENABLED=true
TWITTER_DELAY_MS=2000
TWITTER_MAX_RETRIES=3Pinterest Rich Pin Validator
Pinterest Rich Pins pull metadata from your pages to display enhanced previews. When you update your content, Pinterest may continue showing outdated information.
CacheWarmer refreshes your Rich Pin Open Graph metadata for every URL in your sitemap, ensuring Pinterest always displays current titles, descriptions, and images.
Premium New in v1.1.0# .env configuration
PINTEREST_ENABLED=true
PINTEREST_DELAY_MS=2000
PINTEREST_MAX_RETRIES=3IndexNow Protocol
IndexNow is an open protocol that enables websites to instantly notify participating search engines about content changes. Supported by Bing, Yandex, Seznam, Naver, and others.
CacheWarmer submits your URLs directly to the IndexNow API, ensuring search engines discover your new and updated content immediately instead of waiting for the next crawl cycle.
POST https://api.indexnow.org/indexnow
Content-Type: application/json
{
"host": "example.com",
"key": "your-indexnow-key",
"urlList": [
"https://example.com/page-1",
"https://example.com/page-2",
"https://example.com/page-3"
]
}Google Search Console API
Submit URLs directly to Google for inspection and indexing via the Google Search Console API. This is the fastest way to get Google to discover and index your new or updated content.
CacheWarmer manages Google's daily quota (200 URL inspections per day) automatically, prioritizing new and recently updated URLs.
# .env configuration
GOOGLE_ENABLED=true
GOOGLE_SERVICE_ACCOUNT_JSON=./config/google-sa.json
GOOGLE_DAILY_QUOTA=200
GOOGLE_DELAY_MS=1500Bing Webmaster Tools API
Direct URL submission to Bing via their Webmaster API, complementing IndexNow for comprehensive Bing coverage. This ensures Bing discovers your content through multiple channels.
CacheWarmer handles authentication, rate limiting, and error handling automatically. Supports batch submission of up to 500 URLs per request.
Premium# .env configuration
BING_ENABLED=true
BING_API_KEY=your_bing_api_key
BING_DELAY_MS=1000
BING_MAX_RETRIES=3Cloudflare Cache Purge + Warm
For sites behind Cloudflare, CacheWarmer integrates directly with the Cloudflare Zone API to purge stale cache entries and immediately re-warm them with fresh content.
This two-step process ensures your Cloudflare edge caches are never stale: first purge the old content, then immediately warm with the new version. Auto-detection of Cloudflare zones makes setup straightforward.
# .env configuration
CLOUDFLARE_ENABLED=true
CLOUDFLARE_API_TOKEN=your_cf_api_token
CLOUDFLARE_ZONE_ID=your_zone_id
CLOUDFLARE_PURGE_BEFORE_WARM=trueImperva Cache Purge + Warm
For sites protected by Imperva (formerly Incapsula), CacheWarmer integrates with the Imperva API to purge stale cache entries and re-warm them with fresh content.
Works the same way as Cloudflare integration: purge first, then immediately warm. Supports both site-level and resource-level cache purging for granular control.
# .env configuration
IMPERVA_ENABLED=true
IMPERVA_API_ID=your_imperva_api_id
IMPERVA_API_KEY=your_imperva_api_key
IMPERVA_SITE_ID=your_site_id
IMPERVA_PURGE_BEFORE_WARM=trueAkamai Cache Purge + Warm
For sites behind Akamai CDN, CacheWarmer integrates with the Akamai Fast Purge API (CCU v3) to invalidate stale cache entries and immediately re-warm them.
Supports both URL-level and CP code-based purging. Fast Purge invalidation typically completes within seconds, followed by immediate re-warming with fresh content.
# .env configuration
AKAMAI_ENABLED=true
AKAMAI_CLIENT_SECRET=your_client_secret
AKAMAI_HOST=your_host.purge.akamaiapis.net
AKAMAI_ACCESS_TOKEN=your_access_token
AKAMAI_CLIENT_TOKEN=your_client_token
AKAMAI_PURGE_BEFORE_WARM=trueSmart Warming Premium
Warm smarter, not harder. Only process URLs that have actually changed.
Diff-Detection
Compares sitemap lastmod timestamps between runs. Only URLs with updated content are re-warmed, saving time and API quotas.
Priority-Based
Process high-priority URLs first based on sitemap <priority> values. Your most important pages are always warmed first.
Conditional (Enterprise)
Skip URLs that already have a fresh CDN cache by checking Age and max-age response headers before warming.
Analytics & Reporting Premium
Understand your cache performance with detailed insights.
Cache Hit/Miss Analysis
Parse CDN response headers (X-Cache, CF-Cache-Status) to visualize cache effectiveness across your site.
Performance Trending
Track response times per URL across warming runs. Spot performance regressions before they impact your users.
Success Rate Dashboard
Per-target success and failure statistics with historical trending. See which warming targets perform best.
Quota Usage Tracker
Visual progress bars for Google and Bing daily quotas. Automatic alerts at 80% and 100% usage thresholds.
CSV/JSON Export
Export warming results, failed URLs, and skipped URLs in CSV or JSON format for further analysis or reporting.
Automated Reports (Enterprise)
Generate PDF or HTML reports per warming job automatically. Perfect for client reporting and audit trails.
Monitoring & Alerting Premium
Catch issues before they affect your visitors.
Broken Link Detection
Flag URLs returning 404 or 5xx status codes during warming. Export broken links as a report for your team to fix.
SSL Expiry Warnings
Get notified 30 days before your SSL certificates expire. Prevent unexpected downtime and SEO penalties.
Performance Alerts (Enterprise)
Automatic alerts when response times increase by more than 50%. Catch performance regressions early.
Built-in Rate Limiting & Throttling
Every module respects service-specific rate limits with configurable delays and intelligent retry logic.
| Service | Default Rate | Configurable | Retry Strategy |
|---|---|---|---|
| CDN Warming | 5 concurrent, 1s delay | Yes | Exponential backoff |
| 1 req/s | Yes | Exponential backoff, max 3 | |
| 1 req/3s | Yes | Exponential backoff, max 3 | |
| Twitter/X | 1 req/2s | Yes | Exponential backoff, max 3 |
| 1 req/2s | Yes | Exponential backoff, max 3 | |
| IndexNow | Batch of 10,000/req | Yes | Retry on 429/5xx |
| 200/day quota | Yes | Quota-aware scheduling | |
| Bing | 1 req/s | Yes | Exponential backoff, max 3 |
| Cloudflare | 30 URLs/batch | Yes | Rate-limit aware |
| Imperva | 100 URLs/batch | Yes | Rate-limit aware |
| Akamai | 50 URLs/batch | Yes | Rate-limit aware |
Ready to Automate Your Cache Warming?
Get started in minutes with Docker or install from source.