Broken links are bad for business or reputation. Most visitors consider stale hyperlinks to be a sign of laziness, carelessness and disrespect them. Unfortunately, if you have a large website with thousands of external links or let say a VLE with hundreds of courses and lots of external references, it's really hard to identify what external links became dead, and it's even harder to fix them because you need to know the exact location of the broken links.
I am going to give you a possible solution specially designed for our Moodle site, but you can use it on other websites as well. It is not perfect and it needs some human supervision (not 100% automated), but it is free and pretty much customisable.
I would like to give you some idea how to find anomalies within your courses.
To be able to do that, you need access to your database and run some SQL reports. Probably the simplest way is to use the Configurable Reports block. I am not going to teach you how to use that block. I am not going to teach you how to write SQL scripts. But I am going to give you a few examples and the very basics, so if you have a bare minimal SQL knowledge and if you are not afraid to experiment, you will be fine. I am going to give you the SQL code with a brief explanation, so you can modify the code to match your own needs. Obviously I am going to start with a very simple one, don't worry.