diff --git a/aleksis/core/managers.py b/aleksis/core/managers.py
index a0871078015df8e117a09e23a593b384f7b25dc2..02a0cb6fb6504d931b3d848217b154951d8a0932 100644
--- a/aleksis/core/managers.py
+++ b/aleksis/core/managers.py
@@ -79,3 +79,15 @@ class SchoolTermRelatedQuerySet(QuerySet):
             return self.for_school_term(current_school_term)
         else:
             return None
+
+
+class GroupManager(CurrentSiteManagerWithoutMigrations):
+    """Manager adding specific methods to groups."""
+
+    def get_queryset(self):
+        """Ensure all related data is loaded as well."""
+        return super().get_queryset().select_related("school_term")
+
+
+class GroupQuerySet(SchoolTermRelatedQuerySet):
+    pass
diff --git a/aleksis/core/models.py b/aleksis/core/models.py
index bd1cfe12d531e95e4a5d0b7d1e480cf60b91717f..00a2faacdfb9c39cc1ca50e7b8a92277564ba315 100644
--- a/aleksis/core/models.py
+++ b/aleksis/core/models.py
@@ -23,7 +23,12 @@ from dynamic_preferences.models import PerInstancePreferenceModel
 from phonenumber_field.modelfields import PhoneNumberField
 from polymorphic.models import PolymorphicModel
 
-from .managers import CurrentSiteManagerWithoutMigrations, SchoolTermQuerySet
+from .managers import (
+    CurrentSiteManagerWithoutMigrations,
+    GroupManager,
+    GroupQuerySet,
+    SchoolTermQuerySet,
+)
 from .mixins import ExtensibleModel, PureDjangoModel, SchoolTermRelatedExtensibleModel
 from .tasks import send_notification
 from .util.core_helpers import get_site_preferences, now_tomorrow
@@ -313,6 +318,8 @@ class Group(SchoolTermRelatedExtensibleModel):
     classes, clubs, and the like.
     """
 
+    objects = GroupManager.from_queryset(GroupQuerySet)()
+
     class Meta:
         ordering = ["short_name", "name"]
         verbose_name = _("Group")