diff --git a/routers/web/explore/org.go b/routers/web/explore/org.go
index 7178630b64..d13271ae53 100644
--- a/routers/web/explore/org.go
+++ b/routers/web/explore/org.go
@@ -39,7 +39,11 @@ func Organizations(ctx *context.Context) {
 	)
 	sortOrder := ctx.FormString("sort")
 	if sortOrder == "" {
-		sortOrder = "newest"
+		if supportedSortOrders.Contains(setting.UI.ExploreDefaultSort) {
+			sortOrder = setting.UI.ExploreDefaultSort
+		} else {
+			sortOrder = "newest"
+		}
 		ctx.SetFormString("sort", sortOrder)
 	}
 
diff --git a/routers/web/explore/user.go b/routers/web/explore/user.go
index 15c60f546f..da5dd39f3e 100644
--- a/routers/web/explore/user.go
+++ b/routers/web/explore/user.go
@@ -149,7 +149,11 @@ func Users(ctx *context.Context) {
 	)
 	sortOrder := ctx.FormString("sort")
 	if sortOrder == "" {
-		sortOrder = "newest"
+		if supportedSortOrders.Contains(setting.UI.ExploreDefaultSort) {
+			sortOrder = setting.UI.ExploreDefaultSort
+		} else {
+			sortOrder = "newest"
+		}
 		ctx.SetFormString("sort", sortOrder)
 	}
 
diff --git a/tests/integration/explore_org_test.go b/tests/integration/explore_org_test.go
new file mode 100644
index 0000000000..e0c48ccf0d
--- /dev/null
+++ b/tests/integration/explore_org_test.go
@@ -0,0 +1,49 @@
+// Copyright 2024 The Gitea Authors. All rights reserved.
+// SPDX-License-Identifier: MIT
+
+package integration
+
+import (
+	"net/http"
+	"testing"
+
+	"code.gitea.io/gitea/modules/setting"
+	"code.gitea.io/gitea/modules/test"
+	"code.gitea.io/gitea/tests"
+
+	"github.com/stretchr/testify/assert"
+)
+
+func TestExploreOrg(t *testing.T) {
+	defer tests.PrepareTestEnv(t)()
+
+	// Set the default sort order
+	defer test.MockVariableValue(&setting.UI.ExploreDefaultSort, "alphabetically")()
+
+	cases := []struct{ sortOrder, expected string }{
+		{"", "?sort=" + setting.UI.ExploreDefaultSort + "&q="},
+		{"newest", "?sort=newest&q="},
+		{"oldest", "?sort=oldest&q="},
+		{"alphabetically", "?sort=alphabetically&q="},
+		{"reversealphabetically", "?sort=reversealphabetically&q="},
+	}
+	for _, c := range cases {
+		req := NewRequest(t, "GET", "/explore/organizations?sort="+c.sortOrder)
+		resp := MakeRequest(t, req, http.StatusOK)
+		h := NewHTMLParser(t, resp.Body)
+		href, _ := h.Find(`.ui.dropdown .menu a.active.item[href^="?sort="]`).Attr("href")
+		assert.Equal(t, c.expected, href)
+	}
+
+	// these sort orders shouldn't be supported, to avoid leaking user activity
+	cases404 := []string{
+		"/explore/organizations?sort=mostMembers",
+		"/explore/organizations?sort=leastGroups",
+		"/explore/organizations?sort=leastupdate",
+		"/explore/organizations?sort=reverseleastupdate",
+	}
+	for _, c := range cases404 {
+		req := NewRequest(t, "GET", c).SetHeader("Accept", "text/html")
+		MakeRequest(t, req, http.StatusNotFound)
+	}
+}
diff --git a/tests/integration/explore_user_test.go b/tests/integration/explore_user_test.go
index 441d89cea5..d1e3fd85af 100644
--- a/tests/integration/explore_user_test.go
+++ b/tests/integration/explore_user_test.go
@@ -7,6 +7,8 @@ import (
 	"net/http"
 	"testing"
 
+	"code.gitea.io/gitea/modules/setting"
+	"code.gitea.io/gitea/modules/test"
 	"code.gitea.io/gitea/tests"
 
 	"github.com/stretchr/testify/assert"
@@ -15,8 +17,11 @@ import (
 func TestExploreUser(t *testing.T) {
 	defer tests.PrepareTestEnv(t)()
 
+	// Set the default sort order
+	defer test.MockVariableValue(&setting.UI.ExploreDefaultSort, "reversealphabetically")()
+
 	cases := []struct{ sortOrder, expected string }{
-		{"", "?sort=newest&q="},
+		{"", "?sort=" + setting.UI.ExploreDefaultSort + "&q="},
 		{"newest", "?sort=newest&q="},
 		{"oldest", "?sort=oldest&q="},
 		{"alphabetically", "?sort=alphabetically&q="},