diff --git a/bin/keysigner b/bin/keysigner
index c62d67b92b46037275a13ca00b8b0a73e40b1a72..7b9b71e99e2225d231896e1f45788a1eee653ef8 100755
--- a/bin/keysigner
+++ b/bin/keysigner
@@ -53,6 +53,9 @@ shutdown = require('../lib/shutdown');
 // create an express server
 var app = express.createServer();
 
+// respond to health checks (before logging)
+heartbeat.setup(app);
+
 // our server will log
 app.use(express.logger({
   format: config.get('express_log_format'),
@@ -70,8 +73,6 @@ app.use(function(req, resp, next) {
 // parse POST bodies
 app.use(express.bodyParser());
 
-heartbeat.setup(app);
-
 // and our single function
 app.post('/wsapi/cert_key', validate(["email", "pubkey"]), function(req, resp) {
   // parse the pubkey
diff --git a/bin/verifier b/bin/verifier
index ef7d65dc398391cc0233abfee010b7124058a2df..3ba9a57749ac62e6782701e3ec69dc8a253a0d46 100755
--- a/bin/verifier
+++ b/bin/verifier
@@ -53,6 +53,9 @@ logger.info("verifier server starting up");
 
 var app = express.createServer();
 
+// setup health check / heartbeat (before logging)
+heartbeat.setup(app);
+
 // request to logger, dev formatted which omits personal data in the requests
 app.use(express.logger({
   format: config.get('express_log_format'),
@@ -65,12 +68,6 @@ app.use(express.logger({
 
 app.use(express.bodyParser());
 
-// shutdown when /code_update is invoked
-shutdown.installUpdateHandler(app);
-
-// setup health check / heartbeat
-heartbeat.setup(app);
-
 app.post('/verify', function(req, resp, next) {
   req.body = req.body || {}
 
@@ -103,9 +100,11 @@ app.post('/verify', function(req, resp, next) {
         rp: audience
       });
     });
-
 });
 
+// shutdown when /code_update is invoked
+shutdown.installUpdateHandler(app);
+
 // shutdown nicely on signals
 shutdown.handleTerminationSignals(app);