diff --git a/index.js b/index.js
index c0d9f91a..3d16a728 100644
--- a/index.js
+++ b/index.js
@@ -29,6 +29,10 @@ const defaultOptions = {
   puppeteerArgs: [],
   puppeteerExecutablePath: undefined,
   puppeteerIgnoreHTTPSErrors: false,
+  // this will be merged into browser.launch
+  // see https://pptr.dev/#?product=Puppeteer&version=v5.5.0&show=api-puppeteerlaunchoptions
+  // for all options
+  puppeteerSettings: {},
   publicPath: "/",
   minifyCss: {},
   minifyHtml: {
diff --git a/src/puppeteer_utils.js b/src/puppeteer_utils.js
index 820cded0..c9bd841b 100644
--- a/src/puppeteer_utils.js
+++ b/src/puppeteer_utils.js
@@ -199,7 +199,8 @@ const crawl = async opt => {
     args: options.puppeteerArgs,
     executablePath: options.puppeteerExecutablePath,
     ignoreHTTPSErrors: options.puppeteerIgnoreHTTPSErrors,
-    handleSIGINT: false
+    handleSIGINT: false,
+    ...options.puppeteerSettings
   });
 
   /**
@@ -238,7 +239,7 @@ const crawl = async opt => {
         await page.setUserAgent(options.userAgent);
         const tracker = createTracker(page);
         try {
-          await page.goto(pageUrl, { waitUntil: "networkidle0" });
+          await page.goto(pageUrl, { waitUntil: options.puppeteerSettings["waitUntil"] || "networkidle0" });
         } catch (e) {
           e.message = augmentTimeoutError(e.message, tracker);
           throw e;