SEO Audit Crawler – Broken Links, Meta Tags, Redirects avatar

SEO Audit Crawler – Broken Links, Meta Tags, Redirects

Pricing

from $8.00 / 1,000 page auditeds

Go to Apify Store
SEO Audit Crawler – Broken Links, Meta Tags, Redirects

SEO Audit Crawler – Broken Links, Meta Tags, Redirects

Technical SEO site audit and broken link checker. Finds broken internal and external links with source pages, redirect chains, title/meta issues, H1, canonical, hreflang, noindex, missing alt, duplicates, thin content and orphan sitemap URLs, plus a 0-100 site score.

Pricing

from $8.00 / 1,000 page auditeds

Rating

0.0

(0)

Developer

Cemal Atakli

Cemal Atakli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

Give it your website. It crawls the site and runs a full technical SEO audit with a broken link check in one run. You get one row per page with every issue found, one row per external link checked, and a site summary with a 0–100 SEO score and the top 10 fixes.

  • Broken link checker: finds broken internal and external links (404, 410, 5xx, DNS and timeout errors) and lists the pages that link to them, so you know exactly where to fix them.
  • Redirect checker: records every hop of each redirect chain and flags chains longer than one hop, redirect loops and internal links that point to redirects.
  • On-page SEO: title and meta description (missing, too long, too short, duplicate), H1 count, canonical tag (missing or pointing elsewhere), noindex (meta robots and X-Robots-Tag), hreflang, <html lang>, Open Graph, missing image alt text, thin content, mixed content on HTTPS, JSON-LD schema types, response time and page size.
  • Sitemap checks: reads sitemap.xml from robots.txt (indexes and gzip included), finds orphan pages that are in the sitemap but not linked anywhere, sitemap URLs that redirect or fail, and noindex pages listed in the sitemap.
  • Issues-only mode for scheduled monitoring: only pages with errors or warnings and only broken links are saved.
  • Cheap: $8 per 1,000 audited pages. That is 5× cheaper than the most popular SEO audit Actor. Error pages (404, 5xx) cost nothing.
  • Polite: HTTP only (no browser), robots.txt and Crawl-delay respected, 3 parallel requests per site by default, an honest User-Agent, and at most 1 request per second per external host.

What can I use it for?

  • Website audit before a launch or migration: catch broken links, redirect chains and missing tags before Google does.
  • Monthly SEO health check: schedule the Actor with outputMode: issuesOnly and get only the new problems.
  • Agencies and freelancers: produce a client site audit with a score, issue counts and the top fixes in minutes.
  • Content teams: find duplicate titles and descriptions, thin pages and pages missing H1 or alt text.
  • Link rot monitoring: find outgoing links to dead pages on blogs, docs and resource pages.
  • AI agents: let an agent audit a site and propose fixes (see below).

Input

FieldDescription
startUrlsOne URL per site. The crawl stays on the same host (www and non-www count as the same site).
maxPagesMax HTML pages audited per site (default 50, max 10,000). Breadth-first, so the most important pages come first.
checkExternalLinksCheck outgoing links (HEAD, GET fallback, 8 s timeout). Default on.
maxExternalLinksMax unique external URLs checked per site (default 500). The most-linked ones are checked first.
useSitemapUse sitemap.xml to find more pages and run the sitemap checks. Default on.
outputModeallPages (default) or issuesOnly
respectRobots, maxConcurrency, requestTimeoutSecs, userAgentAdvanced
{
"startUrls": [{ "url": "https://www.example.com" }],
"maxPages": 200,
"checkExternalLinks": true,
"maxExternalLinks": 500,
"useSitemap": true,
"outputMode": "allPages"
}

Output

The Output tab has four tables: Issues (one row per issue: URL, severity, code, details), Pages, External links and the Summary. The summary is also saved in the key-value store as SUMMARY.

Sample summary (crawler-test.com, a site built with SEO problems on purpose, 40 pages):

SiteScoreGradePagesErrorsWarningsNoticesBroken internal URLsBroken external links
crawler-test.com71C4086013252
books.toscrape.com83B1010122000

Page row (shortened):

{
"type": "page",
"url": "https://crawler-test.com/links/broken_links_internal",
"statusCode": 200,
"redirectChain": [],
"responseTimeMs": 163,
"title": "Broken Links Internal",
"titleLength": 21,
"metaDescriptionLength": 40,
"h1Count": 1,
"wordCount": 30,
"canonicalStatus": "missing",
"indexable": true,
"jsonLdTypes": [],
"inSitemap": false,
"linkedFrom": ["https://crawler-test.com/"],
"issues": [
{
"severity": "error",
"code": "BROKEN_INTERNAL",
"message": "Page links to internal URLs that return 4xx/5xx or fail",
"details": {
"count": 5,
"links": [{ "url": "https://crawler-test.com/links/not_found/foo1", "statusCode": 404 }]
}
},
{ "severity": "warn", "code": "THIN_CONTENT", "message": "Fewer than 200 words of visible text", "details": { "wordCount": 30 } }
],
"errorCount": 1,
"warningCount": 1
}

External link row:

{
"type": "externalLink",
"url": "https://invalid.crawler-test.com/",
"statusCode": null,
"ok": false,
"botBlocked": false,
"error": "DNS resolution failed",
"sourceCount": 1,
"sourcePages": ["https://crawler-test.com/"]
}

The summary row has score, grade, issueCounts (pages per issue code), topFixes (code, severity, affected pages, example URLs), statusCodes, brokenInternalExamples, sitemapUrlCount, crawlComplete and stoppedReason. See SAMPLE_OUTPUT.json for full rows.

Issue codes

SeverityCodes
errorHTTP_4XX, HTTP_5XX, FETCH_FAILED, REDIRECT_LOOP, BROKEN_INTERNAL, BROKEN_EXTERNAL, TITLE_MISSING, MIXED_CONTENT
warnMETA_DESC_MISSING, TITLE_TOO_LONG (>60), META_DESC_TOO_LONG (>160), H1_MISSING, MULTIPLE_H1, CANONICAL_TO_OTHER, NOINDEX, REDIRECT_CHAIN (>1 hop), THIN_CONTENT (<200 words), DUPLICATE_TITLE, DUPLICATE_META_DESC, IMG_MISSING_ALT, IN_SITEMAP_NON_200, NOINDEX_IN_SITEMAP, SLOW_RESPONSE (>3 s)
infoTITLE_TOO_SHORT, META_DESC_TOO_SHORT, CANONICAL_MISSING, INTERNAL_REDIRECT_LINK, IN_SITEMAP_NOT_LINKED, HREFLANG_NO_SELF, LANG_MISSING, OG_MISSING, LARGE_PAGE

Score: 100 minus a penalty for each issue code. Errors weigh 10, warnings 4 and notices 0.5, scaled by the share of pages affected. 90+ = A, 75+ = B, 60+ = C, 40+ = D.

Pricing

Pay per event: you only pay for what was audited.

EventPrice
Page audited (HTML page, status 200)$0.008 ($8 per 1,000)
External link checked (unique URL)$0.0003 ($0.30 per 1,000)
Site summary (one per site)$0.01

Free: 404/5xx pages, redirects, non-HTML files and internal link status checks. Example: a 200-page site with 300 external links costs 200 × $0.008 + 300 × $0.0003 + $0.01 = $1.70.

ActorPrice per 1,000 pages
smart-digital/complete-seo-audit-tool$40
automation-lab/website-lighthouse-seo-audit$14
logiover/website-seo-audit-crawler$10
This Actor$8, plus broken external links with source pages, a summary score and an issues-only mode

Set Maximum cost per run in the run options to cap your spend. The Actor stops cleanly when the limit is reached and always keeps enough budget to deliver the site summary.

FAQ

Does it render JavaScript? No. It reads the HTML the server sends, which is what most technical SEO checks need, and is fast and cheap. Sites that build all content in the browser will show as thin content.

Will it crawl other websites? No. It only crawls the host you give it (www and non-www count as the same). External links get one HEAD request (or GET if HEAD is refused) to read their status.

Why is an external link marked botBlocked? Some sites (LinkedIn, G2, Cloudflare-protected pages) answer automated requests with 401, 403, 429 or 999. Those links usually work in a browser, so they are reported with ok: true, botBlocked: true and do not count as broken.

Does it respect robots.txt? Yes, by default. URLs disallowed for SEOAuditCrawler (or *) are skipped and Crawl-delay is honored. Turn respectRobots off only for your own site.

Can I monitor my site every week? Yes. Create a schedule with outputMode: issuesOnly and connect a Slack, email or webhook integration.

What does "orphan page" mean here? A URL that is in your sitemap but is not linked from any crawled page (IN_SITEMAP_NOT_LINKED). For a reliable result, set maxPages high enough to crawl the whole site (see crawlComplete in the summary).

Use with AI agents / Apify MCP

The Actor works as a tool in the Apify MCP server for Claude, ChatGPT, Cursor and other MCP clients. Ask something like "Audit example.com (100 pages) and list the top 10 SEO fixes", and the agent calls the Actor and reads the SUMMARY record and the Issues view. Through the API:

curl -X POST "https://api.apify.com/v2/acts/gazidev~seo-audit-crawler/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":[{"url":"https://www.example.com"}],"maxPages":100,"outputMode":"issuesOnly"}'
  • Sitemap URL Extractor (gazidev/sitemap-url-extractor): every URL from a site's sitemaps, with an optional status check.
  • Website to Markdown (gazidev/website-to-markdown): turn pages into clean Markdown for LLMs and RAG.