Internal Link Opportunity Finder
Pricing
from $5.00 / 1,000 page analyzeds
Internal Link Opportunity Finder
Crawl websites and find explainable, contextual internal linking opportunities.
Pricing
from $5.00 / 1,000 page analyzeds
Rating
0.0
(0)
Developer
Iqbal R
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does Internal Link Opportunity Finder do?
Internal Link Opportunity Finder automatically crawls your website and finds high-value internal linking opportunities between related pages. It returns recommended source and target URLs, suggested anchor text, a matching content snippet, priority, score, explanation, and relevant page metrics without requiring a prebuilt keyword-to-URL map.
Try it with apify.com. Results are available through Apify Console, API, schedules, webhooks, integrations, and downloadable datasets.
Why use Internal Link Opportunity Finder?
Strong internal links help visitors discover useful content and make important pages easier for search engines to find. On larger websites, manually reviewing every possible source and target page is slow and inconsistent.
Use this Actor to:
- find contextual links between related articles, services, products, landing pages, and documentation;
- discover important pages with few or no inbound links in the analyzed crawl;
- identify natural phrases that can become useful anchor text;
- prioritize recommendations using content relevance and link metrics;
- support content refreshes, website migrations, editorial audits, and SEO workflows;
- export recommendations to spreadsheets, databases, n8n, Make, Zapier, or other tools.
How to use Internal Link Opportunity Finder
- Open the Actor in Apify Console.
- Add one or more website URLs in the Input tab.
- Set the maximum pages and crawl depth.
- Choose grouped output for editorial review or flat output for automation.
- Click Start.
- Review the ranked recommendations in the Output tab.
- Confirm that each suggested link is useful to readers before publishing it.
For best results, start with a focused website section and increase the page limit after reviewing the first run.
Input
A minimal input:
{"startUrls": [{ "url": "https://apify.com" }]}
A more targeted configuration:
{"startUrls": [{ "url": "https://apify.com" }],"maxPagesPerSite": 100,"maxCrawlDepth": 10,"includeSubdomains": false,"respectRobotsTxt": true,"minimumOpportunityScore": 0.6,"maxOpportunitiesPerPage": 10,"detectOrphanPages": true,"minimumWordCount": 100,"outputMode": "grouped","preferredTargetUrls": ["https://apify.com/store/*"],"excludeUrlPatterns": ["https://apify.com/account/*"],"proxyConfiguration": {"useApifyProxy": false}}
Input fields
| Field | Description | Default |
|---|---|---|
startUrls | Websites or pages where analysis starts | Required |
maxPagesPerSite | Maximum HTML pages crawled per website | 100 |
maxCrawlDepth | Maximum link distance from a discovered entry page | 10 |
includeSubdomains | Include child subdomains in the same analysis | false |
respectRobotsTxt | Apply applicable robots.txt crawl rules | true |
minimumOpportunityScore | Minimum score included in results | 0.6 |
maxOpportunitiesPerPage | Maximum recommendations for each source page | 10 |
detectOrphanPages | Detect eligible pages with no inbound links found | true |
minimumWordCount | Minimum page word count used for recommendations | 100 |
outputMode | Return grouped or flat results | grouped |
includeUrlPatterns | Crawl only URLs matching these wildcard patterns | Empty |
excludeUrlPatterns | Skip URLs matching these wildcard patterns | Empty |
targetUrlPatterns | Restrict recommendation targets | Empty |
preferredTargetUrls | Give strategic target pages additional priority | Empty |
ignoredTargetUrls | Never recommend matching pages as targets | Empty |
proxyConfiguration | Apify Proxy or custom proxy settings | Direct |
URL pattern fields support * as a wildcard.
Output
The default grouped output creates one dataset item per source page:
{"site": "apify.com","sourceUrl": "https://apify.com/blog/web-scraping","source": {"title": "Web scraping guide","pageType": "article"},"sourceMetrics": {"inboundLinks": 8,"outboundLinks": 14,"crawlDepth": 2,"importanceScore": 0.76},"opportunityCount": 1,"opportunities": [{"targetUrl": "https://apify.com/store","targetTitle": "Apify Store","targetPageType": "landing-page","type": "contextual_link","suggestedAnchorTexts": ["ready-made web scrapers"],"context": {"text": "You can start quickly with ready-made web scrapers.","matchedPhrase": "ready-made web scrapers"},"score": 0.88,"priority": "critical","reason": "Strong topical relevance and a natural anchor phrase exists in the source content.","targetMetrics": {"inboundLinks": 3,"isOrphan": false,"isUnderlinked": true,"importanceScore": 0.91}}]}
Flat output creates one dataset item per recommendation, making it convenient for automation and spreadsheet exports.
The key-value store also contains a summary for each analyzed website and an aggregate run summary. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.
Data table
| Field | Description |
|---|---|
site | Website associated with the recommendation |
sourceUrl | Page where a link could be added |
targetUrl | Recommended internal destination |
targetTitle | Title of the recommended destination |
type | Contextual, missing, orphan, underlinked, or hub opportunity |
suggestedAnchorTexts | Suggested wording for the link |
context | Source sentence and matching phrase |
score | Opportunity score from 0 to 1 |
priority | Critical, high, medium, or low |
reason | Explanation of why the link is recommended |
sourceMetrics | Link count, depth, and importance of the source |
targetMetrics | Link coverage and importance of the target |
How much does it cost to analyze internal links?
This Actor uses pay-per-event pricing. You pay once for each unique HTML page successfully included in the analysis. Failed, rejected, duplicate, and over-budget pages are not charged. Apify platform usage is billed separately.
Prices start at $5.00 per 1,000 pages analyzed. The event charge for a 100-page crawl starts at $0.50, plus platform usage. You can set a maximum charge for every run; the Actor stops cleanly and returns the paid results collected so far when that limit is reached.
Start with 50-100 pages to confirm your URL scope, then increase maxPagesPerSite for a complete audit.
Tips and advanced options
- Add commercial, evergreen, or high-conversion pages to
preferredTargetUrls. - Use
targetUrlPatternswhen recommendations should point only to a specific section. - Exclude account pages, calendars, search results, and faceted navigation.
- Raise
minimumOpportunityScorefor a shorter, higher-confidence shortlist. - Use grouped output for editorial review and flat output for downstream automation.
- Keep robots.txt enabled and choose crawl limits appropriate for the target website.
- Analyze unrelated subdomains separately unless they share one content strategy.
The Actor checks robots.txt and discovers sitemap URLs before crawling eligible internal HTML pages. Sitemap coverage helps surface pages that may not be reachable through the links found during the run.
FAQ, disclaimers, and support
What does an orphan-page result mean?
It means no inbound internal links were found for that page in the analyzed crawl. It does not claim that a search engine considers the page orphaned.
Does the Actor change my website?
No. It only reads public pages and returns recommendations. It does not publish or edit links.
Does every recommendation need to be implemented?
No. Review relevance, reader value, placement, and anchor wording before making a change. The score is a prioritization aid, not a guarantee of SEO performance.
What are the limitations?
Pages and links that require browser-side JavaScript may not be visible. PDF content is not analyzed. Password-protected pages, blocked pages, and content outside the configured limits are excluded. Results reflect only the pages successfully observed during the run.
Is web crawling legal?
You are responsible for complying with applicable laws, website terms, robots directives, privacy requirements, and rate limits. Only process websites and data you are authorized to access.
For help, bug reports, or feature requests, use the Actor's Issues tab. Custom scoring, extraction rules, and workflow integrations are also available as custom solutions.