diff --git a/installation/pleroma.nginx b/installation/pleroma.nginx
index 9890cb2b1965e5550dfa8b81610c26e55aebdcbe..273cfb390aa7e3192f367a5e4ad337a048f95991 100644
--- a/installation/pleroma.nginx
+++ b/installation/pleroma.nginx
@@ -81,6 +81,19 @@ server {
         proxy_pass http://phoenix;
     }
 
+    # Uncomment this if you want notice compatibility routes for frontends like Soapbox.
+    # location ~ ^/@[^/]+/([^/]+)$ {
+    #     proxy_pass http://phoenix/notice/$1;
+    # }
+    #
+    # location ~ ^/@[^/]+/posts/([^/]+)$ {
+    #     proxy_pass http://phoenix/notice/$1;
+    # }
+    #
+    # location ~ ^/[^/]+/status/([^/]+)$ {
+    #     proxy_pass http://phoenix/notice/$1;
+    # }
+
     location ~ ^/(media|proxy) {
         proxy_cache        pleroma_media_cache;
         slice              1m;
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index 7bbc2027591ec02408db93b48e91431cacb6f4be..ac3de8af3c54186959df16392cf0168514a38b58 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -678,11 +678,6 @@ defmodule Pleroma.Web.Router do
     get("/activities/:uuid", OStatus.OStatusController, :activity)
     get("/notice/:id", OStatus.OStatusController, :notice)
 
-    # Notice compatibility routes for other frontends
-    get("/@:nickname/:id", OStatus.OStatusController, :notice)
-    get("/@:nickname/posts/:id", OStatus.OStatusController, :notice)
-    get("/:nickname/status/:id", OStatus.OStatusController, :notice)
-
     # Mastodon compatibility routes
     get("/users/:nickname/statuses/:id", OStatus.OStatusController, :object)
     get("/users/:nickname/statuses/:id/activity", OStatus.OStatusController, :activity)
diff --git a/lib/pleroma/web/static_fe/static_fe_controller.ex b/lib/pleroma/web/static_fe/static_fe_controller.ex
index b20a3689c361fc413fb375a99a36889e5d80aef7..97c41c6f9c174b19058806f41975bdb6cd9a8b7c 100644
--- a/lib/pleroma/web/static_fe/static_fe_controller.ex
+++ b/lib/pleroma/web/static_fe/static_fe_controller.ex
@@ -167,15 +167,6 @@ defp represent(%Activity{object: %Object{data: data}} = activity, selected) do
   defp assign_id(%{path_info: ["notice", notice_id]} = conn, _opts),
     do: assign(conn, :notice_id, notice_id)
 
-  defp assign_id(%{path_info: ["@" <> _nickname, notice_id]} = conn, _opts),
-    do: assign(conn, :notice_id, notice_id)
-
-  defp assign_id(%{path_info: ["@" <> _nickname, "posts", notice_id]} = conn, _opts),
-    do: assign(conn, :notice_id, notice_id)
-
-  defp assign_id(%{path_info: [_nickname, "status", notice_id]} = conn, _opts),
-    do: assign(conn, :notice_id, notice_id)
-
   defp assign_id(%{path_info: ["users", user_id]} = conn, _opts),
     do: assign(conn, :username_or_id, user_id)
 
diff --git a/test/pleroma/web/o_status/o_status_controller_test.exs b/test/pleroma/web/o_status/o_status_controller_test.exs
index 5abbcfbdcffcd5a0dc41a95b40e5f7656f07f1c9..36e581f5eee61b05f34ac858d81d1b8f8119fc74 100644
--- a/test/pleroma/web/o_status/o_status_controller_test.exs
+++ b/test/pleroma/web/o_status/o_status_controller_test.exs
@@ -343,54 +343,4 @@ test "does not require authentication on non-federating instances", %{
       |> response(200)
     end
   end
-
-  describe "notice compatibility routes" do
-    test "Soapbox FE", %{conn: conn} do
-      user = insert(:user)
-      note_activity = insert(:note_activity, user: user)
-
-      resp =
-        conn
-        |> put_req_header("accept", "text/html")
-        |> get("/@#{user.nickname}/posts/#{note_activity.id}")
-        |> response(200)
-
-      expected =
-        "<meta content=\"#{Endpoint.url()}/notice/#{note_activity.id}\" property=\"og:url\">"
-
-      assert resp =~ expected
-    end
-
-    test "Mastodon", %{conn: conn} do
-      user = insert(:user)
-      note_activity = insert(:note_activity, user: user)
-
-      resp =
-        conn
-        |> put_req_header("accept", "text/html")
-        |> get("/@#{user.nickname}/#{note_activity.id}")
-        |> response(200)
-
-      expected =
-        "<meta content=\"#{Endpoint.url()}/notice/#{note_activity.id}\" property=\"og:url\">"
-
-      assert resp =~ expected
-    end
-
-    test "Twitter", %{conn: conn} do
-      user = insert(:user)
-      note_activity = insert(:note_activity, user: user)
-
-      resp =
-        conn
-        |> put_req_header("accept", "text/html")
-        |> get("/#{user.nickname}/status/#{note_activity.id}")
-        |> response(200)
-
-      expected =
-        "<meta content=\"#{Endpoint.url()}/notice/#{note_activity.id}\" property=\"og:url\">"
-
-      assert resp =~ expected
-    end
-  end
 end
diff --git a/test/pleroma/web/plugs/frontend_static_plug_test.exs b/test/pleroma/web/plugs/frontend_static_plug_test.exs
index a91e24c49d890b3dcaa855784fc29d7d884e0052..ab31c5f228b46263751e28574cd55b4252ca2ea6 100644
--- a/test/pleroma/web/plugs/frontend_static_plug_test.exs
+++ b/test/pleroma/web/plugs/frontend_static_plug_test.exs
@@ -86,8 +86,6 @@ test "api routes are detected correctly" do
       "objects",
       "activities",
       "notice",
-      "@:nickname",
-      ":nickname",
       "users",
       "tags",
       "mailer",