How to use this tool

Internal Link Checker & Broken Link Finder

How to use the internal link checker

Back to the tool

One pass lists every link that stays on your site; a second pass fetches only the destinations you keep.

  1. 01

    Enter the pages whose internal links you want listed

    Single mode reads one page and runs on Enter. Switch to Bulk to paste up to 10 pages, one per line. What you paste are the pages to be read, not the links to be checked. Links to a subdomain, to another site, or to an address that cannot be fetched — mailto:, tel: — never reach the table.

  2. 02

    Watch the table fill in, page by page

    Each page is one request, and rows land as each page comes back. The table opens with six columns; Area and Rel wait behind the column button, Source page appears when you paste more than one page, and Result with Actions arrive on the first check. A single page measures itself right away, as far as the first 300 destinations — paste several and both status columns stay at — until you run the check.

  3. 03

    Drop the links that repeat on every page

    Every column header but URL, Anchor and Final URL opens the filter for its own column. Area is the one that pays here: nav and footer links sit on every page you paste, so ticking those two and then Invert leaves the links you wrote. The button below counts what the next run would fetch, after duplicates are merged.

  4. 04

    Check status in batches, and stop whenever you want

    A run covers up to 300 unique destinations in batches of 30, and the broken count above the table climbs as each batch lands. Pause keeps every measurement already taken, and the button then offers to continue with the rest. Both ends of every row belong to you, so every broken one is yours to fix.

  5. 05

    Open a row for the full chain, then take the table with you

    View on any row opens what the columns had to shorten: the page the link sits on, then the whole chain — each hop with the address it went to and the code it answered, right down to where it ends. The column button drops the columns you do not need, Copy table copies exactly the rows and columns still on screen, and Export CSV takes every column whatever the table is showing.

How to read the internal link report

Each row is one link from one of your pages to another page on the same site.

Result table columns

URL
The address this link points at, resolved against the page it sits on — a relative href and any declared base address are both applied before the row is drawn.
HTTP status
What that address answered on the first hop. A cell reading meta means the page replied in full and then pushed the reader on with a refresh tag.
Chain
The code at the far end of the chain. A badge like 2RD counts the redirects it took to get there — one hop alone shows no badge.
Final URL
Where the link really lands. A link that goes straight there reads — both here and in the column before it. A chain inside your own site is pure waste: point the href at the final address instead.

What the table says about each internal link

Type
What sits inside the tag: text, an image, or neither. The third case is the one to fix — the tag is on the page, but there is nothing to click and nothing to tell the destination what it is about.
Anchor
The clickable text, and the strongest thing you control about how the linked page is read.
Source page
Which of the pages you pasted this link was found on. The column appears only when a run covers more than one page.
Area
The landmark the link sits inside, named by its tag: header, nav, main, aside, footer. A link outside main repeats across the whole site, so one bad href shows up on every row. unknown means no landmark wraps it.
Rel
The rel tokens the tag declares, written exactly as it wrote them. Empty on almost every internal link, and that is right — a nofollow on your own page holds back the signal you meant to pass. The filter calls that empty case No rel.

Status code reference

200 OK
The page answered. It says nothing about what is on it, only that something is there.
301 Moved Permanently
The page moved for good. The link still works, but you own both ends — edit the href and the hop disappears.
404 Not Found
Nothing at that address any more. A reader who clicks it lands nowhere, and a crawler spends a request finding that out.