diff --git a/src/core/search.py b/src/core/search.py
index 23f5f663ffe6780cafee76782c3af25ae893c776..08d4d18d86b777fac411c354a6b9d7bffb30a8e2 100644
--- a/src/core/search.py
+++ b/src/core/search.py
@@ -6,13 +6,14 @@ from django.contrib.postgres.search import SearchQuery
 from .models.assemblies import Assembly
 from .models.conference import Conference, ConferenceTrack
 from .models.events import Event
+from .models.rooms import Room
 from .models.tags import ConferenceTag
 from .models.users import PlatformUser
 
 
 def search(
     user: PlatformUser, conference: Conference, search_term: str, max_per_category: int = 10
-) -> Iterator[ConferenceTag | ConferenceTrack | Assembly | Event]:
+) -> Iterator[ConferenceTag | ConferenceTrack | Assembly | Event | Room]:
     """
     Search assemblies, events, pages and tags for the search_term(s).
     Matches on the name are ranked higher than those only in the description.
@@ -65,6 +66,7 @@ def search(
     # tracking which assemblies we've already seen so we don't return them twice
     assemblies_seen = []
     events_seen = []
+    rooms_seen = []
 
     # name match on Assembly
     assemblies = apply_terms_name(Assembly.objects.conference_accessible(conference=conference))[:max_per_category]
@@ -78,6 +80,12 @@ def search(
         events_seen.append(e.pk)
         yield e
 
+    # name match on Room
+    rooms = apply_terms_name(Room.objects.conference_accessible(conference=conference))[:max_per_category]
+    for r in rooms:
+        rooms_seen.append(r.pk)
+        yield r
+
     # description match on Assembly
     if len(assemblies) < max_per_category:
         description_matches = Assembly.objects.conference_accessible(conference=conference).exclude(pk__in=assemblies_seen)
@@ -87,3 +95,8 @@ def search(
     if len(events) < max_per_category:
         description_matches = Event.objects.conference_accessible(conference=conference).exclude(pk__in=events_seen)
         yield from apply_terms_description(description_matches)[: max_per_category - len(events)]
+
+    # description match on Room
+    if len(rooms) < max_per_category:
+        description_matches = Room.objects.conference_accessible(conference=conference).exclude(pk__in=rooms_seen)
+        yield from apply_terms_description(description_matches)[: max_per_category - len(rooms)]
diff --git a/src/plainui/jinja2/plainui/search.html.j2 b/src/plainui/jinja2/plainui/search.html.j2
index 2d8346fb380621dac45eac5d72a010ebfd9e8d21..271581b483614d9dd1252ccd1614d44281027e92 100644
--- a/src/plainui/jinja2/plainui/search.html.j2
+++ b/src/plainui/jinja2/plainui/search.html.j2
@@ -15,31 +15,37 @@
     {%- for result in search_results %}
       <div class="hub-list-item">
         {% if result.type == 'Event' %}
-          {{ tagMacros.tag(result.type,
-                    style='clear',
-                    icon='calendar-week') }}
+          {{ tagMacros.tag(_('Event') ,
+          style='clear',
+          icon='calendar-week') }}
           <a class="hub-text-list-item-title"
              href="{{ url('plainui:event', event_slug=result.item.slug) }}">{{ result.item }}</a>
         {% elif result.type == 'Assembly' %}
-          {{ tagMacros.tag(result.type,
-                    style='clear',
-                    icon='person-arms-up') }}
+          {{ tagMacros.tag(_('Assembly') ,
+          style='clear',
+          icon='person-arms-up') }}
           <a class="hub-text-list-item-title"
              href="{{ url('plainui:assembly', assembly_slug=result.item.slug) }}">{{ result.item }}</a>
         {% elif result.type == 'ConferenceTag' %}
-          {{ tagMacros.tag(result.type,
-                    style='clear',
-                    icon='tag') }}
+          {{ tagMacros.tag(_('ConferenceTag') ,
+          style='clear',
+          icon='tag') }}
           <a class="hub-text-list-item-title"
              href="{{ url('plainui:tag', tag_slug=result.item.slug) }}">{{ result.item }}</a>
         {% elif result.type == 'ConferenceTrack' %}
           {{ result.type }}: {{ result.item }}
         {% elif result.type == 'StaticPage' %}
-          {{ tagMacros.tag('Page',
-                    style='clear',
-                    icon='book') }}
+          {{ tagMacros.tag(_('StaticPage') ,
+          style='clear',
+          icon='book') }}
           <a class="hub-text-list-item-title"
              href="{{ url('plainui:static_page', page_slug=result.item.slug) }}">{{ result.item }}</a>
+        {% elif result.type == 'Room' %}
+          {{ tagMacros.tag(_('Room') ,
+          style='clear',
+          icon='geo-alt-fill') }}
+          <a class="hub-text-list-item-title"
+             href="{{ url('plainui:room', slug=result.item.slug) }}">{{ result.item }}</a>
         {% else %}
           {{ result.type }}: {{ result.item }}
         {% endif %}
diff --git a/src/plainui/locale/de/LC_MESSAGES/django.po b/src/plainui/locale/de/LC_MESSAGES/django.po
index 6935b42ed92891289ea56db06bdc27067134b12c..ddd826e39f42ab7c2031db9ec71c8f77356ad0c0 100644
--- a/src/plainui/locale/de/LC_MESSAGES/django.po
+++ b/src/plainui/locale/de/LC_MESSAGES/django.po
@@ -1059,6 +1059,12 @@ msgstr "Raum"
 msgid "Rooms"
 msgstr "Räume"
 
+msgid "ConferenceTag"
+msgstr ""
+
+msgid "StaticPage"
+msgstr "Wiki-Seite"
+
 #, python-format
 msgid "%(conf)s - Registration"
 msgstr "%(conf)s - Registrierung"
diff --git a/src/plainui/locale/en/LC_MESSAGES/django.po b/src/plainui/locale/en/LC_MESSAGES/django.po
index 09ea13eadf929c0581c240995983d44367377dfc..9471456f32cfeff75332c7b02c8f442ffdf83014 100644
--- a/src/plainui/locale/en/LC_MESSAGES/django.po
+++ b/src/plainui/locale/en/LC_MESSAGES/django.po
@@ -1059,6 +1059,12 @@ msgstr ""
 msgid "Rooms"
 msgstr ""
 
+msgid "ConferenceTag"
+msgstr ""
+
+msgid "StaticPage"
+msgstr "Wiki Page"
+
 #, python-format
 msgid "%(conf)s - Registration"
 msgstr ""