diff --git a/internal/frontend/imports.go b/internal/frontend/imports.go
index 0c21b8e..19af68e 100644
--- a/internal/frontend/imports.go
+++ b/internal/frontend/imports.go
@@ -10,8 +10,8 @@
 
 	"golang.org/x/pkgsite/internal"
 	"golang.org/x/pkgsite/internal/log"
-	"golang.org/x/pkgsite/internal/middleware"
 	"golang.org/x/pkgsite/internal/stdlib"
+	"golang.org/x/text/language"
 	"golang.org/x/text/message"
 )
 
@@ -125,7 +125,7 @@
 	// Display the number of importers, taking into account the number we
 	// actually retrieved, the limit on that number, and the imported-by count
 	// in the search_documents table.
-	pr := message.NewPrinter(middleware.LanguageTag(ctx))
+	pr := message.NewPrinter(language.English)
 	var (
 		display string
 		pkgword = "package"
diff --git a/internal/frontend/main.go b/internal/frontend/main.go
index d5f7689..5a0e519 100644
--- a/internal/frontend/main.go
+++ b/internal/frontend/main.go
@@ -16,9 +16,9 @@
 	"golang.org/x/pkgsite/internal/godoc"
 	"golang.org/x/pkgsite/internal/godoc/dochtml"
 	"golang.org/x/pkgsite/internal/log"
-	"golang.org/x/pkgsite/internal/middleware"
 	"golang.org/x/pkgsite/internal/middleware/stats"
 	"golang.org/x/pkgsite/internal/version"
+	"golang.org/x/text/language"
 	"golang.org/x/text/message"
 )
 
@@ -196,7 +196,7 @@
 	}
 	isTaggedVersion := versionType != version.TypePseudo
 	isStableVersion := semver.Major(um.Version) != "v0" && versionType == version.TypeRelease
-	pr := message.NewPrinter(middleware.LanguageTag(ctx))
+	pr := message.NewPrinter(language.English)
 	return &MainDetails{
 		ExpandReadme:      expandReadme,
 		Directories:       unitDirectories(append(subdirectories, nestedModules...)),
diff --git a/internal/frontend/search.go b/internal/frontend/search.go
index 8ff604a..ddc5914 100644
--- a/internal/frontend/search.go
+++ b/internal/frontend/search.go
@@ -22,10 +22,10 @@
 	"golang.org/x/pkgsite/internal"
 	"golang.org/x/pkgsite/internal/derrors"
 	"golang.org/x/pkgsite/internal/log"
-	"golang.org/x/pkgsite/internal/middleware"
 	"golang.org/x/pkgsite/internal/stdlib"
 	"golang.org/x/pkgsite/internal/version"
 	"golang.org/x/pkgsite/internal/vuln"
+	"golang.org/x/text/language"
 	"golang.org/x/text/message"
 )
 
@@ -254,7 +254,7 @@
 
 	var results []*SearchResult
 	for _, r := range dbresults {
-		sr := newSearchResult(r, searchSymbols, message.NewPrinter(middleware.LanguageTag(ctx)))
+		sr := newSearchResult(r, searchSymbols, message.NewPrinter(language.English))
 		results = append(results, sr)
 	}
 
diff --git a/internal/middleware/language.go b/internal/middleware/language.go
deleted file mode 100644
index e038e0a..0000000
--- a/internal/middleware/language.go
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2021 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 middleware
-
-import (
-	"context"
-	"net/http"
-
-	"golang.org/x/text/language"
-	"golang.org/x/text/message"
-)
-
-type tagKey struct{}
-
-var matcher = language.NewMatcher(message.DefaultCatalog.Languages())
-
-// Language is a middleware that provides browser i18n information to handlers,
-// in the form of a golang.org/x/text/language.Tag.
-func Language(h http.Handler) http.Handler {
-	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-		tag, _ := language.MatchStrings(matcher, r.Header.Get("Accept-Language"))
-		h.ServeHTTP(w, r.WithContext(context.WithValue(r.Context(), tagKey{}, tag)))
-	})
-}
-
-// LanguageTag returns the language.Tag from the context, or language.English if none is set.
-func LanguageTag(ctx context.Context) language.Tag {
-	if tag, ok := ctx.Value(tagKey{}).(language.Tag); ok {
-		return tag
-	}
-	return language.English
-}
