diff --git a/doc/source/conf.py b/doc/source/conf.py
index ccec9856a6dcafd9a9bd8c9b37abb01ba73cfdd3..891c06bc9c6c44d8848f014fd56bfbed85f97d12 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -288,8 +288,13 @@ def setup(app):
     app.add_autodocumenter(BoundMethodDocumenter)
 
 
-# IOP times out on check but the link verified and correct.
-linkcheck_ignore = [r'https://iopscience.iop.org/1367-2630/16/6/063065/article']
+# By default linkcheck only tries once, but experience has shown us that this test is
+# very non-specific for detecting dead links. Trying a few times should significantly
+# lower the probability of false positives.
+linkcheck_retries = 5
+# Some websites (particularly IoP) take a long time to respond. The combination of
+# this timeout and the retries should make this check sufficiently specific.
+linkcheck_timeout = 10
 
 nitpick_ignore = [('py:class', 'Warning'), ('py:class', 'Exception'),
                   ('py:class', 'object'), ('py:class', 'tuple'),