# No URL Left Behind (nulb)
A tool for detecting 404 errors during website migrations by checking URLs from sitemap.xml files against a new domain.
## Installation
```bash
pip install nulb
```
## Usage
```bash
nulb <sitemap_url> <old_root> <new_domain>
```
### Examples
Basic check:
```bash
nulb https://oldsite.com/sitemap.xml https://oldsite.com https://newsite.com
```
With custom delay and output file:
```bash
nulb https://example.com/sitemap.xml https://example.com https://new-example.com --delay 0.5 --output report.txt
```
Check only for 404s (skip meta comparison):
```bash
nulb https://mysite.com/sitemap.xml https://mysite.com https://newsite.com --skip-meta
```
Fast check with output file:
```bash
nulb https://blog.com/sitemap.xml https://blog.com https://newblog.com --delay 0 --output migration-check.txt
```
### Options
- `--delay SECONDS` - Delay between requests (default: 0.1)
- `--output FILE` - Save report to file
- `--skip-meta` - Check 404s only, skip meta comparison
## Requirements
- Python 3.7+
## License
MIT
## Author
[James Shakespeare](https://jshakespeare.com) (j@jshakespeare.com)
Raw data
{
"_id": null,
"home_page": "https://github.com/jshakes/no-url-left-behind",
"name": "nulb",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "url migration sitemap 404 website migration checker",
"author": "James Shakespeare",
"author_email": "j@jshakespeare.com",
"download_url": "https://files.pythonhosted.org/packages/d7/32/9b5d41245fd0b09932477329d092b6cb17e3f9c3105f65d11d489e999d89/nulb-1.0.1.tar.gz",
"platform": null,
"description": "# No URL Left Behind (nulb)\n\nA tool for detecting 404 errors during website migrations by checking URLs from sitemap.xml files against a new domain.\n\n## Installation\n\n```bash\npip install nulb\n```\n\n## Usage\n\n```bash\nnulb <sitemap_url> <old_root> <new_domain>\n```\n\n### Examples\n\nBasic check:\n```bash\nnulb https://oldsite.com/sitemap.xml https://oldsite.com https://newsite.com\n```\n\nWith custom delay and output file:\n```bash\nnulb https://example.com/sitemap.xml https://example.com https://new-example.com --delay 0.5 --output report.txt\n```\n\nCheck only for 404s (skip meta comparison):\n```bash\nnulb https://mysite.com/sitemap.xml https://mysite.com https://newsite.com --skip-meta\n```\n\nFast check with output file:\n```bash\nnulb https://blog.com/sitemap.xml https://blog.com https://newblog.com --delay 0 --output migration-check.txt\n```\n\n### Options\n\n- `--delay SECONDS` - Delay between requests (default: 0.1)\n- `--output FILE` - Save report to file\n- `--skip-meta` - Check 404s only, skip meta comparison\n\n## Requirements\n\n- Python 3.7+\n\n## License\n\nMIT\n\n## Author\n\n[James Shakespeare](https://jshakespeare.com) (j@jshakespeare.com)\n",
"bugtrack_url": null,
"license": null,
"summary": "A tool for detecting 404 errors during website migrations by checking URLs from sitemap.xml files",
"version": "1.0.1",
"project_urls": {
"Bug Reports": "https://github.com/jshakes/no-url-left-behind/issues",
"Homepage": "https://github.com/jshakes/no-url-left-behind",
"Source": "https://github.com/jshakes/no-url-left-behind"
},
"split_keywords": [
"url",
"migration",
"sitemap",
"404",
"website",
"migration",
"checker"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "d7329b5d41245fd0b09932477329d092b6cb17e3f9c3105f65d11d489e999d89",
"md5": "0a307cd5cca7007d5bb5ceae7aa76d30",
"sha256": "e0e35061bcaedc7a7382891229bad9f368a754090cbb9b3bd854b903bc136328"
},
"downloads": -1,
"filename": "nulb-1.0.1.tar.gz",
"has_sig": false,
"md5_digest": "0a307cd5cca7007d5bb5ceae7aa76d30",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 11577,
"upload_time": "2025-08-11T12:19:26",
"upload_time_iso_8601": "2025-08-11T12:19:26.638596Z",
"url": "https://files.pythonhosted.org/packages/d7/32/9b5d41245fd0b09932477329d092b6cb17e3f9c3105f65d11d489e999d89/nulb-1.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-11 12:19:26",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jshakes",
"github_project": "no-url-left-behind",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "requests",
"specs": [
[
">=",
"2.25.0"
]
]
},
{
"name": "beautifulsoup4",
"specs": [
[
">=",
"4.9.0"
]
]
},
{
"name": "lxml",
"specs": [
[
">=",
"4.6.0"
]
]
}
],
"lcname": "nulb"
}