diff --git a/addons/website/tests/__init__.py b/addons/website/tests/__init__.py
index 69fd7f886d6..99ac6f1bc57 100644
--- a/addons/website/tests/__init__.py
+++ b/addons/website/tests/__init__.py
@@ -8,6 +8,7 @@ from . import test_get_current_website
from . import test_lang_url
from . import test_menu
from . import test_page
+from . import test_performance
from . import test_qweb
from . import test_res_users
from . import test_theme
diff --git a/addons/website/tests/test_performance.py b/addons/website/tests/test_performance.py
new file mode 100644
index 00000000000..f3c4834a0a7
--- /dev/null
+++ b/addons/website/tests/test_performance.py
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo.tests.common import HttpCase
+
+EXTRA_REQUEST = 5
+""" During tests, the query on 'base_registry_signaling, base_cache_signaling'
+ won't be executed on hot state, but 6 new queries related to the test cursor
+ will be added:
+ SAVEPOINT "test_cursor_4"
+ SAVEPOINT "test_cursor_4"
+ ROLLBACK TO SAVEPOINT "test_cursor_4"
+ SAVEPOINT "test_cursor_5"
+ [.. usual SQL Queries .. ]
+ SAVEPOINT "test_cursor_5"
+ ROLLBACK TO SAVEPOINT "test_cursor_5"
+"""
+
+
+class TestWebsitePerformance(HttpCase):
+
+ def setUp(self):
+ super().setUp()
+
+ self.page = self.env['website.page'].create({
+ 'url': '/sql_page',
+ 'name': 'Page Test SQL Perf',
+ 'type': 'qweb',
+ 'arch': '