diff --git a/compiler/GHC/Driver/Flags.hs b/compiler/GHC/Driver/Flags.hs
index 0aadea7c3d38e666a22d44547db496d3ca7b9a2f..a819caf7a0d3996a613e5ad574db3dff15ccf34a 100644
--- a/compiler/GHC/Driver/Flags.hs
+++ b/compiler/GHC/Driver/Flags.hs
@@ -623,7 +623,7 @@ data WarningFlag =
    | Opt_WarnRedundantRecordWildcards
    | Opt_WarnDeprecatedFlags
    | Opt_WarnMissingMonadFailInstances               -- since 8.0, has no effect since 8.8
-   | Opt_WarnSemigroup                               -- since 8.0
+   | Opt_WarnSemigroup                               -- since 8.0, has no effect since 9.8
    | Opt_WarnDodgyExports
    | Opt_WarnDodgyImports
    | Opt_WarnOrphans
@@ -1002,8 +1002,7 @@ minusWeverythingOpts = [ toEnum 0 .. ]
 -- code future compatible to fix issues before they even generate warnings.
 minusWcompatOpts :: [WarningFlag]
 minusWcompatOpts
-    = [ Opt_WarnSemigroup
-      , Opt_WarnNonCanonicalMonoidInstances
+    = [ Opt_WarnNonCanonicalMonoidInstances
       , Opt_WarnNonCanonicalMonadInstances
       , Opt_WarnCompatUnqualifiedImports
       , Opt_WarnTypeEqualityOutOfScope
diff --git a/compiler/GHC/Driver/Session.hs b/compiler/GHC/Driver/Session.hs
index 6f330707bb9dc6a0d676125de8c42fcc864c2572..f700610037eda444eac3b396ccc9a4a892ea0e06 100644
--- a/compiler/GHC/Driver/Session.hs
+++ b/compiler/GHC/Driver/Session.hs
@@ -2215,7 +2215,7 @@ wWarningFlagsDeps = [minBound..maxBound] >>= \x -> case x of
   Opt_WarnMissingMethods -> warnSpec x
   Opt_WarnMissingMonadFailInstances
     -> depWarnSpec x "fail is no longer a method of Monad"
-  Opt_WarnSemigroup -> warnSpec x
+  Opt_WarnSemigroup -> depWarnSpec x "Semigroup is now a superclass of Monoid"
   Opt_WarnMissingSignatures -> warnSpec x
   Opt_WarnMissingKindSignatures -> warnSpec x
   Opt_WarnMissingPolyKindSignatures -> warnSpec x
diff --git a/docs/users_guide/using-warnings.rst b/docs/users_guide/using-warnings.rst
index 720d3114e341f764aa81133ce6d25cadfae8e2a3..c759bed50fea59b39b3c3df0cc616143e6697fb2 100644
--- a/docs/users_guide/using-warnings.rst
+++ b/docs/users_guide/using-warnings.rst
@@ -165,7 +165,6 @@ as ``-Wno-...`` for every individual warning in the group.
     .. hlist::
         :columns: 3
 
-        * :ghc-flag:`-Wsemigroup`
         * :ghc-flag:`-Wnoncanonical-monoid-instances`
         * :ghc-flag:`-Wnoncanonical-monad-instances`
         * :ghc-flag:`-Wcompat-unqualified-imports`
@@ -654,8 +653,9 @@ of ``-W(no-)*``.
     a ``MonadFail`` instance.
 
 .. ghc-flag:: -Wsemigroup
-    :shortdesc: warn when a ``Monoid`` is not ``Semigroup``, and on non-
-        ``Semigroup`` definitions of ``(<>)``?
+    :shortdesc: *(deprecated)*
+        Warn when a ``Monoid`` is not ``Semigroup``, and on non-``Semigroup``
+        definitions of ``(<>)``
     :type: dynamic
     :reverse: -Wno-semigroup
     :category:
@@ -665,15 +665,11 @@ of ``-W(no-)*``.
     .. index::
        single: semigroup; warning
 
-    Warn when definitions are in conflict with the future inclusion of
-    ``Semigroup`` into the standard typeclasses.
-
-     1. Instances of ``Monoid`` should also be instances of ``Semigroup``
-     2. The ``Semigroup`` operator ``(<>)`` will be in ``Prelude``, which
-        clashes with custom local definitions of such an operator
-
-    Being part of the :ghc-flag:`-Wcompat` option group, this warning is off by
-    default, but will be switched on in a future GHC release.
+    This warning is deprecated. It no longer has any effect since GHC 9.8.
+    It was used during the transition period of the semigroup proposal,
+    to warn when an instance of ``Monoid`` was not an instance of ``Semigroup``,
+    or when a custom local operator ``(<>)`` could clash with `(<>)`,
+    now exported from ``Prelude``.
 
 .. ghc-flag:: -Wdeprecated-flags
     :shortdesc: warn about uses of commandline flags that are deprecated
diff --git a/testsuite/tests/ghci/scripts/ghci024.stdout b/testsuite/tests/ghci/scripts/ghci024.stdout
index e82226aff141c55eb9bd76bd635db0d62b72d7e4..8af7066534f9c91b4ba58ae1cb130efe7ae926b1 100644
--- a/testsuite/tests/ghci/scripts/ghci024.stdout
+++ b/testsuite/tests/ghci/scripts/ghci024.stdout
@@ -16,7 +16,6 @@ other dynamic, non-language, flag settings:
   -fprefer-byte-code
   -fbreak-points
 warning settings:
-  -Wsemigroup
   -Wcompat-unqualified-imports
   -Wtype-equality-out-of-scope
   -Wimplicit-rhs-quantification
diff --git a/testsuite/tests/ghci/scripts/ghci024.stdout-mingw32 b/testsuite/tests/ghci/scripts/ghci024.stdout-mingw32
index c7658f986c2f80fbeb3831f63e99838512b7bcc3..8914a08aeefca96f6b4ae64b50549e8829f027a3 100644
--- a/testsuite/tests/ghci/scripts/ghci024.stdout-mingw32
+++ b/testsuite/tests/ghci/scripts/ghci024.stdout-mingw32
@@ -15,7 +15,6 @@ other dynamic, non-language, flag settings:
   -fprefer-byte-code
   -fbreak-points
 warning settings:
-  -Wsemigroup
   -Wcompat-unqualified-imports
   -Wtype-equality-out-of-scope
   -Wimplicit-rhs-quantification
diff --git a/testsuite/tests/wcompat-warnings/Template.hs b/testsuite/tests/wcompat-warnings/Template.hs
index 86c1449c6405d9ea8cd6fb99b0c7b573290ccf45..1a6c328f6c0428406fe0d17af9b0f7148b9f7ee7 100644
--- a/testsuite/tests/wcompat-warnings/Template.hs
+++ b/testsuite/tests/wcompat-warnings/Template.hs
@@ -2,8 +2,6 @@ module WCompatWarningsOnOff where
 
 import qualified Data.Semigroup as Semi
 
-(<>) = undefined -- Semigroup warnings
-
 -- -fwarn-noncanonical-monoid-instances
 newtype S = S Int
 
diff --git a/testsuite/tests/wcompat-warnings/WCompatWarningsOn.stderr b/testsuite/tests/wcompat-warnings/WCompatWarningsOn.stderr
index 4ef1b425b1198d2e6dda5fa5e5d9665e398a43ce..db1e5c990979db2f885657c75cdf2465013d3f93 100644
--- a/testsuite/tests/wcompat-warnings/WCompatWarningsOn.stderr
+++ b/testsuite/tests/wcompat-warnings/WCompatWarningsOn.stderr
@@ -1,12 +1,12 @@
 
-Template.hs:11:3: warning: [GHC-50928] [-Wnoncanonical-monoid-instances (in -Wdefault, -Wcompat)]
+Template.hs:9:3: warning: [GHC-50928] [-Wnoncanonical-monoid-instances (in -Wdefault, -Wcompat)]
     Noncanonical ‘(<>) = mappend’ definition detected
     in the instance declaration for ‘Semigroup S’.
     Suggested fix:
       Move definition from ‘mappend’ to ‘(<>)’
       See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/semigroup-monoid
 
-Template.hs:14:3: warning: [GHC-50928] [-Wnoncanonical-monoid-instances (in -Wdefault, -Wcompat)]
+Template.hs:12:3: warning: [GHC-50928] [-Wnoncanonical-monoid-instances (in -Wdefault, -Wcompat)]
     Noncanonical ‘mappend’ definition detected
     in the instance declaration for ‘Monoid S’.
     ‘mappend’ will eventually be removed in favour of ‘(<>)’
@@ -14,21 +14,21 @@ Template.hs:14:3: warning: [GHC-50928] [-Wnoncanonical-monoid-instances (in -Wde
       Either remove definition for ‘mappend’ (recommended) or define as ‘mappend = (<>)’
       See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/semigroup-monoid
 
-Template.hs:24:3: warning: [GHC-22705] [-Wnoncanonical-monad-instances (in -Wdefault, -Wcompat)]
+Template.hs:22:3: warning: [GHC-22705] [-Wnoncanonical-monad-instances (in -Wdefault, -Wcompat)]
     Noncanonical ‘pure = return’ definition detected
     in the instance declaration for ‘Applicative M’.
     Suggested fix:
       Move definition from ‘return’ to ‘pure’
       See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return
 
-Template.hs:25:3: warning: [GHC-22705] [-Wnoncanonical-monad-instances (in -Wdefault, -Wcompat)]
+Template.hs:23:3: warning: [GHC-22705] [-Wnoncanonical-monad-instances (in -Wdefault, -Wcompat)]
     Noncanonical ‘(*>) = (>>)’ definition detected
     in the instance declaration for ‘Applicative M’.
     Suggested fix:
       Move definition from ‘(>>)’ to ‘(*>)’
       See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return
 
-Template.hs:28:3: warning: [GHC-22705] [-Wnoncanonical-monad-instances (in -Wdefault, -Wcompat)]
+Template.hs:26:3: warning: [GHC-22705] [-Wnoncanonical-monad-instances (in -Wdefault, -Wcompat)]
     Noncanonical ‘return’ definition detected
     in the instance declaration for ‘Monad M’.
     ‘return’ will eventually be removed in favour of ‘pure’
@@ -36,7 +36,7 @@ Template.hs:28:3: warning: [GHC-22705] [-Wnoncanonical-monad-instances (in -Wdef
       Either remove definition for ‘return’ (recommended) or define as ‘return = pure’
       See also: https://gitlab.haskell.org/ghc/ghc/-/wikis/proposal/monad-of-no-return
 
-Template.hs:30:3: warning: [GHC-22705] [-Wnoncanonical-monad-instances (in -Wdefault, -Wcompat)]
+Template.hs:28:3: warning: [GHC-22705] [-Wnoncanonical-monad-instances (in -Wdefault, -Wcompat)]
     Noncanonical ‘(>>)’ definition detected
     in the instance declaration for ‘Monad M’.
     ‘(>>)’ will eventually be removed in favour of ‘(*>)’