---
title: "Free Internal Link Checker and Audit Tool for SEO"
description: "An internal linking SEO tool to audit internal link structure and find opportunities and suggestions to fix orphan pages and crawls."
canonical: "https://ian.is/tools/internal-links"
language: "en"
---

# Internal links tool

Crawl your site, find weak pages, and get contextual link suggestions with anchors and placement.

Enter your site URL in the form below and the internal linking tool will read robots.txt and your sitemap, fetch up to 500 pages, and map every existing internal link. It then uses [Jev](https://typesafe.ai/?ref=ian.is) to classify each page and its search intent to recommend the best internal linking structure.

It’s free if you use your own TypeSafe API key or you can pay $1 to run the report instead.

Pages read

Classified

Links judged

Links found

Jev requests

Elapsed

Cost so far

1.  robots.txt
2.  Sitemap
3.  Fetch
4.  Classify
5.  Judge
6.  Report

Live feed

Latest link found

Accepted links appear here once pages are classified.

Page types

Up to 500 pages. The crawler obeys robots.txt and Crawl-delay, and nothing about your site or your key is kept once the report reaches your browser.

## What you get

-   A link map of every page that has little or no contextual links to it, and the recommended pages that should link to it.
-   Ranked links by how confident Jev is, including the source, target, the sentence to put the link in, the anchor text phrase and the job the link does for a reader.
-   A table of pages with each page’s type, search intent, word count, links in (contextual and total), and suggested links.
-   Existing links with generic anchors such as “click here” or “read more” that you should rewrite.
-   CSV and JSON download options for the whole report.

## How the crawl works

-   The site is crawled by [ianbot](https://ian.is/ianbot). It reads and honours `robots.txt` disallow rules. If your firewall blocks ianbot you can use the [ianbot page](https://ian.is/ianbot) to allow it.
-   It finds your sitemap from `robots.txt` or at the usual sitemap paths. For sites with no sitemap it will follow links from the home page.
-   Fetches up to 500 HTML pages, honours `Crawl-delay`, and drops duplicate pages with a canonical URL pointing at another fetched page.
-   Every existing internal link is recorded with its anchor text and whether it’s in the body or in navigation.

## How the analysis works

-   Each page’s body text is first split into sentences and headings.
-   Every page is then scored with TF-IDF. Term frequency (TF) is how often a word appears on a page and inverse document frequency (IDF) is how rare that word is across the whole site. This gives higher scores to the words that define the page and lower scores to words that appear more commonly (like your brand name).
-   For each source page the eight most similar pages become candidate targets. Pages with fewer than three links in get a score boost to find and get links to orphan pages (pages with no internal links).
-   Link placements are found by locating the four sentences in the source page most related to the target page. The phrases in those sentences that match the target’s keywords become the anchor text options.
-   Jev only chooses between the sentences and anchor text options the code found. Every suggestion points at a real sentence and a real phrase on your page.

## What Jev decides

Jev classifies every page as one of these types:

-   `pillar_guide`. Long, broad articles that should link out to many narrower pages.
-   `support_article`. A focused article or post like a tutorial or explainer.
-   `product_or_service`. A page whose primary focus is commercial (either selling or describing a product/service).
-   `comparison_or_review`. A competitor “vs” page, a product review, or a best-of list.
-   `glossary_or_definition`. Shorter page that defines one term or definition.
-   `tool_or_calculator`. An interactive page like a calculator or tool (like this internal link tool!).
-   `news_or_update`. A dated announcement or changelog entry. (These rank lower as targets because they go stale)
-   `category_hub`. An archive page, listing, tag, category or index page.
-   `home`, `about_or_company`, `legal_or_utility` or `other`.

Jev also decides the search intent of every page: `informational`, `commercial`, `transactional` or `navigational`.

For every candidate link it answers four questions:

1.  Should the source link to the target at all?
2.  Which sentence does the link belong in?
3.  Which phrase in that sentence should be the anchor?
4.  What does the link do for the reader?

The answer to the last question is the link’s role:

-   `explains_concept`. The target explains a term or idea the source mentions.
-   `deeper_detail`. The target goes deeper into a sub-topic the source only touches on.
-   `broader_guide`. The target is the broader guide or hub the source belongs under.
-   `next_step`. The target is what a reader should read or do next.
-   `product_or_service`. The target is the product or service that solves the problem discussed.
-   `comparison_or_alternative`. The target compares or offers an alternative to what the source discusses.

Home pages, legal pages and hubs are never suggested as sources or targets. About pages are never suggested as targets.

## Pricing and privacy

-   Using your own TypeSafe API key the tool is free.
-   Without a key, a run is $1. That is a flat price regardless of the number of pages for simplicity.
-   Nothing is stored. Pages, text and your API key live in memory for the length of the run and are gone when the report reaches your browser.
-   With a paid run, the only record kept is the Stripe checkout log.

## Newsletter

New posts, daily by default. Change any time.

Join active subscribers
