diff --git a/app/goplay/compile.go b/app/goplay/compile.go
index be1e3e7..f5bed89 100644
--- a/app/goplay/compile.go
+++ b/app/goplay/compile.go
@@ -16,7 +16,7 @@
 const runUrl = "http://golang.org/compile?output=json"
 
 func init() {
-	http.HandleFunc("/compile", compile)
+	http.Handle("/compile", hstsHandler(compile))
 }
 
 func compile(w http.ResponseWriter, r *http.Request) {
diff --git a/app/goplay/edit.go b/app/goplay/edit.go
index ce29a78..c7e2cbb 100644
--- a/app/goplay/edit.go
+++ b/app/goplay/edit.go
@@ -16,7 +16,7 @@
 const hostname = "play.golang.org"
 
 func init() {
-	http.HandleFunc("/", edit)
+	http.Handle("/", hstsHandler(edit))
 }
 
 var editTemplate = template.Must(template.ParseFiles("goplay/edit.html"))
diff --git a/app/goplay/fmt.go b/app/goplay/fmt.go
index a862343..b6842f3 100644
--- a/app/goplay/fmt.go
+++ b/app/goplay/fmt.go
@@ -13,7 +13,7 @@
 )
 
 func init() {
-	http.HandleFunc("/fmt", fmtHandler)
+	http.Handle("/fmt", hstsHandler(fmtHandler))
 }
 
 type fmtResponse struct {
diff --git a/app/goplay/hsts.go b/app/goplay/hsts.go
new file mode 100644
index 0000000..c0927d2
--- /dev/null
+++ b/app/goplay/hsts.go
@@ -0,0 +1,15 @@
+// Copyright 2016 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package goplay
+
+import "net/http"
+
+// hstsHandler wraps an http.HandlerFunc such that it sets the HSTS header.
+func hstsHandler(fn http.HandlerFunc) http.Handler {
+	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+		w.Header().Set("Strict-Transport-Security", "max-age=31536000; preload")
+		fn(w, r)
+	})
+}
diff --git a/app/goplay/play.go b/app/goplay/play.go
index b8257f1..e4c6c54 100644
--- a/app/goplay/play.go
+++ b/app/goplay/play.go
@@ -12,7 +12,7 @@
 )
 
 func init() {
-	http.HandleFunc("/playground.js", play)
+	http.Handle("/playground.js", hstsHandler(play))
 }
 
 func play(w http.ResponseWriter, r *http.Request) {
diff --git a/app/goplay/share.go b/app/goplay/share.go
index 72fca10..fc0fe3e 100644
--- a/app/goplay/share.go
+++ b/app/goplay/share.go
@@ -35,7 +35,7 @@
 }
 
 func init() {
-	http.HandleFunc("/share", share)
+	http.Handle("/share", hstsHandler(share))
 }
 
 func share(w http.ResponseWriter, r *http.Request) {
