Link Relationship Analyzer
Pricing
$4.99/month + usage
Link Relationship Analyzer
Link relationship analyzer that crawls any website and maps all internal and external links, so SEO teams can audit anchor text, find orphaned pages, and see how a site's pages connect.
Pricing
$4.99/month + usage
Rating
0.0
(0)
Developer

ZeroBreak
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Link Relationship Analyzer: map internal and external links for SEO audits
Crawls any website and extracts every link relationship between pages. Point it at a URL and it follows internal links level by level, recording where each anchor points, what text it uses, and whether nofollow is applied. Handy for auditing site structure, tracking down poorly linked pages, and reviewing external link profiles without clicking through pages manually.
Use cases
- Internal link auditing: find pages with too many or too few internal links before they hurt crawl efficiency
- Orphaned page detection: pages that nothing links to won't appear as targets in the output, making them easy to identify
- Anchor text analysis: review the anchor text used across your internal links for keyword consistency and relevance
- External link monitoring: see which external domains your site links to and check for unwanted nofollow attributes
- Site architecture mapping: understand how link depth distributes across your URL structure before making structural changes
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrl | string | required | The URL to start crawling from |
maxDepth | integer | 2 | How many link levels deep to crawl from the start URL |
maxUrls | integer | 100 | Maximum number of pages to crawl per run (up to 1,000) |
includeExternalLinks | boolean | true | Include links pointing to external domains in the output |
timeoutSecs | integer | 300 | Overall actor timeout in seconds |
requestTimeoutSecs | integer | 30 | Per-request HTTP timeout in seconds |
proxyConfiguration | object | Datacenter (Anywhere) | Proxy type and location for requests. Supports Datacenter, Residential, Special, and custom proxies. Optional. |
Example input
{"startUrl": "https://apify.com","maxDepth": 2,"maxUrls": 100,"includeExternalLinks": true,"proxyConfiguration": { "useApifyProxy": true }}
What data does this actor extract?
One record per link relationship discovered. Each entry contains:
{"sourcePage": "https://apify.com/blog","sourceTitle": "Apify Blog","targetUrl": "https://apify.com/pricing","anchorText": "see pricing","linkCategory": "internal","isNofollow": false,"crawlDepth": 1,"httpStatusCode": 200,"scrapedAt": "2026-03-05T10:42:00.000Z"}
| Field | Type | Description |
|---|---|---|
sourcePage | string | URL of the page where the link was found |
sourceTitle | string | Page title of the source page |
targetUrl | string | The URL the link points to |
anchorText | string | Visible anchor text of the link |
linkCategory | string | "internal" (same domain) or "external" (different domain) |
isNofollow | boolean | True if the link carries rel="nofollow" |
crawlDepth | integer | Depth at which the source page was crawled |
httpStatusCode | integer | HTTP status code of the source page |
scrapedAt | string | ISO 8601 timestamp of extraction |
How it works
- Fetches the start URL and parses all
<a href>tags on the page - Classifies each link as internal (same domain) or external (different domain)
- Queues unvisited internal links for crawling up to
maxDepthlevels deep - Pushes one record per link relationship to the dataset
- Stops when
maxUrlspages are crawled or the queue runs out
Integrations
Connect Link Relationship Analyzer with other tools using Apify integrations. Export results to Google Sheets for pivot table analysis, push data into Make or Zapier workflows, or trigger Slack alerts when a crawl finishes. Webhooks let you kick off follow-up actions automatically after each run.
FAQ
How many links can this actor process per run?
The actor crawls up to 1,000 pages per run (set with maxUrls). Each page can contain dozens to hundreds of links, so a single run on a medium-sized site can produce tens of thousands of link relationship records.
Can it find orphaned pages?
Indirectly. An orphaned page never appears as a targetUrl in the output. Export the results and look for pages on your domain that only show up as sourcePage — those are candidates for pages with no incoming internal links.
Does it crawl through nofollow links? No. The actor records nofollow links in the output but skips them when building the crawl queue. Only followed links are used to discover new pages.
Will it work on JavaScript-heavy sites? The actor uses static HTTP fetching without a browser. Sites that build their navigation entirely in JavaScript may return fewer links than expected. For fully JS-rendered sites, a Playwright-based actor would be more suitable.
How do I focus the crawl on one section of the site?
Start from a subfolder URL like https://example.com/blog/ to limit crawling to that section. Setting maxDepth to 1 restricts the crawl to pages linked directly from the start URL.
Run the link relationship analyzer on any site and get a concrete, filterable map of how pages connect. Export to CSV or integrate with your existing SEO reporting stack.