Response Time Profiler avatar

Response Time Profiler

Pricing

$2.99/month + usage

Go to Apify Store
Response Time Profiler

Response Time Profiler

Response time profiler measures TTFB, DNS lookup, and total load time for any URL, so you can find slow pages before they cost you rankings.

Pricing

$2.99/month + usage

Rating

0.0

(0)

Developer

ZeroBreak

ZeroBreak

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Share

Response Time Profiler: Measure TTFB, DNS, and Page Speed for SEO

Response time profiling is one of the faster ways to find pages hurting your search rankings. This actor measures DNS lookup time, time to first byte (TTFB), and total response time for any URL. It runs multiple samples to average out network noise, then grades each page from A to F based on standard performance thresholds.

Point it at a list of pages and it tells you which ones are slow, how slow, and how consistent they are across requests. Useful before a launch, after a deploy, or when a client wants to know why their site scores badly on PageSpeed.

Use cases

  • SEO auditing: find slow pages dragging down your Core Web Vitals scores before they affect rankings
  • Pre-launch checks: confirm response times are within range before going live
  • Post-deploy monitoring: catch regressions after infrastructure or code changes
  • Redirect auditing: spot pages with too many hops adding latency before the content loads
  • Hosting comparison: benchmark the same URLs across servers or CDN configurations
  • Agency reporting: generate response-time data for client audits without extra tooling

What data does this actor collect?

Each profiled URL produces one output record:

{
"url": "https://apify.com",
"finalUrl": "https://apify.com/",
"statusCode": 200,
"dnsLookupMs": 12.4,
"avgTtfbMs": 98.3,
"minTotalMs": 210.5,
"maxTotalMs": 245.8,
"avgTotalMs": 228.1,
"seoGrade": "B",
"redirectCount": 1,
"contentLengthBytes": 54320,
"samplesCount": 3,
"testedAt": "2025-01-15T10:30:00+00:00"
}
FieldTypeDescription
urlstringOriginal URL provided as input
finalUrlstringFinal URL after following all redirects
statusCodeintegerHTTP status code of the response
dnsLookupMsnumberDNS resolution time in milliseconds
avgTtfbMsnumberAverage time to first byte across all samples
minTotalMsnumberFastest total response time recorded
maxTotalMsnumberSlowest total response time recorded
avgTotalMsnumberAverage total response time across all samples
seoGradestringA-F grade (A under 200ms, B 200-500ms, C 500-1000ms, D 1000-2000ms, F over 2000ms)
redirectCountintegerNumber of redirects followed before the final URL
contentLengthBytesintegerTotal response body size in bytes
samplesCountintegerNumber of successful samples taken
testedAtstringISO 8601 timestamp of when the test ran
errorstringError message if all samples failed for this URL

Input

ParameterTypeDefaultDescription
urlstringSingle URL to profile
urlsarrayList of URLs to profile in bulk (one per line)
samplesinteger3Requests per URL, averaged for the result. Min 1, max 10
maxUrlsinteger100Maximum URLs to process per run (cap: 1000)
timeoutSecsinteger300Overall actor timeout in seconds
requestTimeoutSecsinteger30Per-request timeout in seconds
proxyConfigurationobjectDatacenter (Anywhere)Proxy type and location for requests. Supports Datacenter, Residential, Special, and custom proxies. Optional.

Example input

{
"urls": [
"https://apify.com",
"https://apify.com/store",
"https://apify.com/pricing"
],
"samples": 3,
"maxUrls": 100,
"requestTimeoutSecs": 30,
"proxyConfiguration": { "useApifyProxy": true }
}

How it works

  1. Takes URLs from url and urls, deduplicates them, and caps the list at maxUrls
  2. Measures DNS lookup time for each hostname using a direct socket call
  3. Makes samples HTTP GET requests per URL using streaming to capture time to first byte and total load time separately
  4. Computes min, max, and average timing across all successful samples
  5. Assigns an A-F SEO performance grade based on average total response time
  6. Pushes one result record per URL to the Apify dataset

FAQ

What does the SEO grade mean?

Grades map to standard web performance thresholds: A is under 200ms, B is 200-500ms, C is 500-1000ms, D is 1-2 seconds, F is over 2 seconds. Pages scoring C or below are worth investigating for server-side bottlenecks.

How many samples should I run?

3 samples (the default) is enough for most checks. Use 5-10 if you need tighter averages or are testing across variable network conditions.

Can this actor check JavaScript-rendered pages?

It measures raw HTTP response time, not the full browser render time. Single-page apps will show a fast initial response because the actor does not wait for client-side JavaScript to execute.

How many URLs can it process per run?

Up to 1,000 per run (controlled by maxUrls). For larger batches, run multiple actor instances or schedule them.

Why does DNS time vary between runs?

DNS is measured from the machine running the actor, which has its own resolver and cache state. Treat DNS times as relative indicators rather than exact user-facing values.

What happens if a URL fails?

The actor records the error and moves on to the next URL. Failed URLs appear in the dataset with an error field instead of timing data.

Integrations

Connect Response Time Profiler with other apps and services using Apify integrations. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use webhooks to get notified when results are ready.

SEO teams often pipe results into Google Sheets for trend tracking, or run the actor on a schedule to catch performance regressions before clients notice.