Broken Link Checker & SEO Site Audit: WCAG, Redirects, SSL
Pricing
from $4.00 / 1,000 page crawls
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
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 withoutalt. - ✅ 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 fullsite-qa.csv, asite-qa-report.pdfand a page and site score you can explain. - ✅ Uses your sitemap: seeds the crawl from
sitemap.xmland robots.txtSitemap: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
- 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).
- Optional: set WCAG level to A or AA, and turn external link checks on or off.
- Click Start. The Output tab has one row per page; the run's storage holds
fixes.csv,site-qa.csvandsite-qa-report.pdf. - 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}
| Field | Default | Notes |
|---|---|---|
startUrl | – | Required. example.com becomes https://example.com/. |
maxPages | 50 | Hard stop (max 10,000). |
maxDepth | 5 | Link depth from the start URL; 0 = only the start URL. |
includePatterns / excludePatterns | [] / wp-admin, cart, checkout | Globs: ** matches anything, * anything except /. |
checkExternalLinks | true | External links are checked (status only), never crawled. |
maxLinkChecks | 1000 | Cap on unique link checks per run. |
wcagLevel | off | off, A or AA. A/AA render each page in Chrome. |
checkSsl | true | One certificate read per run. |
requestsPerSecond | 2 | Per host, for all requests (1–10). A robots.txt Crawl-delay slows it further. |
includeSubdomains | false | Off: only the start host (with or without www.). |
useSitemap | true | Seed 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):
| Page | HTTP | Title | H1s | Page score | Issues found |
|---|---|---|---|---|---|
| https://books.toscrape.com/ | 200 | All products | Books to Scrape - Sandbox | 1 | 79 | No meta description; no canonical; missing Open Graph; WCAG serious: color-contrast (135), target-size (47) |
| https://books.toscrape.com/catalogue/category/books_1/index.html | 200 | Books | Books to Scrape - Sandbox | 1 | 79 | Same 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.
| Event | Price | When 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.02 | A page was rendered and tested with axe-core (only with wcagLevel A/AA, only when the check completed) |
| SSL check | $0.002 | Once per run, only when a certificate was actually read |
| Actor start | $0.00005 | Apify'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.
Related Actors
More tools by the same developer, all pay-per-event with the same clean output style:
- EU Jobs Search (Workday, Greenhouse, Lever & Teamtailor): search live jobs from 6,500+ European employers' career sites by keyword and country, no company list needed.
- Greenhouse & Lever Jobs Scraper (ATS Job Feed): every open job from your own list of companies on Greenhouse, Lever, Ashby, Workable, Recruitee and Personio.
- Bulk PageSpeed Insights & Core Web Vitals Checker: Lighthouse scores, LCP/CLS/INP and top fixes for hundreds of URLs, with CSV and PDF report.
- Website Screenshot & HTML to PDF: full-page PNG/JPEG screenshots and PDFs of any URL or raw HTML, cookie banners removed.
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.