diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.4.8
+
+* Add a bunch of `Semigroup` instances
+
 ## 1.4.7.3
 
 * Remove defunct reference to SpecialResponse [#925](https://github.com/yesodweb/yesod/issues/925)
diff --git a/Yesod/Core/Types.hs b/Yesod/Core/Types.hs
--- a/Yesod/Core/Types.hs
+++ b/Yesod/Core/Types.hs
@@ -65,6 +65,7 @@
 #if MIN_VERSION_monad_logger(0, 3, 10)
 import Control.Monad.Logger (MonadLoggerIO (..))
 #endif
+import Data.Semigroup (Semigroup)
 
 -- Sessions
 type SessionMap = Map Text ByteString
@@ -248,6 +249,7 @@
 instance (a ~ (), Monad m) => Monoid (WidgetT site m a) where
     mempty = return ()
     mappend x y = x >> y
+instance (a ~ (), Monad m) => Semigroup (WidgetT site m a)
 
 type RY master = Route master -> [(Text, Text)] -> Text
 
@@ -332,8 +334,10 @@
 
 newtype Head url = Head (HtmlUrl url)
     deriving Monoid
+instance Semigroup (Head a)
 newtype Body url = Body (HtmlUrl url)
     deriving Monoid
+instance Semigroup (Body a)
 
 type CssBuilderUrl a = (a -> [(Text, Text)] -> Text) -> TBuilder.Builder
 
@@ -357,6 +361,7 @@
         (unionWith mappend a5 b5)
         (a6 `mappend` b6)
         (a7 `mappend` b7)
+instance Semigroup (GWData a)
 
 data HandlerContents =
       HCContent H.Status !TypedContent
@@ -521,6 +526,7 @@
 instance Monoid (UniqueList x) where
     mempty = UniqueList id
     UniqueList x `mappend` UniqueList y = UniqueList $ x . y
+instance Semigroup (UniqueList x)
 
 instance IsString Content where
     fromString = flip ContentBuilder Nothing . Blaze.ByteString.Builder.Char.Utf8.fromString
diff --git a/yesod-core.cabal b/yesod-core.cabal
--- a/yesod-core.cabal
+++ b/yesod-core.cabal
@@ -1,5 +1,5 @@
 name:            yesod-core
-version:         1.4.7.3
+version:         1.4.8
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -68,6 +68,7 @@
                    , primitive
                    , word8
                    , auto-update
+                   , semigroups
 
     exposed-modules: Yesod.Core
                      Yesod.Core.Content
