diff --git a/.github/workflows/data-update.yml b/.github/workflows/data-update.yml
index 86df5d59c..b0fd6e1db 100644
--- a/.github/workflows/data-update.yml
+++ b/.github/workflows/data-update.yml
@@ -39,7 +39,7 @@ jobs:
 
       - name: Fetch data
         env:
-          FETCH_SCRIPT: ./searx_extra/update/${{ matrix.fetch }}
+          FETCH_SCRIPT: ./searxng_extra/update/${{ matrix.fetch }}
         run: |
           V=1 ./manage pyenv.cmd python "$FETCH_SCRIPT"
 
diff --git a/docs/index.rst b/docs/index.rst
index 38b3f4c40..20b1848ca 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -32,7 +32,7 @@ If you don't trust anyone, you can set up your own, see :ref:`installation`.
    user/index
    admin/index
    dev/index
-   searx_extra/index
+   searxng_extra/index
    utils/index
    src/index
 
diff --git a/docs/searx_extra/index.rst b/docs/searxng_extra/index.rst
similarity index 58%
rename from docs/searx_extra/index.rst
rename to docs/searxng_extra/index.rst
index 64d0b9047..a98c358f2 100644
--- a/docs/searx_extra/index.rst
+++ b/docs/searxng_extra/index.rst
@@ -1,10 +1,10 @@
-.. _searx_extra:
+.. _searxng_extra:
 
 ======================================================
-Tooling box ``searx_extra`` for developers and users
+Tooling box ``searxng_extra`` for developers and users
 ======================================================
 
-In the folder :origin:`searx_extra/` we maintain some tools useful for
+In the folder :origin:`searxng_extra/` we maintain some tools useful for
 developers and users.
 
 .. toctree::
diff --git a/docs/searx_extra/standalone_searx.py.rst b/docs/searxng_extra/standalone_searx.py.rst
similarity index 56%
rename from docs/searx_extra/standalone_searx.py.rst
rename to docs/searxng_extra/standalone_searx.py.rst
index ff4b53387..1d2d698ac 100644
--- a/docs/searx_extra/standalone_searx.py.rst
+++ b/docs/searxng_extra/standalone_searx.py.rst
@@ -2,8 +2,8 @@
 .. _standalone_searx.py:
 
 ===================================
-``searx_extra/standalone_searx.py``
+``searxng_extra/standalone_searx.py``
 ===================================
 
-.. automodule:: searx_extra.standalone_searx
+.. automodule:: searxng_extra.standalone_searx
   :members:
diff --git a/manage b/manage
index e3bf27b50..302286ef1 100755
--- a/manage
+++ b/manage
@@ -25,7 +25,7 @@ pylint.FILES() {
     # These py files are linted by test.pylint(), all other files are linted by
     # test.pep8()
 
-    grep -l -r --include \*.py '^#[[:blank:]]*lint:[[:blank:]]*pylint' searx searx_extra tests
+    grep -l -r --include \*.py '^#[[:blank:]]*lint:[[:blank:]]*pylint' searx searxng_extra tests
 }
 
 YAMLLINT_FILES=()
@@ -328,11 +328,11 @@ data.all() {
         data.useragents
         data.osm_keys_tags
         build_msg DATA "update searx/data/ahmia_blacklist.txt"
-        python searx_extra/update/update_ahmia_blacklist.py
+        python searxng_extra/update/update_ahmia_blacklist.py
         build_msg DATA "update searx/data/wikidata_units.json"
-        python searx_extra/update/update_wikidata_units.py
+        python searxng_extra/update/update_wikidata_units.py
         build_msg DATA "update searx/data/currencies.json"
-        python searx_extra/update/update_currencies.py
+        python searxng_extra/update/update_currencies.py
     )
 }
 
@@ -341,7 +341,7 @@ data.languages() {
     (   set -e
         pyenv.activate
         build_msg ENGINES "fetch languages .."
-        python searx_extra/update/update_languages.py
+        python searxng_extra/update/update_languages.py
         build_msg ENGINES "update update searx/languages.py"
         build_msg DATA "update searx/data/engines_languages.json"
     )
@@ -350,13 +350,13 @@ data.languages() {
 
 data.useragents() {
     build_msg DATA "update searx/data/useragents.json"
-    pyenv.cmd python searx_extra/update/update_firefox_version.py
+    pyenv.cmd python searxng_extra/update/update_firefox_version.py
     dump_return $?
 }
 
 data.osm_keys_tags() {
     build_msg DATA "update searx/data/osm_keys_tags.json"
-    pyenv.cmd python searx_extra/update/update_osm_keys_tags.py
+    pyenv.cmd python searxng_extra/update/update_osm_keys_tags.py
     dump_return $?
 }
 
@@ -524,8 +524,8 @@ node.clean() {
 }
 
 pygments.less() {
-    build_msg PYGMENTS "searx_extra/update/update_pygments.py"
-    if ! pyenv.cmd python searx_extra/update/update_pygments.py; then
+    build_msg PYGMENTS "searxng_extra/update/update_pygments.py"
+    if ! pyenv.cmd python searxng_extra/update/update_pygments.py; then
         build_msg PYGMENTS "building LESS files for pygments failed"
         return 1
     fi
diff --git a/searx/data/__init__.py b/searx/data/__init__.py
index 9c9d74129..5937ea557 100644
--- a/searx/data/__init__.py
+++ b/searx/data/__init__.py
@@ -31,7 +31,7 @@ def ahmia_blacklist_loader():
     """Load data from `ahmia_blacklist.txt` and return a list of MD5 values of onion
     names.  The MD5 values are fetched by::
 
-      searx_extra/update/update_ahmia_blacklist.py
+      searxng_extra/update/update_ahmia_blacklist.py
 
     This function is used by :py:mod:`searx.plugins.ahmia_filter`.
 
diff --git a/searx_extra/__init__.py b/searxng_extra/__init__.py
similarity index 100%
rename from searx_extra/__init__.py
rename to searxng_extra/__init__.py
diff --git a/searx_extra/google_search.py b/searxng_extra/google_search.py
similarity index 100%
rename from searx_extra/google_search.py
rename to searxng_extra/google_search.py
diff --git a/searx_extra/standalone_searx.py b/searxng_extra/standalone_searx.py
similarity index 98%
rename from searx_extra/standalone_searx.py
rename to searxng_extra/standalone_searx.py
index b30762d3f..ae18d7c09 100755
--- a/searx_extra/standalone_searx.py
+++ b/searxng_extra/standalone_searx.py
@@ -15,7 +15,7 @@ Example to use this script:
 
 .. code::  bash
 
-    $ python3 searx_extra/standalone_searx.py rain
+    $ python3 searxng_extra/standalone_searx.py rain
 
 Example to run it from python:
 
@@ -31,7 +31,7 @@ Example to run it from python:
 ... engine_cs = list(searx.engines.categories.keys())
 ... # load module
 ... spec = importlib.util.spec_from_file_location(
-...     'utils.standalone_searx', 'searx_extra/standalone_searx.py')
+...     'utils.standalone_searx', 'searxng_extra/standalone_searx.py')
 ... sas = importlib.util.module_from_spec(spec)
 ... spec.loader.exec_module(sas)
 ... # use function from module
diff --git a/searx_extra/update/__init__.py b/searxng_extra/update/__init__.py
similarity index 100%
rename from searx_extra/update/__init__.py
rename to searxng_extra/update/__init__.py
diff --git a/searx_extra/update/update_ahmia_blacklist.py b/searxng_extra/update/update_ahmia_blacklist.py
similarity index 100%
rename from searx_extra/update/update_ahmia_blacklist.py
rename to searxng_extra/update/update_ahmia_blacklist.py
diff --git a/searx_extra/update/update_currencies.py b/searxng_extra/update/update_currencies.py
similarity index 100%
rename from searx_extra/update/update_currencies.py
rename to searxng_extra/update/update_currencies.py
diff --git a/searx_extra/update/update_engine_descriptions.py b/searxng_extra/update/update_engine_descriptions.py
similarity index 100%
rename from searx_extra/update/update_engine_descriptions.py
rename to searxng_extra/update/update_engine_descriptions.py
diff --git a/searx_extra/update/update_external_bangs.py b/searxng_extra/update/update_external_bangs.py
similarity index 100%
rename from searx_extra/update/update_external_bangs.py
rename to searxng_extra/update/update_external_bangs.py
diff --git a/searx_extra/update/update_firefox_version.py b/searxng_extra/update/update_firefox_version.py
similarity index 100%
rename from searx_extra/update/update_firefox_version.py
rename to searxng_extra/update/update_firefox_version.py
diff --git a/searx_extra/update/update_languages.py b/searxng_extra/update/update_languages.py
similarity index 100%
rename from searx_extra/update/update_languages.py
rename to searxng_extra/update/update_languages.py
diff --git a/searx_extra/update/update_osm_keys_tags.py b/searxng_extra/update/update_osm_keys_tags.py
similarity index 100%
rename from searx_extra/update/update_osm_keys_tags.py
rename to searxng_extra/update/update_osm_keys_tags.py
diff --git a/searx_extra/update/update_pygments.py b/searxng_extra/update/update_pygments.py
similarity index 98%
rename from searx_extra/update/update_pygments.py
rename to searxng_extra/update/update_pygments.py
index de27abcce..a7a238be0 100755
--- a/searx_extra/update/update_pygments.py
+++ b/searxng_extra/update/update_pygments.py
@@ -111,7 +111,7 @@ def get_output_filename(relative_name):
 
 def get_css(cssclass, style):
     result = f"""/*
-   this file is generated automatically by searx_extra/update/update_pygments.py
+   this file is generated automatically by searxng_extra/update/update_pygments.py
    using pygments version {pygments.__version__}
 */\n\n"""
     css_text = HtmlFormatter(style=style).get_style_defs(cssclass)
diff --git a/searx_extra/update/update_wikidata_units.py b/searxng_extra/update/update_wikidata_units.py
similarity index 100%
rename from searx_extra/update/update_wikidata_units.py
rename to searxng_extra/update/update_wikidata_units.py
diff --git a/setup.py b/setup.py
index 92eb8e14e..19d780359 100644
--- a/setup.py
+++ b/setup.py
@@ -38,7 +38,7 @@ setup(
     author='Adam Tauber',
     author_email='asciimoo@gmail.com',
     license='GNU Affero General Public License',
-    packages=find_packages(exclude=["tests*", "searx_extra"]),
+    packages=find_packages(exclude=["tests*", "searxng_extra"]),
     zip_safe=False,
     install_requires=requirements,
     extras_require={
diff --git a/tests/unit/test_standalone_searx.py b/tests/unit/test_standalone_searx.py
index a5f17c08f..c81598160 100644
--- a/tests/unit/test_standalone_searx.py
+++ b/tests/unit/test_standalone_searx.py
@@ -8,7 +8,7 @@ from mock import Mock, patch
 from nose2.tools import params
 
 from searx.search import SearchQuery, EngineRef, initialize
-from searx_extra import standalone_searx as sas
+from searxng_extra import standalone_searx as sas
 from tests import SearxTestCase