Bulk URL Checker — Status, Redirects & SEO Tags avatar

Bulk URL Checker — Status, Redirects & SEO Tags

Pricing

from $0.70 / 1,000 results

Go to Apify Store
Bulk URL Checker — Status, Redirects & SEO Tags

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

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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:

FieldDescription
urlThe URL you submitted
statusCodeHTTP status code (200, 301, 404, 500…)
okWhether it's healthy (2xx/3xx)
finalUrlURL after following redirects
redirectedWhether it redirected
responseTimeMsResponse time in milliseconds
isHttpsWhether the final URL is HTTPS
contentTypeContent type (text/html, application/pdf…)
serverServer header
titlePage title
metaDescriptionMeta description
h1First H1
canonicalCanonical URL
ogTitle / ogImageOpen Graph title & image
metaRobotsRobots meta content
isNoindexWhether the page is set to noindex
wordCountBody word count
errorError message, if the check failed
scrapedAtTimestamp

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

FieldTypeDefaultDescription
urlsarrayRequired. The URLs to check. Paste a list, or upload / link a text/CSV file of URLs.
checkSeobooleantrueAlso extract SEO tags. Turn off for a pure status/redirect check (faster).
maxConcurrencyinteger50URLs checked in parallel (up to 500).
timeoutSecsinteger30Give 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.

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

  1. Click Try for free.
  2. Paste or upload your URLs.
  3. Click Start.
  4. 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 maxConcurrency for speed on big runs (mind the target servers).
  • Filter on ok / statusCode to isolate broken URLs; on redirected for migration checks; on isNoindex for 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.