A tool/plugin to assist with finding broken links on your wagtail site. This tool works asynchronously using celery.
Install using pip:
pip install wagtail-linkchecker
It works with Wagtail 1.0 and upwards.
To use, firstly you will need to add wagtaillinkchecker
to your INSTALLED_APPS
and run the migrations. There will now be an extra item on the settings panel of the wagtailadmin. Inside here you can enable or disable automated scanning (See below for more detail) or conduct a scan.
For scans to be conducted from the admin, you must be running a celery daemon. You can run the celery worker with celery -A my_app_name worker -l info
. See the Celery Documentation for more information. For production you'll want to run celery as a daemon using something like systemd. See Celery Daemonization for more information.
Conducting a scan will scan all of your wagtail pages, and detect all images and anchors with a src
or href
respectively. Utilising the requests
and BeautifulSoup
libraries, requests will be made to each link to make sure an appropriate response is received, and if no appropriate response is received, once the scan is complete, all broken links along with their status codes and reasons will appear.
Scan results will be stored.
If you want automated scanning to work you HAVE to set up a cron job. The cron job will need to run the management command linkchecker
at an interval of your choosing. The automated scans will do the same as manually conducting a scan, but instead will email the last person to edit the page with broken links/images.
--do-not-send-mail
Don't send an email to administrators once scan is complete.
--run-synchronously
Skip celery and run command synchronously (useful for automated scanning)
-v 2
Show more output in the logs