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 @@ public static function create(ContainerInterface $container, array $configuratio
   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 @@ public function fillFacetsWithResults(array $facets);
   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 @@ public function getIndex() {
    * {@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 a1528d1..620ddef 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;
@@ -62,11 +63,17 @@ public function buildUrls(FacetInterface $facet, array $results) {
     // 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/src/Unit/Plugin/url_processor/QueryStringTest.php b/tests/src/Unit/Plugin/url_processor/QueryStringTest.php
index 692cdbe..946bf71 100644
--- a/tests/src/Unit/Plugin/url_processor/QueryStringTest.php
+++ b/tests/src/Unit/Plugin/url_processor/QueryStringTest.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\Tests\facets\Unit\Plugin\url_processor;
 
-use Drupal\Core\Url;
 use Drupal\facets\Entity\Facet;
 use Drupal\facets\Entity\FacetSource;
 use Drupal\facets\Plugin\facets\url_processor\QueryString;
@@ -283,7 +282,7 @@ protected function setContainer() {
       ->disableOriginalConstructor()
       ->getMock();
     $fsi->method('getPath')
-      ->willReturn(new Url('test'));
+      ->willReturn('test');
 
     $manager = $this->getMockBuilder('\Drupal\facets\FacetSource\FacetSourcePluginManager')
       ->disableOriginalConstructor()
