diff --git a/docs/admin/engines/configured_engines.rst b/docs/admin/engines/configured_engines.rst
index 0060d1b74..82a1d2375 100644
--- a/docs/admin/engines/configured_engines.rst
+++ b/docs/admin/engines/configured_engines.rst
@@ -16,7 +16,7 @@ Explanation of the :ref:`general engine configuration` shown in the table
 
    SearXNG supports {{engines | length}} search engines (of which {{enabled_engine_count}} are enabled by default).
 
-   {% for category, engines in engines.items() | groupby('1.categories.0') %}
+   {% for category, engines in categories.items() %}
 
    {{category}} search engines
    ---------------------------------------
@@ -39,9 +39,9 @@ Explanation of the :ref:`general engine configuration` shown in the table
         - Safe search
         - Time range
 
-      {% for name, mod in engines | sort_engines %}
+      {% for mod in engines | sort_engines %}
 
-      * - `{{name}} <{{mod.about and mod.about.website}}>`_
+      * - `{{mod.name}} <{{mod.about and mod.about.website}}>`_
         - ``!{{mod.shortcut}}``
         - {%- if 'searx.engines.' + mod.__name__ in documented_modules %}
           :py:mod:`~searx.engines.{{mod.__name__}}`
diff --git a/docs/conf.py b/docs/conf.py
index d4fc50735..1b78ece60 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -40,6 +40,7 @@ exclude_patterns = ['build-templates/*.rst']
 import searx.engines
 import searx.plugins
 searx.engines.load_engines(searx.settings['engines'])
+
 jinja_contexts = {
     'searx': {
         'engines': searx.engines.engines,
@@ -48,13 +49,14 @@ jinja_contexts = {
             'node': os.getenv('NODE_MINIMUM_VERSION')
         },
         'enabled_engine_count': sum(not x.disabled for x in searx.engines.engines.values()),
+        'categories': searx.engines.categories,
     },
 }
 jinja_filters = {
     'sort_engines':
     lambda engines: sorted(
         engines,
-        key=lambda engine: (engine[1].about.get('language', ''), engine[0])
+        key=lambda engine: (engine.about.get('language', ''), engine.name)
     )
 }