diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index c5cd83c6e1eac38c9515d8c14c0cb49a95344d48..2ccaf399c5d338d594087d89c729bc2a5b76ee52 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -454,6 +454,13 @@ void WebContentsAdapter::reload()
     d->webContents->Focus();
 }
 
+void WebContentsAdapter::reloadAndBypassCache()
+{
+    Q_D(WebContentsAdapter);
+    d->webContents->GetController().ReloadIgnoringCache(/*checkRepost = */false);
+    d->webContents->Focus();
+}
+
 void WebContentsAdapter::load(const QUrl &url)
 {
     // The situation can occur when relying on the editingFinished signal in QML to set the url
diff --git a/src/core/web_contents_adapter.h b/src/core/web_contents_adapter.h
index f4b434353c6cd85b6c813ef16522a825f7311112..5ea55c1b8e38acb32a0a4d5c2e76ee0545121400 100644
--- a/src/core/web_contents_adapter.h
+++ b/src/core/web_contents_adapter.h
@@ -74,6 +74,7 @@ public:
     bool canGoForward() const;
     void stop();
     void reload();
+    void reloadAndBypassCache();
     void load(const QUrl&);
     void setContent(const QByteArray &data, const QString &mimeType, const QUrl &baseUrl);
     QUrl activeUrl() const;
diff --git a/src/webengine/api/qquickwebengineview.cpp b/src/webengine/api/qquickwebengineview.cpp
index 2a5097597cf7f32b99396b2ead593660afc7e3f7..bc58e2526f0a19828b351babbbdaba9430d7c516 100644
--- a/src/webengine/api/qquickwebengineview.cpp
+++ b/src/webengine/api/qquickwebengineview.cpp
@@ -665,6 +665,14 @@ void QQuickWebEngineView::reload()
     d->adapter->reload();
 }
 
+void QQuickWebEngineView::reloadAndBypassCache()
+{
+    Q_D(QQuickWebEngineView);
+    if (!d->adapter)
+        return;
+    d->adapter->reloadAndBypassCache();
+}
+
 void QQuickWebEngineView::stop()
 {
     Q_D(QQuickWebEngineView);
diff --git a/src/webengine/api/qquickwebengineview_p.h b/src/webengine/api/qquickwebengineview_p.h
index c84a65805c5fc978309a6c025c5d6aa6af647fec..4539ad34b2d02a85a30b94bab6bbe83251844d90 100644
--- a/src/webengine/api/qquickwebengineview_p.h
+++ b/src/webengine/api/qquickwebengineview_p.h
@@ -207,6 +207,7 @@ public Q_SLOTS:
     void goForward();
     void goBackOrForward(int index);
     void reload();
+    void reloadAndBypassCache();
     void stop();
     Q_REVISION(1) void findText(const QString &subString, FindFlags options = 0, const QJSValue &callback = QJSValue());
     Q_REVISION(1) void fullScreenCancelled();
diff --git a/src/webenginewidgets/api/qwebenginepage.cpp b/src/webenginewidgets/api/qwebenginepage.cpp
index 65a0a5bed2af3ac26a9771aef49c4a21f521567d..55bd67e5e74381e184706b81db911ff4a17a52bc 100644
--- a/src/webenginewidgets/api/qwebenginepage.cpp
+++ b/src/webenginewidgets/api/qwebenginepage.cpp
@@ -646,6 +646,9 @@ void QWebEnginePage::triggerAction(WebAction action, bool)
     case Reload:
         d->adapter->reload();
         break;
+    case ReloadAndBypassCache:
+        d->adapter->reloadAndBypassCache();
+        break;
     case Cut:
         d->adapter->cut();
         break;