Overview
Adapt monitors performance for every crawled page, capturing detailed timing information from DNS lookup through content transfer. This helps identify slow pages and optimise your site’s speed.Captured Metrics
High-Level Timing
Every task tracks:- Response Time: Total time from request to response (milliseconds)
- Status Code: HTTP response code (200, 404, 500, etc.)
- Content Length: Response body size in bytes
- Cache Status: CDN cache hit/miss status
Detailed Performance Breakdown
Using Go’shttptrace package, Adapt captures granular timing:
Performance Metrics Object
Performance Analysis
Identifying Bottlenecks
Slow DNS (>100ms)
Cause: DNS resolver issues or geo-distance Solution: Use faster DNS provider or reduce DNS lookupsSlow Connection (>200ms)
Cause: Geographic distance or network latency Solution: Use CDN with edge locations closer to usersSlow TTFB (>800ms)
Cause: Server-side processing or database queries Solution: Optimise backend code, add caching, scale serversLarge Content Transfer (>1000ms)
Cause: Large page size or slow bandwidth Solution: Compress assets, optimise images, enable HTTP/2Cache Performance Comparison
Measure cache impact with before/after metrics:Accessing Performance Data
Via API
Retrieve task performance metrics:Via Dashboard
Job Statistics:- Average response time across all tasks
- Slowest pages highlighted
- Performance distribution histogram
- Click any task to view full timing breakdown
- Compare cache MISS vs HIT performance
- View historical trends
Job-Level Performance Stats
Aggregate metrics calculated for each job:Calculating Average Performance
Slow Page Detection
Automatic Flagging
Pages exceeding thresholds are flagged:Performance-Based Prioritisation
Slow pages are re-crawled with higher priority:Performance Optimisation Features
HTTP/2 Support
Connection Pooling
Reuse connections for faster subsequent requests:- Max Idle Connections: 25 per host
- Max Connections: 50 per host
- Idle Timeout: 120 seconds
Compression Support
Monitoring Best Practices
Baseline Metrics
Establish performance baselines before optimisation to measure improvements
Regular Checks
Schedule recurring crawls to track performance trends over time
Compare Cache States
Analyse MISS vs HIT metrics to validate caching strategy
Alert on Regression
Set up notifications when average response time degrades
Performance Budgets
Define acceptable performance thresholds:| Metric | Target | Maximum |
|---|---|---|
| DNS Lookup | <50ms | 100ms |
| Connection | <100ms | 200ms |
| TTFB (cached) | <100ms | 300ms |
| TTFB (uncached) | <800ms | 2000ms |
| Total Response | <1000ms | 3000ms |
Real-Time Performance Tracking
Live Job Progress
WebSocket updates show performance as jobs run:Task Completion Events
Track individual task performance in real-time:Performance Analysis Tips
Identify Patterns
Geographic Issues: All pages slow → Check CDN coverage Specific Pages: Some pages slow → Profile those pages Time-Based: Slow at specific times → Check server load Cache-Related: MISS slow, HIT fast → Optimise cache warmingPrioritise Fixes
- High-Traffic Pages: Fix homepage and popular pages first
- Worst Offenders: Target pages >3 seconds
- Quick Wins: Enable caching for uncached pages
- Infrastructure: Upgrade if all pages are consistently slow
Related Features
- Cache Warming - Improve performance with CDN caching
- Broken Link Detection - Ensure pages load correctly
- Scheduled Crawls - Monitor performance over time