String Utilities 工具已更新 2 天前

Markdown Broken Link Checker

Scan Markdown for inline, reference and bare http links, then check each one from the server. Review statuses, errors and a downloadable JSON report.

Private and local addresses are rejected. Requests are sequential, and a 403 or timeout can be a bot block rather than a dead link.

永久免费 易于使用 立竿见影的效果 私密且安全

使用 Markdown Broken Link Checker

Markdown 断链检测器

检查 Markdown 链接是否与实际 URL 匹配,并针对失效、重定向和可访问的链接返回相应的 HTTP 状态码。

输入 Markdown

粘贴包含链接和引用定义的 Markdown 内容
链接由服务器进行检查,因此能够可靠地检测到状态码和网络错误。
尚未核对
查看状态
0 个问题
已检查存在问题的链接

结果

检查了链接、HTTP状态和错误
正文 URL 状态 结果
尚未进行任何检查。
跳棋小贴士
该工具会发送服务器端的 HTTP 请求,因此可以报告 Markdown 链接的状态码(如 200、301、404)以及连接错误。

阅读内容

了解该工具的工作原理以及何时使用它。

Markdown Broken Link Checker

What the link checker does

This page scans Markdown for links and checks whether they are reachable. It finds inline links, reference-style links and bare http or https URLs, skips fenced code blocks, removes duplicates and requests each address from the server. The result is a table with the link text, URL, HTTP status and any error. You can copy or download a JSON report. It is a reachability check, not a guarantee that the destination contains the right content.

Which links are checked

Inline links such as a label followed by a URL in parentheses are supported. Reference-style links that use a separate definition are also supported, and bare http or https URLs in the text are picked up. Links inside fenced code are skipped so examples do not create false failures. Relative links, mail links, anchors and other non-http schemes are never requested; inline ones are still listed in the report with a validation error so you can review them. Deduplication means the same URL is requested once even if it appears many times.

How the server checks a link

The server sends an HTTP GET request with a browser user agent, follows up to five redirects, and uses a 15-second total timeout with a 5-second connection timeout. Requests are made one at a time. That is gentle on remote hosts but slow for a document with hundreds of links. A 200 status is treated as reachable; redirects and error codes are reported. Some sites block automated requests even when the page works in a browser.

Private and local addresses are rejected

The checker refuses non-http schemes, localhost names, private IP ranges and reserved addresses. This protects the server from being used to probe an internal network. If you need to check a staging site behind a firewall, this page is not the right tool. Use a local link checker that runs inside your network. A rejected address will appear as an issue rather than a successful response.

Reading the status table

The table shows each URL, its status and an error message when the request fails. A 200 means the server responded successfully. A 301 or 302 means a redirect was followed; the final response may still be an error. A 403 often means the site blocked the request, not that the link is dead. A timeout can be a slow host or a network problem. Investigate the reason before deleting a link.

False positives and false negatives

A link can be reported as broken when the host blocks bots, requires JavaScript or returns a challenge page. A link can be reported as working when it redirects to a generic home page or a soft 404. The checker does not read the page content or compare it with the link text. Use the report as a starting point, then open the questionable links in a browser and confirm what the reader will see.

How to use it

Paste the Markdown into the editor. Press the check button. Wait for the sequential requests to finish; a long document can take a while. Review the issue count and the table. Copy the raw JSON or download it as markdown-link-issues.json if you need to track the results. Fix the Markdown and run the check again. The page does not edit your document automatically.

Limits and performance

The input limit is 200,000 characters. The server checks links sequentially, so the total time grows with the number of URLs. The 15-second timeout applies to each request, which means a few slow hosts can make the whole run feel stuck. Very large documents should be split or checked with a local tool that can run requests in parallel. The page does not cache results between runs.

Privacy and server requests

The Markdown is sent to the Newisty server, and the server contacts each URL. That means the destination hosts see a request from Newisty, not from your browser. Do not paste private documents or links that contain tokens, signed URLs or internal addresses. For confidential material, run a link checker locally and keep the requests inside your own environment.

Common problems

If every link fails, the server may be unable to reach the network or the sites may block it. If a known-good link fails, try it in a browser and check for a bot challenge. If the run is slow, reduce the number of links or split the document. If a link is missing from the report, confirm that it is not inside a code fence or written as a relative path. If the JSON is empty, check that the input contains at least one supported URL.

When to use it

Use it before publishing documentation, a README or a blog post with many external references. It is a quick way to find typos and dead destinations. It is not a full site crawler, a spelling checker or a replacement for manual review. For a documentation site with hundreds of internal links, use a build-time link checker that understands the site's routes and can run in continuous integration.

What not to do

Do not assume a 403 means the page is gone. Do not paste private URLs or signed links. Do not use the checker to probe internal systems. Do not delete a link solely because an automated request failed. Do not expect it to validate anchors or relative paths. Do not run it on a huge document and assume the first timeout is a permanent failure.

Working with redirects

The checker follows up to five redirects, so a shortened URL or a moved page can still pass. The final status is what matters, not the first response. If a redirect chain loops or exceeds the limit, the request fails. For documentation, update the link to the final destination when you can. A permanent redirect may work today, but it can be removed later. Record the final URL in the report so the next review has a clearer target.

How links are picked out of your Markdown

Knowing exactly what the extractor matches explains most surprises in the results table. The server makes three passes over every part of the document that is outside a fenced code block:

  1. Inline links written as [text](url), with or without a quoted title after the URL. Image syntax with a leading exclamation mark is skipped in this pass.
  2. Reference links written as [text][ref] or the collapsed form [text][]. The reference name is matched against the definitions in the document without regard to case. A reference with no matching definition is silently ignored, and a definition that nothing uses is not checked. The shortcut form, a plain [text] on its own, is not recognised.
  3. Bare URLs that begin with http:// or https:// anywhere in the text. This pass also picks up the address inside image syntax, so image URLs are checked too; they appear in the table with the URL in place of link text.

Each address is checked once. The duplicate test ignores case, so two links that differ only in capital letters count as one row.

Rows that look broken but are not dead links

Some issues in the report come from the way a link was written rather than from the destination:

  • Relative paths, anchors and mail links. These are never requested, but an inline link such as [guide](./guide.md) or [top](#intro) still gets a row, marked as an issue with a message asking for a valid URL. Treat those rows as "not checkable here", not as broken.
  • Empty targets. A link written as [text]() is reported with the error "Empty URL". That one is a real mistake worth fixing.
  • Parentheses in the URL. The address stops at the first closing bracket, so a link such as a Wikipedia page whose title contains brackets is cut short and may come back as a 404. Encode the brackets as %28 and %29 and check again; most sites accept the encoded form.
  • Trailing punctuation on bare URLs. A comma or full stop that ends a sentence is taken as part of the address. Put bare URLs in angle brackets or turn them into proper links.
  • Spaces in an inline URL. A link whose address contains a space is not matched at all, so it will be missing from the report.

A row is marked OK when the final response has a status from 200 to 399. Everything else, including a request that never got a status code, counts toward the issue total shown in the status panel.

Frequently Asked Questions

常见问题解答

针对用户在信任结果之前常提出的疑问,提供简短解答。

No. It checks http and https URLs. Relative paths, anchors, mail links and other schemes are not requested. Use a site-aware link checker for internal routes.

The site may block automated requests, require JavaScript or return a challenge page. A 403 or timeout is not proof that the page is gone. Open it in a browser to confirm.

No. The server rejects localhost, private IP ranges and reserved addresses to avoid network probing. Use a local checker for internal or staging links.

Requests are sequential, with a 15-second total timeout and a 5-second connection timeout per link. A document with many links can take a while, especially if some hosts are slow.

It lists the links and their status or error results, along with an issue count. You can copy it or download markdown-link-issues.json for tracking.

Yes. The text is sent to the server, and the server contacts each URL. Do not paste private documents, tokens or signed links unless you accept that handling.

No. It only checks whether the server responds. A redirect to a generic page or a soft 404 can look successful. Confirm important links manually.

Relative paths and anchors are not requested, but inline links that use them are still listed, with an error asking for a valid URL. Read those rows as "not checkable here" and test them in your site build instead.

Yes, if they start with http or https. Image syntax is skipped as a link, but the bare-URL pass still picks up the image address and checks it like any other URL.

Any final status from 200 to 399 is marked OK. Statuses of 400 and above, errors and requests with no status code are counted as issues.

评论 (0)

用于用户讨论、边界情况及后续建议。
发表评论
您的评论提交后将公开展示。
目前尚无评论。快来发表第一条评论吧!
请告诉我们!
报告此工具的问题

请描述您遇到的问题,以便我们进行调查并改进该工具。

什么最有帮助
请提供输入内容、预期结果、实际结果、浏览器/设备信息,如有帮助,请附上截图。
“截图”按钮会截取浏览器中的页面,并将生成的图片作为附件添加到此表单中。
整页截图
通过 newisty 在您的浏览器中捕获。
尚未截取屏幕截图。
工具 报告