Broken Link Checker & SEO Site Audit: WCAG, Redirects, SSL avatar

Broken Link Checker & SEO Site Audit: WCAG, Redirects, SSL

Pricing

from $4.00 / 1,000 page crawls

Go to Apify Store
Broken Link Checker & SEO Site Audit: WCAG, Redirects, SSL

Broken Link Checker & SEO Site Audit: WCAG, Redirects, SSL

Crawl your website to find broken links, redirect chains and loops, missing SEO basics (title, meta description, H1, canonical, Open Graph, hreflang), WCAG accessibility issues (axe-core) and SSL expiry. Get a prioritised fix list, CSV and client-ready PDF report. Respects robots.txt.

Pricing

from $4.00 / 1,000 page crawls

Rating

0.0

(0)

Developer

Jordy

Jordy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Share

Broken Link Checker & SEO Site Audit: Redirects, WCAG Accessibility & SSL

One polite crawl of your website finds broken links, redirect chains, missing SEO basics, WCAG accessibility issues and expiring SSL certificates, and turns them into one prioritised fix list, a CSV and a client-ready PDF, from $4 per 1,000 pages.

Enter a start URL and the crawler checks every page and link it is allowed to, then groups all findings by type, ordered by severity and number of affected pages, with example URLs and how to fix them. A lightweight Screaming Frog alternative that runs in the cloud, on a schedule, with pay-per-page pricing.

What can it do?

  • ✅ Broken link checker: every internal link (and external links, optional) with HTTP status, error and anchor text, reported on the page that carries it. Links are kept exactly as written, so there are no invented broken links.
  • ✅ Redirect checker: the real hop-by-hop chain with status codes; loops, chains of 2+ hops and HTTPS → HTTP downgrades are flagged separately.
  • ✅ SEO basics: title and meta description (presence and length), H1 count, canonical (missing, cross-domain, pointing to a broken URL), noindex, <html lang>, Open Graph, hreflang (valid codes, return links, x-default) and images without alt.
  • ✅ WCAG 2.2 accessibility (optional): axe-core in a real Chrome browser at level A or AA, with rule, impact, number of failing elements and a help link.
  • ✅ SSL certificate check: validity, expiry date, days left, issuer and covered names.
  • ✅ Prioritised fix list + reports: fixes.csv, the full site-qa.csv, a site-qa-report.pdf and a page and site score you can explain.
  • ✅ Uses your sitemap: seeds the crawl from sitemap.xml and robots.txt Sitemap: lines.

Use cases

  • Web agencies and freelancers: a monthly website health report per client, ready to send as PDF.
  • QA and test teams: check a site before and after a release or migration for broken links and redirect loops.
  • SEO audits: find missing titles, meta descriptions, canonicals and hreflang problems across the whole site.
  • Accessibility (EAA / WCAG) preparation: get the automated part of the WCAG review done and prioritised.
  • Ops: be warned before an SSL certificate expires.

How to use it

  1. Click Try for free, enter the Start URL of a site you own or may test, and set Max pages (start small, e.g. 50).
  2. Optional: set WCAG level to A or AA, and turn external link checks on or off.
  3. Click Start. The Output tab has one row per page; the run's storage holds fixes.csv, site-qa.csv and site-qa-report.pdf.
  4. For monthly monitoring, save the input as a task, add a schedule, and send the report link to Slack or e-mail under Integrations.

Example input

{
"startUrl": "https://books.toscrape.com/",
"maxPages": 50,
"maxDepth": 5,
"checkExternalLinks": true,
"wcagLevel": "AA",
"checkSsl": true,
"requestsPerSecond": 2
}
FieldDefaultNotes
startUrl–Required. example.com becomes https://example.com/.
maxPages50Hard stop (max 10,000).
maxDepth5Link depth from the start URL; 0 = only the start URL.
includePatterns / excludePatterns[] / wp-admin, cart, checkoutGlobs: ** matches anything, * anything except /.
checkExternalLinkstrueExternal links are checked (status only), never crawled.
maxLinkChecks1000Cap on unique link checks per run.
wcagLeveloffoff, A or AA. A/AA render each page in Chrome.
checkSsltrueOne certificate read per run.
requestsPerSecond2Per host, for all requests (1–10). A robots.txt Crawl-delay slows it further.
includeSubdomainsfalseOff: only the start host (with or without www.).
useSitemaptrueSeed the crawl from the sitemap.

Call it from the API

curl -X POST "https://api.apify.com/v2/acts/jordydev~site-qa-crawler/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrl":"https://example.com","maxPages":50,"wcagLevel":"AA"}'

Example output

Real run on books.toscrape.com (WCAG AA on, 28 Oct 2026):

PageHTTPTitleH1sPage scoreIssues found
https://books.toscrape.com/200All products | Books to Scrape - Sandbox179No meta description; no canonical; missing Open Graph; WCAG serious: color-contrast (135), target-size (47)
https://books.toscrape.com/catalogue/category/books_1/index.html200Books | Books to Scrape - Sandbox179Same as above

One row as JSON (shortened):

{
"tool": "site-qa-crawler",
"target": "https://books.toscrape.com/",
"status": "ok",
"httpStatus": 200,
"title": "All products | Books to Scrape - Sandbox",
"h1Count": 1,
"metaDescription": null,
"canonical": null,
"brokenLinks": [],
"linkCounts": { "internal": 73, "external": 0, "notChecked": 51 },
"issues": [
{ "id": "missing-meta-description", "severity": "medium", "message": "No meta description" },
{ "id": "missing-canonical", "severity": "low", "message": "No canonical link" },
{ "id": "missing-open-graph", "severity": "low", "message": "Missing og:title, og:description, og:image, og:url" },
{ "id": "wcag-serious", "severity": "high", "message": "color-contrast (135), target-size (47)" }
],
"pageScore": 79,
"billed": true
}

The key-value store also holds RUN_SUMMARY (site score, SSL, top fixes, totals, link stats, robots and sitemap info, billed events), site-qa.csv, fixes.csv and site-qa-report.pdf.

How the score works: page score = 100 minus a weight per issue type on that page (critical 25, high 12, medium 5, low 2), plus up to 15 extra for many broken links on one page. Site score = average page score minus site-wide issues (critical 20, high 10, medium 3, e.g. an expiring certificate).

How much does it cost?

Pay per event: you only pay per page checked, not for Apify compute.

EventPriceWhen it's charged
Page crawl$0.004 ($4 per 1,000 pages)A page was fetched and checked (a fetched 404 counts: finding it is the point)
WCAG check$0.02A page was rendered and tested with axe-core (only with wcagLevel A/AA, only when the check completed)
SSL check$0.002Once per run, only when a certificate was actually read
Actor start$0.00005Apify's standard fee per run start (per GB of memory)

Examples: 500 pages without accessibility ≈ $2.00; 500 pages with WCAG AA ≈ $12.00.

Free: pages that couldn't be fetched (timeouts, DNS, blocked by robots.txt or the private-address guard) and invalid input. Your maximum cost per run is respected: the crawler checks the budget before each page and stops cleanly at the limit.

FAQ

Can I crawl any website? Does it respect robots.txt? Use it on sites you own or have permission to test. The crawler always obeys robots.txt (pages and link checks; an unreadable robots.txt means "disallow all", per RFC 9309) and Crawl-delay, rate-limits every request per host (default 2/s), identifies itself as SiteQACrawler/0.2, and refuses private and internal addresses. It stores only page metadata, link results and findings: no cookies, forms or personal data.

Is this a WCAG / EAA compliance certificate? No. Automated tools like axe-core find only part of the WCAG issues. Keyboard use, focus order, alt-text accuracy and screen-reader sense need a human. The report says so too.

Why did it crawl fewer pages than maxPages? Pages blocked by robots.txt, outside your patterns, deeper than maxDepth or on other subdomains are skipped. RUN_SUMMARY explains why.

Why is it slow? It's polite on purpose: 2 requests per second per host by default, including link checks. Raise requestsPerSecond (max 10) only on your own site.

Can it crawl JavaScript-only (SPA) sites? Pages are fetched as HTML, so links that only appear after JavaScript runs aren't followed. WCAG checks do render the page in Chrome.

Does it judge content or rankings? No keyword scoring and no invented ranking grade: only checkable facts.

More tools by the same developer, all pay-per-event with the same clean output style:


Related searches: broken link checker, dead link checker, website audit tool, SEO crawler, technical SEO audit, redirect chain checker, WCAG accessibility checker, axe-core scanner, SSL certificate expiry checker, website QA report PDF, Screaming Frog alternative.