diff --git a/.yamllint.yml b/.yamllint.yml
new file mode 100644
index 000000000..065665612
--- /dev/null
+++ b/.yamllint.yml
@@ -0,0 +1,16 @@
+extends: default
+
+rules:
+
+  indentation:
+    spaces: 2
+
+  # 120 chars should be enough, but don't fail if a line is longer
+  line-length:
+    max: 120
+    level: warning
+    allow-non-breakable-words: true
+
+  # we don't have multiple document per file
+  document-start: disable
+  document-end: disable
diff --git a/Makefile b/Makefile
index c2c9cf49e..3e3df3292 100644
--- a/Makefile
+++ b/Makefile
@@ -51,8 +51,8 @@ search.checker.%: install
 	$(Q)./manage pyenv.cmd searx-checker -v "$(subst _, ,$(patsubst search.checker.%,%,$@))"
 
 PHONY += test ci.test test.shell
-ci.test: test.pep8 test.pylint test.unit test.robot
-test:    test.pep8 test.pylint test.unit test.robot test.shell
+ci.test: test.yamllint test.pep8 test.pylint test.unit test.robot
+test:    test.yamllint test.pep8 test.pylint test.unit test.robot test.shell
 test.shell:
 	$(Q)shellcheck -x -s dash \
 		dockerfiles/docker-entrypoint.sh
@@ -81,7 +81,7 @@ MANAGE += node.env node.clean
 MANAGE += py.build py.clean
 MANAGE += pyenv pyenv.install pyenv.uninstall
 MANAGE += pypi.upload pypi.upload.test
-MANAGE += test.pylint test.pep8 test.unit test.coverage test.robot test.clean
+MANAGE += test.yamllint test.pylint test.pep8 test.unit test.coverage test.robot test.clean
 MANAGE += themes.all themes.oscar themes.simple themes.bootstrap
 
 PHONY += $(MANAGE)
diff --git a/manage b/manage
index 3282cc645..8dcb506b3 100755
--- a/manage
+++ b/manage
@@ -29,6 +29,11 @@ pylint.FILES() {
     grep -l -r --include \*.py '^#[[:blank:]]*lint:[[:blank:]]*pylint' searx searx_extra tests
 }
 
+YAMLLINT_FILES=()
+while IFS= read -r line; do
+   YAMLLINT_FILES+=("$line")
+done <<< "$(git ls-files './tests/*.yml' './searx/*.yml')"
+
 PYLINT_SEARX_DISABLE_OPTION="\
 I,C,R,\
 W0105,W0212,W0511,W0603,W0613,W0621,W0702,W0703,W1401,\
@@ -391,6 +396,11 @@ pypi.upload.test() {
     pyenv.cmd twine upload -r testpypi "${PYDIST}"/*
 }
 
+test.yamllint() {
+    build_msg TEST "[pylint] \$PYLINT_FILES"
+    pyenv.cmd yamllint --format parsable "${YAMLLINT_FILES[@]}"
+}
+
 test.pylint() {
     # shellcheck disable=SC2086
     (   set -e
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 6612814df..695a66c0e 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -16,3 +16,4 @@ sphinxcontrib-programoutput==0.17
 sphinx-autobuild==2021.3.14
 linuxdoc==20210324
 aiounittest==1.4.0
+yamllint==1.26.1