Internal Link Opportunity Finder avatar

Internal Link Opportunity Finder

Pricing

from $5.00 / 1,000 page analyzeds

Go to Apify Store
Internal Link Opportunity Finder

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

Iqbal R

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

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.

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.
  1. Open the Actor in Apify Console.
  2. Add one or more website URLs in the Input tab.
  3. Set the maximum pages and crawl depth.
  4. Choose grouped output for editorial review or flat output for automation.
  5. Click Start.
  6. Review the ranked recommendations in the Output tab.
  7. 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

FieldDescriptionDefault
startUrlsWebsites or pages where analysis startsRequired
maxPagesPerSiteMaximum HTML pages crawled per website100
maxCrawlDepthMaximum link distance from a discovered entry page10
includeSubdomainsInclude child subdomains in the same analysisfalse
respectRobotsTxtApply applicable robots.txt crawl rulestrue
minimumOpportunityScoreMinimum score included in results0.6
maxOpportunitiesPerPageMaximum recommendations for each source page10
detectOrphanPagesDetect eligible pages with no inbound links foundtrue
minimumWordCountMinimum page word count used for recommendations100
outputModeReturn grouped or flat resultsgrouped
includeUrlPatternsCrawl only URLs matching these wildcard patternsEmpty
excludeUrlPatternsSkip URLs matching these wildcard patternsEmpty
targetUrlPatternsRestrict recommendation targetsEmpty
preferredTargetUrlsGive strategic target pages additional priorityEmpty
ignoredTargetUrlsNever recommend matching pages as targetsEmpty
proxyConfigurationApify Proxy or custom proxy settingsDirect

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

FieldDescription
siteWebsite associated with the recommendation
sourceUrlPage where a link could be added
targetUrlRecommended internal destination
targetTitleTitle of the recommended destination
typeContextual, missing, orphan, underlinked, or hub opportunity
suggestedAnchorTextsSuggested wording for the link
contextSource sentence and matching phrase
scoreOpportunity score from 0 to 1
priorityCritical, high, medium, or low
reasonExplanation of why the link is recommended
sourceMetricsLink count, depth, and importance of the source
targetMetricsLink coverage and importance of the target

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 targetUrlPatterns when recommendations should point only to a specific section.
  • Exclude account pages, calendars, search results, and faceted navigation.
  • Raise minimumOpportunityScore for 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.

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.