diff --git a/package-lock.json b/package-lock.json
index 7d246b751aca3b7ca5956ca8b5eb936b0f99e38b..8d1dc9ee05f6ee1e3937e56a4009f1e265d19ead 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6387,7 +6387,8 @@
     "decode-uri-component": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
-      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
+      "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+      "dev": true
     },
     "deep-equal": {
       "version": "1.0.1",
@@ -8200,7 +8201,8 @@
         "ansi-regex": {
           "version": "2.1.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "aproba": {
           "version": "1.2.0",
@@ -8615,7 +8617,8 @@
         "safe-buffer": {
           "version": "5.1.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "safer-buffer": {
           "version": "2.1.2",
@@ -8671,6 +8674,7 @@
           "version": "3.0.1",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "ansi-regex": "^2.0.0"
           }
@@ -8714,12 +8718,14 @@
         "wrappy": {
           "version": "1.0.2",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "yallist": {
           "version": "3.0.2",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         }
       }
     },
@@ -13302,16 +13308,6 @@
       "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
       "dev": true
     },
-    "query-string": {
-      "version": "5.1.1",
-      "resolved": "http://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz",
-      "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==",
-      "requires": {
-        "decode-uri-component": "^0.2.0",
-        "object-assign": "^4.1.0",
-        "strict-uri-encode": "^1.0.0"
-      }
-    },
     "querystring": {
       "version": "0.2.0",
       "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
@@ -15220,11 +15216,6 @@
         }
       }
     },
-    "strict-uri-encode": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
-      "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
-    },
     "string-length": {
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz",
diff --git a/package.json b/package.json
index 4f3cc89f51d943ef633c18dbe70d637b0cdc57c3..660726b2d6996f147b1b8ce8f5c610ecd9735467 100644
--- a/package.json
+++ b/package.json
@@ -69,7 +69,6 @@
     "leaflet-sidebar-v2": "^3.0.2",
     "leaflet.markercluster": "^1.4.1",
     "lodash": "^4.17.11",
-    "query-string": "^5.1.1",
     "react": "^16.6.1",
     "react-csv": "^1.0.18",
     "react-dom": "^16.6.1",
diff --git a/src/client/components/facet_results/ResultTable.js b/src/client/components/facet_results/ResultTable.js
index fcadd5dc9e576383ab7c5bbd33b11ac1b1d06d37..53882f2df252c580b70149fd1e32a1b7250ffc62 100644
--- a/src/client/components/facet_results/ResultTable.js
+++ b/src/client/components/facet_results/ResultTable.js
@@ -8,8 +8,8 @@ import TableRow from '@material-ui/core/TableRow';
 import Typography from '@material-ui/core/Typography';
 import CircularProgress from '@material-ui/core/CircularProgress';
 import purple from '@material-ui/core/colors/purple';
+import querystring from 'querystring';
 import ResultTableHead from './ResultTableHead';
-import { parse } from 'query-string';
 import history from '../../History';
 
 const styles = () => ({
@@ -47,7 +47,7 @@ class ResultTable extends React.Component {
       page = this.props.data.page === -1 ? 0 : this.props.data.page;
       // console.log(`result table mounted WITHOUT page parameter, set page to ${page}`);
     } else {
-      page = parseInt(parse(this.props.routeProps.location.search).page);
+      page = parseInt(querystring.parse(this.props.routeProps.location.search).page);
       // console.log(`result table mounted with page parameter, set page to ${page}`);
     }
     this.props.updatePage(this.props.resultClass, page);
diff --git a/src/client/epics/index.js b/src/client/epics/index.js
index 7bf0304578257ddb4e1a218dd1c786264d1200e5..e965a8b5155aac30f55d59b0b889c42925f88414 100644
--- a/src/client/epics/index.js
+++ b/src/client/epics/index.js
@@ -2,7 +2,7 @@ import { of } from 'rxjs';
 import { ajax } from 'rxjs/ajax';
 import { mergeMap, map, withLatestFrom, catchError } from 'rxjs/operators';
 import { combineEpics, ofType } from 'redux-observable';
-import { stringify } from 'query-string';
+import querystring from 'querystring';
 import { has } from 'lodash';
 import {
   FETCH_PAGINATED_RESULTS,
@@ -195,7 +195,7 @@ export const stateToUrl = ({
     params.spatialFilters = JSON.stringify(spatialFilters);
   }
 
-  return stringify(params);
+  return querystring.stringify(params);
 };
 
 const boundsToValues = bounds => {