diff --git a/searx/engines/json_engine.py b/searx/engines/json_engine.py
index a824c38e5..4604c3cac 100644
--- a/searx/engines/json_engine.py
+++ b/searx/engines/json_engine.py
@@ -81,7 +81,7 @@ def request(query, params):
 
     fp = {'query': query}
     if paging and search_url.find('{pageno}') >= 0:
-        fp['pageno'] = (params['pageno'] + first_page_num - 1) * page_size
+        fp['pageno'] = (params['pageno'] - 1) * page_size + first_page_num
 
     params['url'] = search_url.format(**fp)
     params['query'] = query
diff --git a/searx/engines/xpath.py b/searx/engines/xpath.py
index e701c02bf..e5c0c5bea 100644
--- a/searx/engines/xpath.py
+++ b/searx/engines/xpath.py
@@ -87,7 +87,7 @@ def request(query, params):
 
     fp = {'query': query}
     if paging and search_url.find('{pageno}') >= 0:
-        fp['pageno'] = (params['pageno'] + first_page_num - 1) * page_size
+        fp['pageno'] = (params['pageno'] - 1) * page_size + first_page_num
 
     params['url'] = search_url.format(**fp)
     params['query'] = query