Internal Link Audit: Orphan Pages & Sitemap Crawl
Pricing
$2.00 / 1,000 page auditeds
Internal Link Audit: Orphan Pages & Sitemap Crawl
Find orphan pages, weak internal links, broken links and sitemap gaps. Sitemap crawl with inlink counts, anchors & fixes. First 25 free, then $0.002/page. No API keys.
Pricing
$2.00 / 1,000 page auditeds
Rating
0.0
(0)
Developer
Umair Saleem Mohammad Saleem
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
21 hours ago
Last modified
Share
Answer first: this actor is an internal link audit and orphan page finder. Give it a sitemap (or a URL list). It crawls those pages and labels each one ORPHAN (no internal links in), WEAK (few links in), BROKEN_PAGE, HAS_BROKEN_LINKS or OK, with the pages that link to it, top anchor texts and a fix. It also lists URLs that are linked but missing from your sitemap. First 25 pages free every run, then $0.002 per page.
| Quick facts | |
|---|---|
| Best for | Orphan page audits, internal linking audits, broken internal links, sitemap gaps, link depth / inlink counts |
| Input | A sitemap URL (indexes followed) or a list of URLs |
| Output | One row per page: issue, status, inlinks, linkedFrom[], topAnchors[], brokenLinksOnPage[], fix |
| Price | First 25 pages free every run, then $0.002 per page. No start fee |
| Needs | No API keys, no proxies |
| Not included | JavaScript-injected links, external link checks |
Why it matters
Orphan and weakly linked pages get crawled less, rank worse and are rarely cited by AI search. Internal linking is the cheapest SEO lever you control.
Input example
{"sitemapUrl": "https://crawlee.dev/sitemap.xml","maxPages": 100,"weakThreshold": 2,"maxConcurrency": 5}
Or pass a URL list instead of a sitemap:
{"urls": ["https://example.com/", "https://example.com/about", "https://example.com/blog/post"],"maxPages": 50,"weakThreshold": 2,"maxConcurrency": 5}
Defaults: maxPages 50, weakThreshold 2, maxConcurrency 5. Sitemap indexes are followed (nested sitemaps up to depth 2). Provide either sitemapUrl or urls.
Issue types
| Issue | Meaning |
|---|---|
| ORPHAN | 0 inlinks from other crawled pages |
| WEAK | 1…weakThreshold inlinks (default threshold 2) |
| BROKEN_PAGE | Page itself returned HTTP ≥400 (or failed) |
| HAS_BROKEN_LINKS | Page is fine but links to internal URLs that are ≥400 / failed |
| OK | Enough inlinks and no broken internal outlinks |
Priority order in the dataset: BROKEN_PAGE → ORPHAN → HAS_BROKEN_LINKS → WEAK → OK.
Output (one row per page)
url, issue, status, inlinks, outlinksInternal, linkedFrom[], topAnchors[], brokenLinksOnPage[], fix
Sample:
[{"url": "https://crawlee.dev/blog/archive","issue": "ORPHAN","status": 200,"inlinks": 0,"outlinksInternal": 36,"brokenLinksOnPage": [],"linkedFrom": [],"topAnchors": [],"fix": "Link to this page from 3+ related pages (hub/category + body links), or remove it from the sitemap if it should not rank."}]
SUMMARY key-value: pagesAudited, byIssue counts, and linkedButNotInList (internal URLs linked from crawled pages but not in your sitemap/list, up to 200).
Pricing (pay per event)
First 25 pages in every run are free, then $2 per 1,000 pages ($0.002 per page audited).
What a run costs
| Pages audited | You pay |
|---|---|
| 25 | $0 (free in every run) |
| 100 | ≈ $0.15 |
| 500 | ≈ $0.95 |
| 1,000 | ≈ $1.95 |
| 5,000 | ≈ $9.95 |
(First 25 free each run.) Set a maximum charge per run in Apify run options; when the event spend cap is hit the actor stops cleanly (eventChargeLimitReached).
Notes
- Inlinks are counted only among pages crawled in the run. For a full-site orphan check, raise Max pages to cover the whole sitemap.
- Pages are read as server-rendered HTML (Cheerio). Links injected only by client-side JavaScript (SPA routers) are not seen — the same limitation most search and AI crawlers have.
- Up to 100 linked-but-not-listed internal URLs are HEAD-checked for broken-link detection.
How it compares (live Apify Store prices, verified 18 Oct 2026)
List prices on the Apify Free plan, read from the Apify Store API on 18 October 2026.
| Actor | Job focus | Price | Free pages | Cost for 100 pages |
|---|---|---|---|---|
| cygnix_labs/internal-link-audit (this) | Orphan + weak + broken internal + missing-from-sitemap, fix per page | $0.002 / page | First 25 every run | $0.15 |
| dabooti/internal-link-graph-analyzer | Internal-link graph + orphan candidates | $0.001 / page + tiny start fee | No | ~$0.10 |
| plainrows/broken-link-checker | Broken links, redirect chains, sitemaps | $0.0015 / page | No | $0.15 |
| ib4ngz/internal-link-opportunity-finder | Contextual link opportunities (not an orphan audit) | $0.0065 / page | No | $0.65 |
| searchshark/domain-internal-link-crawler-screamingfrog-alternative | Full link crawl, one row per link | $0.001 / result + $0.01 start | No | depends on link count |
| logiover/website-link-graph-crawler | Link graph crawl | $0.0075 / item | No | depends on rows |
| nexgenwatch/internal-link-architecture-verifier | Architecture checks | $0.05 / page + $0.02 start | No | $5.02 |
Honest take. dabooti is cheaper per page ($0.001 vs $0.002) and bills every page. Here a 25-page client check costs $0 and 100 pages cost $0.15 vs about $0.10 there. Choose this one for free spot checks and for the orphan + broken + sitemap-gap labels with a fix per row; choose dabooti for very large crawls where only price matters.
For AI agents / MCP
When an agent should call this actor: the user asks to find orphan pages, check internal linking, find broken internal links, or see which pages are missing from the sitemap.
Connect the Apify MCP server with only this actor enabled (works in Claude, ChatGPT, Cursor, VS Code, Codex and any MCP client):
https://mcp.apify.com?tools=cygnix_labs/internal-link-audit
Or search for it with the default server: search-actors keywords such as internal links, orphan pages, broken links.
Example call-actor input:
{"sitemapUrl": "https://example.com/sitemap.xml","maxPages": 200,"weakThreshold": 2,"maxConcurrency": 5}
What to read from the result: rows are sorted BROKEN_PAGE → ORPHAN → HAS_BROKEN_LINKS → WEAK → OK; each has url, issue, inlinks, linkedFrom, topAnchors, brokenLinksOnPage and fix. SUMMARY has byIssue counts and linkedButNotInList (internal URLs missing from the sitemap).
Cost control for agents: Keep maxPages at 25 for a free first pass; raise it to cover the whole sitemap for a true orphan check. Pass maxTotalChargeUsd in callOptions to hard-cap spend. This actor is pay-per-event, so it also works with Apify agentic payments (no Apify account needed for the agent).
Example prompt: "Audit internal links on example.com from its sitemap (200 pages) and list orphan pages and broken internal links with fixes."
FAQ
Can I cap my spend? Yes. Set a max charge per run; the actor stops when eventChargeLimitReached is returned and you are not billed beyond that cap.
Do sitemap indexes work? Yes. Nested <sitemapindex> files are followed up to depth 2, collecting <loc> URLs until Max pages is reached.
Are nofollow links counted? No. Anchors with rel containing nofollow are skipped for both outlink and inlink graphs.
How polite is concurrency? Default maxConcurrency is 5 (max 20). Keep it low on production sites so you do not hammer your own server.
Does it need proxies or API keys? No. It fetches your pages directly with a polite user-agent.
JavaScript-only SPAs? Only links present in the server HTML are audited. Pre-render or use a sitemap of real URLs if the site is client-rendered.
Why does a page show as ORPHAN when my menu links to it? Inlinks are counted only among pages crawled in the run. If the linking page was beyond maxPages, raise the cap. Links added only by JavaScript are not seen.
Integrations
Run via the Apify API, schedule weekly runs, or send results to Google Sheets, Make, Zapier, n8n, Slack or webhooks.
Changelog
- 0.1.6 (2026-10-18): README rewritten answer-first for search and AI agents: quick facts, comparison re-verified against 6 named actors on 18 Oct 2026, "For AI agents / MCP" section with example input. Price unchanged ($0.002/page, first 25 free).
- 0.1.2 (2026-10-16): Stronger orphan / internal-links / sitemap-crawl opening.
More SEO and AEO tools by Cygnix Labs
- Website SEO Audit + AEO/GEO Checker (full-site crawl)
- AEO & GEO Audit + llms.txt Checker (URL list)
- Content Decay Audit (Search Console)
- Keyword Cannibalization Checker (Search Console)
- Keyword Clustering + Content Briefs
- Search Intent Classifier
- Free local SEO MCP server: cygnix-seo-mcp (
npx -y cygnix-seo-mcp)
Questions or a feature request? Open an issue on this actor's Issues tab. We answer within 24 hours.