mkdocs-htmlproofer-plugin
A MkDocs plugin that validates URL in rendered HTML files
What it is and what it does
This plugin integrates into MkDocs to automatically check that all URLs and anchors in your rendered HTML documentation are valid. It can validate internal anchor links, external URLs, or both, and optionally fail your build if broken links are found. You configure it in mkdocs.yml with options to ignore specific URLs or pages, retry failed requests, and control concurrency via worker threads.
The plugin uses requests to fetch remote content and beautifulsoup4 to parse HTML and extract links. It supports wildcard patterns for excluding URLs and pages, environment variable configuration for toggling during local development, and detailed error reporting. Since MkDocs 1.6+ added native anchor validation, this plugin is most useful if you need external URL checking or more granular control over link validation behavior.
Use it for:
- Validate all internal anchor links in a large documentation site before deployment.
- Check external URLs in documentation to catch link rot and broken references.
- Fail CI/CD builds when documentation contains broken links, enforcing link quality.
- Validate documentation templates and rendered output including headers and footers.
- Exclude known-problematic URLs (private services, rate-limited APIs) while checking the rest.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A MkDocs plugin that validates URLs and anchors in rendered HTML files, checking both internal links and external URLs for correctness.
Yes, if you need external URL validation in MkDocs or want build-time link checking with fine-grained control. The plugin is actively maintained, has no vulnerabilities, and installs with low friction. However, if you only need anchor validation and are on MkDocs 1.6+, consider using MkDocs' native validation instead. Useful for documentation quality gates in CI/CD pipelines.
Install
mkdocs-htmlproofer-plugin on PyPI
pip
pip install mkdocs-htmlproofer-pluginuv
uv add mkdocs-htmlproofer-pluginpoetry
poetry add mkdocs-htmlproofer-pluginInstalling mkdocs-htmlproofer-plugin
Before you install
Low friction: pure Python wheel with four runtime dependencies (mkdocs, Markdown, requests, beautifulsoup4). Actively maintained as of 2026-02-23 with no known vulnerabilities.
License in practice
MIT license (permissive); you can use, modify, and distribute this plugin freely in both open-source and proprietary projects with minimal restrictions.
Quickstart
pip install mkdocs-htmlproofer-plugin
# In mkdocs.yml:
plugins:
- search
- htmlproofer:
raise_error_after_finish: true
Requires Python >= 3.10 and MkDocs >= 1.4.0; note that MkDocs 1.6+ has native anchor validation, which may overlap with this plugin's functionality.
Verify before relying
- Performance impact when validating large documentation sites with many external URLs.
- How the plugin handles rate limiting or throttling on external URL checks.
- Specific behavior when encountering redirects (301, 302, etc.) during URL validation.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — mkdocs, Markdown, requests, beautifulsoup4 |
| Maintenance | actively maintained — 172 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 96,906/month — #13,186 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mkdocs_htmlproofer_plugin-1.5.0-py3-none-any.whl
Keywords: mkdocs, python, markdown
Tags
More Quality Assurance packages
Coverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
ruffRuff is a Python linter and code formatter…
permissive · top 1,000 on PyPI
pexpectPexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
blackBlack reformats Python source code to a…
permissive · top 1,000 on PyPI
pytest-xdistpytest-xdist distributes pytest tests across…
permissive · top 1,000 on PyPI
cfn-lintValidates AWS CloudFormation templates in YAML…
permissive · top 1,000 on PyPI
mkdocs-autorefsA MkDocs plugin that automatically creates…
permissive · top 5,000 on PyPI
mkdocs-videoA MkDocs plugin that embeds videos in…
permissive · top 15,000 on PyPI
mkdocs-include-markdown-pluginA MkDocs plugin that includes content from…
permissive · top 15,000 on PyPI
mkdocs-redirectsA MkDocs plugin that generates HTTP redirects…
permissive · top 5,000 on PyPI
mkdocs-excludeA mkdocs plugin that excludes files and…
permissive · top 15,000 on PyPI
mkdocs-macros-pluginExtends MkDocs with Jinja2 templating to use…
permissive · top 5,000 on PyPI
mkdocs-rss-pluginGenerates RSS 2.0 and JSON Feed 1.1 feeds for…
permissive · top 15,000 on PyPI
mkdocs-plugin-inline-svgA MkDocs plugin that replaces SVG image…
permissive · top 15,000 on PyPI
mkdocs-git-revision-date-pluginAdds a Git-based revision date to MkDocs…
permissive · top 15,000 on PyPI
mkdocsMkDocs generates static HTML documentation…
permissive · top 5,000 on PyPI