Bulk URL Checker — Status, Redirects & SEO Tags
Pricing
from $0.70 / 1,000 results
Bulk URL Checker — Status, Redirects & SEO Tags
Check thousands of URLs at once: HTTP status code, redirects, final URL, response time, content type and on-page SEO tags (title, meta description, H1, canonical, Open Graph, noindex). Fast, cheap bulk link auditing for SEO, QA and migrations.
Pricing
from $0.70 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Bulk URL Checker — Status, Redirects, Response Time & SEO Tags
Check thousands — or millions — of URLs at once. Paste a list (or upload a file) and get, for every URL: HTTP status code, redirects, final URL, response time, HTTPS, content type, plus the on-page SEO tags (title, meta description, H1, canonical, Open Graph, robots/noindex, word count).
Fast, cheap, and built for scale — ideal for SEO audits, broken-link checks, redirect audits, site migrations and uptime/health monitoring.
Why this Actor?
Checking one URL is easy. Checking your whole site, your whole backlink list, or a million URLs is not — you need concurrency, retries, redirect handling and clean structured output. This Actor does exactly that: point it at a big list of URLs and get one tidy row per URL, ready for a spreadsheet or a pipeline.
- SEO audits — pull titles, meta descriptions, H1s, canonicals and noindex flags across every page.
- Broken-link / dead-link checks — find 404s, 5xx errors and timeouts at scale.
- Redirect audits — see what redirects where, and to which final URL (great for migrations).
- Uptime & health checks — status code and response time for a list of endpoints.
- List enrichment — enrich a list of domains/URLs with status and metadata before further work.
Because it runs on plain HTTP (no browser), it's fast and inexpensive, so large lists stay cheap.
What you get
One record per URL:
| Field | Description |
|---|---|
url | The URL you submitted |
statusCode | HTTP status code (200, 301, 404, 500…) |
ok | Whether it's healthy (2xx/3xx) |
finalUrl | URL after following redirects |
redirected | Whether it redirected |
responseTimeMs | Response time in milliseconds |
isHttps | Whether the final URL is HTTPS |
contentType | Content type (text/html, application/pdf…) |
server | Server header |
title | Page title |
metaDescription | Meta description |
h1 | First H1 |
canonical | Canonical URL |
ogTitle / ogImage | Open Graph title & image |
metaRobots | Robots meta content |
isNoindex | Whether the page is set to noindex |
wordCount | Body word count |
error | Error message, if the check failed |
scrapedAt | Timestamp |
Example output
{"url": "https://example.com","statusCode": "200","ok": "true","finalUrl": "https://example.com/","redirected": "false","responseTimeMs": "312","isHttps": "true","contentType": "text/html","title": "Example Domain","metaDescription": "","h1": "Example Domain","canonical": "","isNoindex": "false","wordCount": "28","scrapedAt": "2026-07-08T15:00:00.000Z"}
A broken URL comes back with ok: "false" and either a status code (404, 500) or an error (timeout, DNS failure).
Input
| Field | Type | Default | Description |
|---|---|---|---|
urls | array | — | Required. The URLs to check. Paste a list, or upload / link a text/CSV file of URLs. |
checkSeo | boolean | true | Also extract SEO tags. Turn off for a pure status/redirect check (faster). |
maxConcurrency | integer | 50 | URLs checked in parallel (up to 500). |
timeoutSecs | integer | 30 | Give up on a URL after this many seconds. |
Status-only check (fastest)
{"urls": [{ "url": "https://example.com" }, { "url": "https://example.com/old-page" }],"checkSeo": false,"maxConcurrency": 200}
Full SEO audit
{"urls": [{ "url": "https://mysite.com" }, { "url": "https://mysite.com/blog" }],"checkSeo": true}
You can also give a remote file of URLs (one per line, or a CSV) via the input's file/link option — perfect for very large lists.
Use cases in detail
1. SEO audit at scale
Run your whole sitemap through it and export titles, meta descriptions, H1s, canonicals and noindex flags. Instantly spot missing/duplicate titles, thin content (low wordCount), or pages accidentally set to noindex.
2. Broken-link & error monitoring
Feed a list of URLs (your links, your backlinks, your product pages) and filter by ok: "false" to find every 404, 5xx and timeout.
3. Redirect audit for migrations
Before/after a site migration, check that old URLs redirect to the right finalUrl with the right status — catch redirect chains and loops.
4. Uptime & response-time checks
Schedule the Actor over a list of endpoints and track statusCode + responseTimeMs over time.
5. Pre-processing a URL list
Have a messy list of domains? Run it through to normalize, resolve redirects and drop the dead ones before scraping or outreach.
How to use it
- Click Try for free.
- Paste or upload your URLs.
- Click Start.
- Export results as JSON, CSV, Excel, or via the Apify API.
Runs scale with your list — hundreds of URLs finish in seconds, millions run cheaply on plain HTTP.
Calling from the API
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{ "urls": [{"url":"https://example.com"}], "checkSeo": true }'
Then fetch the dataset:
$curl "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs/last/dataset/items?token=YOUR_APIFY_TOKEN&format=csv"
Works with webhooks, Zapier, Make and n8n.
Frequently asked questions
How many URLs can it handle? From a handful to millions — it auto-scales concurrency and streams results to the dataset.
Does it follow redirects?
Yes — finalUrl is the destination after redirects, and redirected tells you if it moved.
Does it render JavaScript? No — it uses fast HTTP fetching, so it reads the server-rendered HTML (title, meta, etc.). This keeps large runs cheap. JS-only content won't appear.
Can I do a status-only check without SEO?
Yes — set checkSeo: false for a faster, lighter run.
What about broken or unreachable URLs?
They're included with ok: "false" and a status code or error, so nothing is silently dropped.
Can I upload a big file of URLs? Yes — the URL input accepts a pasted list or a linked/uploaded text/CSV file.
Tips
- Turn off SEO for pure link-checking — much faster on huge lists.
- Raise
maxConcurrencyfor speed on big runs (mind the target servers). - Filter on
ok/statusCodeto isolate broken URLs; onredirectedfor migration checks; onisNoindexfor SEO issues. - Enable a proxy for very large runs or to avoid rate limits from a single IP.
Notes
This Actor performs standard HTTP requests to the URLs you provide and reads publicly returned headers and HTML. Use it on URLs you have the right to check, and be considerate with concurrency toward target servers.
Support
Want SSL certificate details, hreflang, structured-data checks, or another field? Open an issue from the Actor's page.