diff --git a/app/MetaGer.php b/app/MetaGer.php
index 166c3ea9ae7ae3fa4e98428bda76e90f639133ad..99ee104a9ca397d1e2530426e50758ebbec2f966 100644
--- a/app/MetaGer.php
+++ b/app/MetaGer.php
@@ -24,6 +24,7 @@ class MetaGer
     protected $site;
     protected $hostBlacklist   = [];
     protected $domainBlacklist = [];
+    private   $urlBlacklist    = [];
     protected $stopWords       = [];
     protected $phrases         = [];
     protected $engines         = [];
@@ -1008,12 +1009,13 @@ class MetaGer
         $this->searchCheckSitesearch($site);
         $this->searchCheckHostBlacklist();
         $this->searchCheckDomainBlacklist();
+        $this->searchCheckUrlBlacklist();
         $this->searchCheckPhrase();
         $this->searchCheckStopwords();
         $this->searchCheckNoSearch();
     }
 
-    public function searchCheckSitesearch($site)
+    private function searchCheckSitesearch($site)
     {
         // matches '[... ]site:test.de[ ...]'
         while (preg_match("/(^|.+\s)site:(\S+)(?:\s(.+)|($))/si", $this->q, $match)) {
@@ -1025,13 +1027,14 @@ class MetaGer
         }
     }
 
-    public function searchCheckHostBlacklist()
+    private function searchCheckHostBlacklist()
     {
         // matches '[... ]-site:test.de[ ...]'
         while (preg_match("/(^|.+\s)-site:([^\s\*]\S*)(?:\s(.+)|($))/si", $this->q, $match)) {
             $this->hostBlacklist[] = $match[2];
             $this->q               = $match[1] . $match[3];
         }
+        // print the host blacklist as a user warning
         if (sizeof($this->hostBlacklist) > 0) {
             $hostString = "";
             foreach ($this->hostBlacklist as $host) {
@@ -1042,13 +1045,14 @@ class MetaGer
         }
     }
 
-    public function searchCheckDomainBlacklist()
+    private function searchCheckDomainBlacklist()
     {
         // matches '[... ]-site:*.test.de[ ...]'
         while (preg_match("/(^|.+\s)-site:\*\.(\S+)(?:\s(.+)|($))/si", $this->q, $match)) {
             $this->domainBlacklist[] = $match[2];
             $this->q                 = $match[1] . $match[3];
         }
+        // print the domain blacklist as a user warning
         if (sizeof($this->domainBlacklist) > 0) {
             $domainString = "";
             foreach ($this->domainBlacklist as $domain) {
@@ -1059,13 +1063,32 @@ class MetaGer
         }
     }
 
-    public function searchCheckStopwords()
+    private function searchCheckUrlBlacklist()
+    {
+        // matches '[... ]-site:*.test.de[ ...]'
+        while (preg_match("/(^|.+\s)-url:(\S+)(?:\s(.+)|($))/si", $this->q, $match)) {
+            $this->urlBlacklist[] = $match[2];
+            $this->q              = $match[1] . $match[3];
+        }
+        // print the url blacklist as a user warning
+        if (sizeof($this->urlBlacklist) > 0) {
+            $urlString = "";
+            foreach ($this->urlBlacklist as $url) {
+                $urlString .= $url . ", ";
+            }
+            $urlString     = rtrim($urlString, ", ");
+            $this->warnings[] = trans('metaGer.formdata.urlBlacklist', ['url' => $urlString]);
+        }
+    }
+
+    private function searchCheckStopwords()
     {
         // matches '[... ]-test[ ...]'
         while (preg_match("/(^|.+\s)-(\S+)(?:\s(.+)|($))/si", $this->q, $match)) {
             $this->stopWords[] = $match[2];
             $this->q           = $match[1] . $match[3];
         }
+        // print the stopwords as a user warning
         if (sizeof($this->stopWords) > 0) {
             $stopwordsString = "";
             foreach ($this->stopWords as $stopword) {
@@ -1076,7 +1099,7 @@ class MetaGer
         }
     }
 
-    public function searchCheckPhrase()
+    private function searchCheckPhrase()
     {
         $p   = "";
         $tmp = $this->q;
@@ -1094,7 +1117,7 @@ class MetaGer
         }
     }
 
-    public function searchCheckNoSearch()
+    private function searchCheckNoSearch()
     {
         if ($this->q === "") {
             $this->warnings[] = trans('metaGer.formdata.noSearch');
@@ -1433,6 +1456,11 @@ class MetaGer
         return $this->domainBlacklist;
     }
 
+    public function getUserUrlBlacklist()
+    {
+        return $this->urlBlacklist;
+    }
+
     public function getDomainBlacklist()
     {
         return $this->domainsBlacklisted;
diff --git a/app/Models/Result.php b/app/Models/Result.php
index c60bf62f3178fac5ac4b24b5b35d06e0c634040a..e7ee28f9233d25f1313b0cf953c01125ec6918ea 100644
--- a/app/Models/Result.php
+++ b/app/Models/Result.php
@@ -216,12 +216,17 @@ class Result
     # Überprüft ob das Ergebnis aus irgendwelchen Gründen unerwünscht ist.
     public function isValid(\App\MetaGer $metager)
     {
-        # Perönliche URL und Domain Blacklist
-        if (in_array($this->strippedHost, $metager->getUserHostBlacklist())
-            || in_array($this->strippedDomain, $metager->getUserDomainBlacklist())) {
+        # Perönliche Host und Domain Blacklist
+        if (in_array(strtolower($this->strippedHost), $metager->getUserHostBlacklist())
+            || in_array(strtolower($this->strippedDomain), $metager->getUserDomainBlacklist())) {
             return false;
         }
 
+        # Persönliche URL Blacklist
+        foreach ($metager->getUserUrlBlacklist() as $word) {
+            if (strpos(strtolower($this->link), $word)) return false;
+        }
+
         # Allgemeine URL und Domain Blacklist
         if ($this->strippedHost !== "" && (in_array($this->strippedHost, $metager->getDomainBlacklist()) || in_array($this->strippedLink, $metager->getUrlBlacklist()))) {
             return false;
diff --git a/resources/lang/de/hilfe.php b/resources/lang/de/hilfe.php
index 652df71c07ff4fba28c5d8534d2003bdc08b8012..bc236580a7a36dbf5be1eb0a5722e1cf8f8b9bff 100644
--- a/resources/lang/de/hilfe.php
+++ b/resources/lang/de/hilfe.php
@@ -39,7 +39,6 @@ return [
     "domains.sitesearch.example.2"   => "<i>meine suche</i> site:de.wikipedia.org",
     "domains.sitesearch.example.3"   => "Beispiel: Sie möchten auch Ergebnisse von Wikipedia in anderen Sprachen (wikipedia.org) erhalten. Ihre Suche lautet also:",
     "domains.sitesearch.example.4"   => "<i>meine suche</i> site:wikipedia.org",
-
     "domains.blacklist.explanation"  => "Manchmal kann es auch passieren, dass Sie Ergebnisse einer bestimmten Domain nicht mehr sehen möchten. In diesem Fall haben Sie zwei Möglichkeiten: Den Ausschluss einer Subdomain und den Ausschluss einer Top-Level-Domain. Dies erreichen Sie, indem Sie -site:<i>unterseite.ihre-seite.de</i> beziehungsweise -site:*.<i>ihre-seite.de</i> zu Ihrer Suche hinzufügen.",
     "domains.blacklist.example.1"    => "Beispiel: Sie haben genug von den ganzen Wikipedia-Ergebnissen. Nun haben Sie zwei Möglichkeiten:",
     "domains.blacklist.example.2"    => "Sie schließen alle Ergebnisse von der deutschen Wikipedia-Domain, also de.wikipedia.org, aus",
@@ -54,6 +53,12 @@ return [
     "domains.showcase.menu.3"        => "Eine Suche ohne Ergebnisse der Subdomain (de.wikipedia.de) starten",
     "domains.showcase.menu.4"        => "Eine Suche ohne Ergebnisse der Top-Level-Domain (wikipedia.de) starten",
     "domains.showcase.menu.5"        => "Probieren Sie es doch gleich einmal aus, indem Sie die Optionen anklicken.",
+
+    'urls.title' => 'URLs ausschließen',
+    'urls.explanation' => 'Sie können Suchergebnisse ausschließen, deren Ergebnislinks bestimmte Worte enthalten, indem Sie in ihrer Suche "-url:" verwenden.',
+    'urls.example.1' => 'Beispiel: Sie möchten keine Ergebnisse bei denen im Ergebnislink das Wort "Hund" auftaucht:',
+    'urls.example.2' => '<i>meine suche</i> -url:hund',
+
     "dienste"                        => "Weitere Dienste um die Suche herum",
     "app.title"                      => "Android-App",
     "app.1"                          => "Sie können MetaGer auch als App nutzen. Laden Sie sich dazu einfach die <a href=\"https://play.google.com/store/apps/details?id=de.metager.metagerapp\" target=\"_blank\" rel=\"noopener\">MetaGer App</a> auf ihr Android Smartphone.",
diff --git a/resources/lang/de/metaGer.php b/resources/lang/de/metaGer.php
index e2baeb7c7bc4ae9de74c85f5ecd5559ee9ee8912..f776751c99e08556ab0fde5b7714b254bb9f241e 100644
--- a/resources/lang/de/metaGer.php
+++ b/resources/lang/de/metaGer.php
@@ -11,8 +11,8 @@ return [
     'formdata.noSearch'        => 'Achtung: Sie haben keinen Suchbegriff eingegeben. Sie können ihre Suchbegriffe oben eingeben und es erneut versuchen.',
     'formdata.dartEurope'      => 'Hinweis: Sie haben Dart-Europe aktiviert. Die Suche kann deshalb länger dauern und die maximale Suchzeit wurde auf 10 Sekunden hochgesetzt.',
     'formdata.hostBlacklist'   => 'Ergebnisse von folgenden Hosts werden nicht angezeigt: ":host"',
-
     'formdata.domainBlacklist' => 'Ergebnisse von folgenden Domains werden nicht angezeigt: ":domain"',
+    'formdata.urlBlacklist'    => 'Ergebnisse mit URLs die folgendes nicht beinhalten werden nicht angezeigt: ":url"',
     'formdata.stopwords'       => 'Sie machen eine Ausschlusssuche. Ergebnisse mit folgenden Wörtern werden nicht angezeigt: ":stopwords"',
     'formdata.phrase'          => 'Sie führen eine Phrasensuche durch: :phrase',
 
diff --git a/resources/views/hilfe.blade.php b/resources/views/hilfe.blade.php
index 63b2e2a941624b35b31023206698a070b668376f..9a236ebc15d98f115e8dd0bed4da6521860ebfb4 100644
--- a/resources/views/hilfe.blade.php
+++ b/resources/views/hilfe.blade.php
@@ -146,6 +146,18 @@
 			</div>
 		</div>
 	</div>
+	<div id="urls" class="panel panel-default">
+		<div class="panel-heading">
+			<h3 class="panel-title">{!! trans('hilfe.urls.title') !!}</h3>
+		</div>
+		<div class="panel-body">
+			<p>{!! trans('hilfe.urls.explanation') !!}</p>
+			<ul class="dotlist">
+				<li>{!! trans('hilfe.urls.example.1') !!}</li>
+				<div class = "well well-sm">{!! trans('hilfe.urls.example.2') !!}</div>
+			</ul>
+		</div>
+	</div>
 	<div class="panel panel-default">
 		<div class="panel-heading">
 			<h3 class="panel-title">{!! trans('hilfe.bang.title') !!}</h3>