Links
EPUB Link Checker
Upload an EPUB to check every link inside it: links and images on each page, the navigation document, and the EPUB 2 NCX table of contents. Each link is resolved from the file it sits in, the target file is looked up in the book, and #anchors are checked against the ids in the target page. External web links are listed but not visited. Export the full list as a text report.
Written by Jay Sudha · Published · Last updated
Input formats
Output formats
Common uses
- Find broken footnote links in a converted EPUB
- Check that all chapter cross-references work
- Verify table of contents links point to existing chapters
- Check that footnote anchors still exist after editing or splitting chapters
Limitations
- External URLs are listed but not visited, so a dead web address is not detected.
- JavaScript-based navigation is not followed.
- References inside stylesheets, such as fonts and background images, are not checked.
Your e-book files, handled privately
This tool runs entirely in your browser. On this site, your files are not uploaded to a server. This tool does not remove DRM or bypass copyright protection. Only upload files you own or have permission to process.
When a link check earns its place in your EPUB workflow
The EPUB Link Checker is built for the moment after you have produced an EPUB and need to know whether its navigation holds together. It reads the file in your browser, walks every page, the navigation document and the NCX, and reports which links, anchors and images point at something that really exists inside the book. Nothing is uploaded; the EPUB is unpacked and inspected locally, and the results disappear when you close the tab.
It suits authors and publishers preparing a store submission, where a footnote that jumps nowhere is a defect readers notice, and conversions from Word, InDesign or Markdown, where relative paths and cross-references quietly break.
The same scan helps when you inherit an EPUB from someone else, or pull an older title out of an archive and want to confirm its links and embedded images still resolve before you reuse or redistribute it.
What happens when you drop a file in
The flow is one step: drop or select a single .epub file. The tool unzips it, reads the package, and opens each page listed in the spine, then the navigation document and the NCX. From each it collects link targets (href on <a> and <area>), image sources (src on <img>, and href or xlink:href on SVG <image>), and table-of-contents targets. Results appear grouped into broken, external and valid, and the full list can be exported as a plain-text report.
Each internal link is resolved relative to the file it sits in, so ../Images/fig.png from a page in Text/ points at Images/fig.png. A link is broken when the target file is not in the book, or when it names an anchor, such as chapter2.xhtml#section4 or #note3, and the target page has no element with that id. A target that exists in the ZIP but is missing from the manifest is flagged as a warning, since some readers only load listed files. Links that start with a scheme such as http://, https:// or mailto:, and protocol-relative // links, are listed as external and not visited, and DRM-protected files are refused.
What it does not do: it does not follow JavaScript-driven navigation, does not fetch or validate external URLs, and does not check references inside stylesheets, such as fonts or background images.
Where it can mislead you if you are not careful
A valid result means the target file and anchor exist, not that the link lands where the author meant. A footnote link that points at the wrong note, or a table-of-contents entry with the wrong label, passes as long as its target exists. Spot-check a few links in a real reader.
Anchor ids are matched exactly, including case, so #Note3 and #note3 are different targets; ids are looked up in id attributes and in the legacy name attribute on <a>. A long book can produce a large list: the screen shows the first 50 problems, and Show all or the downloaded report gives the complete picture.
External links shown as unverified are neither failures nor guarantees; the tool cannot tell a live URL from a dead one, so check them by hand. Only check files you own or have permission to inspect.
Checking the report before you act on it
Start with the broken links: open each source file in your editor, confirm the target path or anchor is really wrong, then correct the relative path, restore the missing file, or add the missing id. Next, add any files flagged as missing from the manifest to the package. Then work through the external list by hand, opening the URLs to confirm they still resolve.
Re-run the scan after edits and aim for zero broken links, then preview the book in an actual e-reader to confirm the navigation feels right rather than merely passing a structural check. The text report is a useful record to keep alongside the file as you iterate.
For a regulated or reference publication, check the affected links in your reading software too.
Frequently asked questions
The href of <a> and <area> elements, the src of <img> elements, and the href or xlink:href of SVG <image> elements on every page, plus the links in the navigation document and the NCX table of contents. Each is resolved relative to the file it sits in. Links that start with a scheme such as http://, https:// or mailto: are listed as external but not verified.
Verifying external http:// and https:// links would require sending network requests to each site. This tool runs in your browser and focuses on internal references, so external links are listed in the report but their availability is not tested. Check them in a browser if needed.
A link can point to a specific spot inside a file using a fragment, such as chapter2.xhtml#section3. If no element with id="section3" exists in chapter2.xhtml, the anchor target is broken, the link resolves to the file but not to the intended position. This is common after editing or splitting chapters, and the checker reports it as broken.
The target file is in the ZIP, but the package's manifest does not list it. Some readers only load files the manifest lists, so the link can fail there. Add the file to the manifest to fix it.
No. The EPUB is read and scanned for links in your browser. On this site, your files are not uploaded to our servers; the link report is generated on your device.
Related tools
Tool last reviewed: September 27, 2026 · Report a problem