     }
     
     func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
-        guard discoveryType == .program,
-            searchText.isEmpty,
+        guard searchText.isEmpty,
             webView.url != baseURL,
-            let baseURL = baseURL else { return }
-        loadRequest(withURL: baseURL)
+            let baseURL = baseURL,
+            var params = params, params[QueryParameterKeys.searchQuery] != nil else { return }
+
+        removeParam(for: QueryParameterKeys.searchQuery, in: &params)
+
+        if let URL = DiscoveryWebViewHelper.buildQuery(baseURL: baseURL.URLString, params: params) {
+            loadRequest(withURL: URL)
+        }
+    }
+
+    private func removeParam(for key: String, in params: inout [String: String]) {
+        params.removeValue(forKey: key)
     }
 
     func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {

        set(value: subject.filter, for: QueryParameterKeys.subject, in: &params)
        environment?.analytics.trackSubjectDiscovery(subjectID: subject.filter)
        if let url = DiscoveryWebViewHelper.buildQuery(baseURL: baseURL.URLString, params: params) {
            loadController.state = .Initial
            loadRequest(withURL: url)
        }

        var query = baseURL
        for param in params {
            let join = query.contains("?") ? "&" : "?"
            let value = param.key + "=" + param.value
            if !query.contains(find: value) {
                query = query + join + value
            }
        }
        
        return URL(string: query)
