diff --git a/lib/bad_link_finder/link.rb b/lib/bad_link_finder/link.rb
index <HASH>..<HASH> 100644
--- a/lib/bad_link_finder/link.rb
+++ b/lib/bad_link_finder/link.rb
@@ -15,7 +15,7 @@ module BadLinkFinder
     rescue URI::InvalidURIError => exception
       record_error("This link is in a bad format", exception)
     rescue Mechanize::ResponseCodeError => exception
-      if exception.response_code.to_i == 405 && !@head_unsupported
+      if [405, 500].include?(exception.response_code.to_i)  && !@head_unsupported
         @head_unsupported = true
         retry
       else
diff --git a/test/unit/link_test.rb b/test/unit/link_test.rb
index <HASH>..<HASH> 100644
--- a/test/unit/link_test.rb
+++ b/test/unit/link_test.rb
@@ -63,6 +63,14 @@ describe BadLinkFinder::Link do
 
       assert link.valid?
     end
+
+    it "retries 500s as GET requests" do
+      stub_request(:head, "http://www.example.com/an-example-path").to_return(status: 500)
+      stub_request(:get, "http://www.example.com/an-example-path").to_return(status: 200)
+      link = build_link('/an-example-path')
+
+      assert link.valid?
+    end
   end
 
   def stub_url(url, status)
Retry <I>s as GET requests

Some servers don't like HEAD requests and will <I> so we retry any
<I>s as GET requests to reduce the number of false positives.