diff --git a/modules/core_search_facets/src/Plugin/facets/facet_source/CoreNodeSearchFacetSource.php b/modules/core_search_facets/src/Plugin/facets/facet_source/CoreNodeSearchFacetSource.php
index c09d652..261c943 100644
--- a/modules/core_search_facets/src/Plugin/facets/facet_source/CoreNodeSearchFacetSource.php
+++ b/modules/core_search_facets/src/Plugin/facets/facet_source/CoreNodeSearchFacetSource.php
@@ -3,7 +3,6 @@
 namespace Drupal\core_search_facets\Plugin\facets\facet_source;
 
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\Url;
 use Drupal\core_search_facets\Plugin\CoreSearchFacetSourceInterface;
 use Drupal\facets\FacetInterface;
 use Drupal\facets\FacetSource\FacetSourcePluginBase;
@@ -111,9 +110,9 @@ class CoreNodeSearchFacetSource extends FacetSourcePluginBase implements CoreSea
   public function getPath() {
     $search_page = $this->request->attributes->get('entity');
     if ($search_page instanceof SearchPageInterface) {
-      return Url::fromUserInput('/search/' . $search_page->getPath());
+      return '/search/' . $search_page->getPath();
     }
-    return Url::fromUserInput('/');
+    return '/';
   }
 
   /**
diff --git a/src/FacetSource/FacetSourcePluginInterface.php b/src/FacetSource/FacetSourcePluginInterface.php
index 733ad79..2f1e1fb 100644
--- a/src/FacetSource/FacetSourcePluginInterface.php
+++ b/src/FacetSource/FacetSourcePluginInterface.php
@@ -40,11 +40,9 @@ interface FacetSourcePluginInterface extends PluginFormInterface, DependentPlugi
   public function getQueryTypesForFacet(FacetInterface $facet);
 
   /**
-   * Returns the url of the facet source, used to build the facet url.
+   * Returns the path of the facet source, used to build the facet url.
    *
-   * @return \Drupal\Core\Url
-   *   The url object for the facet if it's set, a url object to the current
-   *   page otherwise.
+   * @return string The path.
    */
   public function getPath();
 
diff --git a/src/Plugin/facets/facet_source/SearchApiDisplay.php b/src/Plugin/facets/facet_source/SearchApiDisplay.php
index f236f30..cf57cfa 100644
--- a/src/Plugin/facets/facet_source/SearchApiDisplay.php
+++ b/src/Plugin/facets/facet_source/SearchApiDisplay.php
@@ -115,14 +115,14 @@ class SearchApiDisplay extends FacetSourcePluginBase {
    * {@inheritdoc}
    */
   public function getPath() {
-    // The implementation in search api tells us that this is a url object only
-    // if a path is defined, and null if that isn't done. This means that we
-    // have to check for this + create our own Url object if that's needed.
-    if ($this->getDisplay()->getUrl() instanceof Url) {
-      return $this->getDisplay()->getUrl();
+    // The implementation in search api tells us that this is a base path only
+    // if a path is defined, and false if that isn't done. This means that we
+    // have to check for this + create our own uri if that's needed.
+    if ($this->getDisplay()->getPath()) {
+      return $this->getDisplay()->getPath();
     }
 
-    return Url::createFromRequest($this->request);
+    return \Drupal::service('path.current')->getPath();
   }
 
   /**
diff --git a/src/Plugin/facets/url_processor/QueryString.php b/src/Plugin/facets/url_processor/QueryString.php
index 5e9b067..93aabae 100644
--- a/src/Plugin/facets/url_processor/QueryString.php
+++ b/src/Plugin/facets/url_processor/QueryString.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\facets\Plugin\facets\url_processor;
 
+use Drupal\Core\Url;
 use Drupal\facets\FacetInterface;
 use Drupal\facets\UrlProcessor\UrlProcessorPluginBase;
 use Symfony\Component\HttpFoundation\Request;
@@ -67,11 +68,17 @@ class QueryString extends UrlProcessorPluginBase {
     // Set the url alias from the the facet object.
     $this->urlAlias = $facet->getUrlAlias();
 
-    $url = $facet->getFacetSource()->getPath();
-    $url->setOption('attributes', ['rel' => 'nofollow']);
+    $request = $this->request;
+    if ($facet->getFacetSource()->getPath()) {
+      $request = Request::create($facet->getFacetSource()->getPath());
+    }
 
     /** @var \Drupal\facets\Result\ResultInterface[] $results */
     foreach ($results as &$result) {
+      // Reset the URL for each result.
+      $url = Url::createFromRequest($request);
+      $url->setOption('attributes', ['rel' => 'nofollow']);
+
       // Sets the url for children.
       if ($children = $result->getChildren()) {
         $this->buildUrls($facet, $children);
diff --git a/tests/facets_query_processor/src/Plugin/facets/url_processor/DummyQuery.php b/tests/facets_query_processor/src/Plugin/facets/url_processor/DummyQuery.php
index 9a2e4ce..be9b27a 100644
--- a/tests/facets_query_processor/src/Plugin/facets/url_processor/DummyQuery.php
+++ b/tests/facets_query_processor/src/Plugin/facets/url_processor/DummyQuery.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\facets_query_processor\Plugin\facets\url_processor;
 
+use Drupal\Core\Url;
 use Drupal\facets\FacetInterface;
 use Drupal\facets\UrlProcessor\UrlProcessorPluginBase;
 use Symfony\Component\HttpFoundation\Request;
@@ -82,7 +83,11 @@ class DummyQuery extends UrlProcessorPluginBase {
 
       $result_get_params->set($this->filterKey, $filter_params);
 
-      $url = $facet->getFacetSource()->getPath();
+      $request = $this->request;
+      if ($facet->getFacetSource()->getPath()) {
+        $request = Request::create($facet->getFacetSource()->getPath());
+      }
+      $url = Url::createFromRequest($request);
       $url->setOption('query', $result_get_params->all());
 
       $result->setUrl($url);
