diff --git a/.gitignore b/.gitignore
index fcbee8df402b7fb0d82cde721a45e62c56c2d9d7..53d05fa2e228e01a74c7c4850feae609fb55f9f1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,3 +24,5 @@ langfiles.zip
 **/*.map
 /.buildpath
 /.project
+
+composer.lock
\ No newline at end of file
diff --git a/app/MetaGer.php b/app/MetaGer.php
index 4668b206c9c1a63e64649d4b4a81182f6fcb4329..f64af6e8b08695529228fe808c879ff7ca2cb66d 100644
--- a/app/MetaGer.php
+++ b/app/MetaGer.php
@@ -690,8 +690,7 @@ class MetaGer
         return
             $sumaName === "qualigo"
             || $sumaName === "similar_product_ads"
-            || (!$overtureEnabled && $sumaName === "overtureAds")
-            || $sumaName == "rlvproduct";
+            || (!$overtureEnabled && $sumaName === "overtureAds");
     }
 
     public function sumaIsDisabled($suma)
@@ -780,7 +779,7 @@ class MetaGer
         $realEngNames = [];
         foreach ($enabledSearchengines as $realEng) {
             $nam = $realEng["name"]->__toString();
-            if ($nam !== "qualigo" && $nam !== "overtureAds" && $nam !== "rlvproduct") {
+            if ($nam !== "qualigo" && $nam !== "overtureAds") {
                 $realEngNames[] = $nam;
             }
         }
diff --git a/public/js/searchbar.js b/public/js/searchbar.js
index 305c1f42260e17c217921c47c4f409c4730d8b86..16e3a4dd26abe58fa2d8856193fe5bcac9657910 100644
--- a/public/js/searchbar.js
+++ b/public/js/searchbar.js
@@ -1,6 +1,5 @@
 $(function () {
   loadLocalStorage();
-  setSearchbarActionListeners();
 });
 
 /**
@@ -12,10 +11,6 @@ function loadLocalStorage () {
   }
 }
 
-function setSearchbarActionListeners () {
-  $('#toggleOptBtn').click(toggleOptionsDialog);
-}
-
 function setSettings () {
   var acceptedParams = ['autocomplete', 'key', 'lang', 'newtab', 'sprueche'];
   for (var key in localStorage) {
@@ -41,385 +36,4 @@ function setSettings () {
   if (requestMethod !== null && (requestMethod === 'GET' || requestMethod === 'POST')) {
     $('#searchForm').attr('method', requestMethod);
   }
-}
-
-function toggleOptionsDialog () {
-  var btnMode = $('#toggleOptBtn').attr('data-mode');
-  if (btnMode == 'o') {
-    openOptionsDialog();
-  } else {
-    closeOptionsDialog();
-  }
-}
-
-function openOptionsDialog () {
-  $('#toggleOptBtn').html('<i class="fa fa-chevron-up" aria-hidden="true"></i>');
-  $('#toggleOptBtn').attr('data-mode', 'c');
-  $('.search-option-frame').removeClass('hide');
-}
-
-function closeOptionsDialog () {
-  $('#toggleOptBtn').html('<i class="fa fa-sliders" aria-hidden="true"></i>');
-  $('#toggleOptBtn').attr('data-mode', 'o');
-  $('.search-option-frame').addClass('hide');
-}
-
-$(function () {
-  setFocusCreatorActionListeners();
-  loadInitialCustomFocuses();
-  loadInitialSelectedFocus();
-  focusChanged();
-});
-
-/**
- * Sets all action listeners for this page
- */
-function setFocusCreatorActionListeners () {
-  $('.focusCheckbox').click(checkboxCheckListener);
-  $('#addFocusBtn').click(() => showFocusCreateDialog(''));
-  $('#editFocusBtn').click(editCurrentFocus);
-  $('.save-focus-btn').click(saveFocus);
-  $('.delete-focus-btn').click(deleteFocus);
-  $('#focus-select').change(focusChanged);
-  // Save Focus on clicking enter while in the focus name input
-  $('#focus-name').keyup(function (event) {
-    if (event.keyCode == 13) {
-      saveFocus();
-    }
-  });
-  $('#create-focus-modal').on('shown.bs.modal', function () {
-    $('#focus-name').focus();
-  });
-}
-/**
- * Loads all the custom focuses stored in local storage
- */
-function loadInitialCustomFocuses () {
-  for (var key in localStorage) {
-    if (key.startsWith('focus_')) {
-      var focus = loadFocusById(key);
-      addFocus(focus.name);
-    }
-  }
-}
-
-function loadInitialSelectedFocus () {
-  setFocus(getFocusInUrl());
-}
-
-/**
- * Shows the focus create dialog
- * If an id is given it will try to load a focus for the given id
- */
-function showFocusCreateDialog (id) {
-  if (id === undefined) {
-    id = '';
-  }
-  document.getElementById('original-id').value = id;
-  $('#create-focus-modal').modal('show');
-  var storedFocus = loadFocusById(id);
-  var focus = {};
-  // Try to load a focus for the given id
-  $('#focus-name').val('');
-  uncheckAll();
-  if (storedFocus !== null) {
-    try {
-      focus = JSON.parse(localStorage.getItem(id));
-      $('#focus-name').val(focus.name);
-      for (var key in focus) {
-        if (key.startsWith('engine_')) {
-          $('.focusCheckbox[name=' + key + ']').prop('checked', true);
-        }
-      }
-    } catch (ex) {
-      console.error(ex);
-    }
-  }
-  toggleDeleteButton();
-}
-
-/**
- * Shows the focus create dialog for a given id
- */
-function showFocusEditDialog (id) {
-  showFocusCreateDialog(id);
-}
-
-function getCurrentFocus () {
-  return $("#foki > div.active").attr("id");
-}
-
-/**
- * Shows an edit dialog for the current selected focus
- */
-function editCurrentFocus () {
-  var currentFocus = getCurrentFocus();
-  showFocusEditDialog(currentFocus);
-}
-
-/**
- * Shows/Hides the delete button if (no) checkboxes are selected
- */
-function toggleDeleteButton () {
-  if (atLeastOneChecked()) {
-    $('.delete-focus-btn').show();
-  } else {
-    $('.delete-focus-btn').hide();
-  }
-}
-
-/**
- * Save the current Focus
- * Listens for save button
- */
-function saveFocus () {
-  /* Vorprüfungen */
-  // Falls keine Suchmaschine ausgewählt wurde
-  if (!atLeastOneChecked()) {
-    switch (document.documentElement.lang) {
-      case 'en':
-        alert('Please select at least 1 search engine.');
-        break;
-      case 'es':
-        alert('Por favor, seleccione al menos un motor de búsqueda.');
-        break;
-      default:
-        alert('Bitte mindestens 1 Suchmaschine auswählen.');
-        break;
-    }
-    return;
-  }
-  // Falls der Name zu kurz ist oder ungültige Zeichen enthält
-  var name = document.getElementById('focus-name').value;
-  if (!isValidName(name)) {
-    switch (document.documentElement.lang) {
-      case 'en':
-        alert('No characters other than a-z, A-Z, 0-9, ä, ö, ü, ß, -, _ allowed, at least 1 character');
-        break;
-      case 'es':
-        alert('Por favor, introduzca un nombre válido');
-        break;
-      default:
-        alert('Bitte gültigen Namen eingeben:\n* Keine Sonderzeichen\n* Mindestens 1 Buchstabe\n');
-        break;
-    }
-    return;
-  }
-  // Liest die original-id des aktuellen fokus-dialogs (gesetzt wenn man einen Fokus bearbeitet)
-  var oldId = document.getElementById('original-id').value;
-  var id = getIdFromName(name);
-  var overwrite = true;
-  // Wenn bereits ein Fokus mit dem Namen existiert, man diesen aber nicht editiert sondern gerade einen Neuen erstellt
-  if (alreadyInUse(name) && oldId !== id) {
-    // Fragt den Nutzer ob er den Fokus überschreiben möchte
-    if (!confirm('Name bereits genutzt\nüberschreiben?')) {
-      // Falls nicht wird das Speichern abgebrochen
-      return;
-    }
-    // Ansonsten wird der andere Fokus gelöscht
-    deleteFocusById(id);
-  }
-  /* Fokus speichern */
-  var focus = {};
-  // Ausgewählte Suchmaschinen lesen und zu Fokus hinzufügen
-  $('input[type=checkbox]:checked').each(function (el) {
-    focus[$(this).attr('name')] = $(this).val();
-  });
-
-  // Name setzen
-  focus['name'] = name;
-  // Alte Version des Fokus löschen (aus localStorage und von der Webseite, falls eine existiert)
-  if (oldId !== '') {
-    localStorage.removeItem(oldId);
-    removeFocusById(oldId);
-  }
-  // Neue Version des Fokus hinzufügen (zu localStorage und der Webseite)
-  localStorage.setItem(id, JSON.stringify(focus));
-  addFocus(name);
-  setFocus(id);
-  // Fokus-Formular verbergen
-  $('#create-focus-modal').modal('hide');
-}
-
-/**
- * Delete current Focus
- * Listens for delete button
- */
-function deleteFocusById (id) {
-  localStorage.removeItem(id);
-  removeFocusById(id);
-  $('#focus-select').change();
-}
-
-/**
- * Delete current Focus
- * Listens for delete button
- */
-function deleteFocus () {
-  var oldId = document.getElementById('original-id').value;
-  deleteFocusById(oldId);
-  $('#create-focus-modal').modal('hide');
-  $('#focus-select').change();
-}
-
-/**
- * Is the name valid (in terms of characters)?
- */
-function isValidName (name) {
-  // no Characters other then a-z, A-Z, 0-9, ä, ö, ü, ß, -, _ allowed
-  // at least 1 character
-  return /^[a-zA-Z0-9äöüß\-_ ]+$/.test(name);
-}
-
-/**
- * Is at least one focus selected?
- */
-function atLeastOneChecked () {
-  return $('.focusCheckbox:checked').length > 0;
-}
-
-/**
- * Is there already a focus with this name?
- */
-function alreadyInUse (name) {
-  return localStorage.hasOwnProperty(getIdFromName(name));
-}
-
-/**
- * Adds an option to the focus selector
- */
-function addFocus (name) {
-  var id = getIdFromName(name);
-  var customFocus = $('<div id="' + id +'"><a href="#" target="_self">' + name + '</a><a class="edit-focus" data-id="' + id + '" href="#"><i class="fa fa-wrench"></i></div>');
-  $(customFocus).find(".edit-focus").click(function(){
-    showFocusEditDialog($(this).attr("data-id"));
-  });
-  $("#foki .search-option-frame").before(customFocus);
-}
-
-/**
- * Remove the focuses html-elements
- */
-function removeFocus (name) {
-  removeFocusById(getIdFromName(name));
-}
-
-/**
- * Remove the focuses html-elements
- */
-function removeFocusById (id) {
-  if (id == '') {
-    return;
-  }
-  $('#focus-select option[value="' + id + '"]').remove();
-}
-
-/**
- * Turns a name into an id
- * Converts special characters and spaces
- */
-function getIdFromName (name) {
-  name = name.toLowerCase();
-  name = name.split(' ').join('_');
-  name = name.split('ä').join('ae');
-  name = name.split('ö').join('oe');
-  name = name.split('ü').join('ue');
-  return 'focus_' + name;
-}
-
-/**
- * Loads the focus object for the given id from local storage
- */
-function loadFocusById (id) {
-  return JSON.parse(localStorage.getItem(id));
-}
-
-/**
- * Unchecks all focuses from the focus creator dialog
- */
-function uncheckAll () {
-  $('.focusCheckbox').prop('checked', false);
-}
-
-/**
- * Sets the selected focus to default
- */
-function setFocusToDefault () {
-  setFocus(DEFAULT_FOCUS);
-}
-
-/**
- * Sets the selected focus
- * @param {String} focusID The id of the focus, without #
- */
-function setFocus (focusID) {
-  $('#focus-select option[value="' + focusID + '"]').prop('selected', true);
-  $('#focus-select').change();
-}
-
-function focusChanged () {
-  var selectedFocus = getCurrentFocus();
-  if (focusIsEditable(selectedFocus)) {
-    enableEditFocusBtn();
-  } else {
-    disableEditFocusBtn();
-  }
-  loadFocusForSearch(selectedFocus);
-}
-
-function focusIsEditable (focus) {
-  if (focus.startsWith('focus_')) {
-    return true;
-  } else {
-    return false;
-  }
-}
-
-function enableEditFocusBtn () {
-  $('#editFocusBtn').removeClass('disabled').click(editCurrentFocus);
-}
-
-function disableEditFocusBtn () {
-  $('#editFocusBtn').addClass('disabled').off('click');
-}
-
-function loadFocusForSearch (focus) {
-  var focus = loadFocusById(focus);
-
-  var url ="/meta/meta.ger3?eingabe=x&focus=";
-
-  console.log(focus, url);
-
-  clearCustomSearch();
-  for (var key in focus) {
-    if (key.startsWith('engine_') && focus[key] == 'on') {
-      addSumaToCustomSearch(key);
-    }
-  }
-}
-
-function getFocusInUrl () {
-  var url = window.location;
-  var focReg = /focus=(focus_\w+)/.exec(url);
-  if (focReg && focReg[1]) {
-    return focReg[1];
-  }
-}
-
-function checkboxCheckListener (event) {
-  toggleDeleteButton();
-  var elem = event.target;
-  if (elem.name) {
-    if (elem.checked) {
-      setCheckedForAllWithName(elem.name, true);
-    } else {
-      setCheckedForAllWithName(elem.name, false);
-    }
-  }
-}
-
-function setCheckedForAllWithName (name, checked) {
-  $('.focusCheckbox[name=' + name + ']').prop('checked', checked);
-}
-
-//# sourceMappingURL=searchbar.js.map
+}
\ No newline at end of file
diff --git a/resources/assets/js/scriptStartPage.js b/resources/assets/js/scriptStartPage.js
index e0858632e4d79be768e6385e4ace6e054100738d..af3617010625c1bd3ccc50f2f989468ecdd9866e 100644
--- a/resources/assets/js/scriptStartPage.js
+++ b/resources/assets/js/scriptStartPage.js
@@ -155,10 +155,6 @@ var isChrome = !!window.chrome && !!window.chrome.webstore;
 // Blink engine detection
 var isBlink = (isChrome || isOpera) && !!window.CSS;
 // Prüft, ob der URL-Parameter "usage" auf "once" gesetzt ist.
-    alert(t('select-valid-name'));
-  } else if(atLeastOneChecked()) {
-    alert(t('select-engine'));
-  } else {
 
 function loadSavedResults () {
   var results = new Results();
diff --git a/resources/assets/less/metager/result.less b/resources/assets/less/metager/result.less
index 9234952b1231740a3285fe38192199485ee7d95d..41a1022b425569ba9337bd8f80f2f5e4514d073d 100644
--- a/resources/assets/less/metager/result.less
+++ b/resources/assets/less/metager/result.less
@@ -42,7 +42,7 @@
             text-overflow: ellipsis;
             white-space: nowrap;
             font-size: @result-font-small;
-            width: fit-content;
+            width: auto;
             &,
             &:active,
             &:hover,
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php
index 0cc1dc45340490cdf1cda61afd9ce9c29cacf604..07350606a49a31de71db92105ec53752f78f6475 100644
--- a/resources/views/index.blade.php
+++ b/resources/views/index.blade.php
@@ -11,14 +11,6 @@
 	@include('parts.searchbar', ['class' => 'startpage-searchbar'])
 	<script type="text/javascript" src="{{ elixir('js/scriptStartPage.js') }}"></script>
 	<script type="text/javascript" src="{{ elixir('js/searchbar.js') }}"></script>
-						<hr>
-						<h4>{{ trans('index.plugin.head.8') }}</h4>
-						<ol>
-							<li>{!! trans('index.plugin.firefox-klar.1') !!}</li>
-							<li>{{ trans('index.plugin.firefox-klar.2')}}<img src="/img/FirefoxKlar-Settings.png" width="100%"/></li>
-							<li>{{ trans('index.plugin.firefox-klar.3') }}<img src="/img/FirefoxKlar-addSearchengine.png" width="100%"/></li>
-							<li>{{ trans('index.plugin.firefox-klar.4') }}</li>
-						</ol>
 	<script src="{{ elixir('js/translations.js') }}"></script>
 @endsection
 
diff --git a/resources/views/layouts/staticPages.blade.php b/resources/views/layouts/staticPages.blade.php
index 50ef59d449f9766b2b82a6a2ae082df41b3f2460..7c6b159083a54b04d3d8b0991a4db1c038475bb9 100644
--- a/resources/views/layouts/staticPages.blade.php
+++ b/resources/views/layouts/staticPages.blade.php
@@ -35,12 +35,6 @@
 	<body>
 		<header>
 			@yield('homeIcon')
-									@if(LaravelLocalization::getCurrentLocale() == "de")
-										<li>
-										<a href="https://shop.spreadshirt.de/metager/" rel="noopener" target="_blank">MetaGer-Fanshop</a>
-
-										</li>
-									@endif
 		</header>
 		@include('parts.sidebar', ['id' => 'staticPagesSideBar'])
 		<div class="wrapper">
@@ -60,26 +54,6 @@
 				@yield('content')
 			</main>
 			@yield('optionalContent')
-					<div class="hidden-xs mg-img">
-					</div>
-					<div id="info">
-						<div class="links">
-							<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "kontakt") }}">
-								{{ trans('staticPages.nav5') }}
-							</a>
-							<span> - </span>
-							<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "impressum") }}">
-								{{ trans('staticPages.nav8') }}
-							</a>
-							@if(LaravelLocalization::getCurrentLocale() == "de")
-							<span> - </span>
-							<a href="https://shop.spreadshirt.de/metager/" rel="noopener" target="_blank">Fanshop</a>
-							@endif
-						</div>
-						<div>
-							{{ trans('staticPages.sumaev.1') }}<a href="https://www.suma-ev.de/">{{ trans('staticPages.sumaev.2') }}</a>
-					<div class="hidden-xs mg-img">
-			<img src="{{ action('ImageController@generateImage')}}?site={{ urlencode(url()->current()) }}" class="hidden" />
 		</div>
 		@if (isset($page) && $page === 'startpage')
 			@include('parts.footer', ['type' => 'startpage', 'id' => 'startPageFooter'])
diff --git a/resources/views/metager3.blade.php b/resources/views/metager3.blade.php
index a8c368e62370e47841d21e53fd10fa332f66a7c7..ae4112009941cb032f84dfc5c7fb832667f8d648 100644
--- a/resources/views/metager3.blade.php
+++ b/resources/views/metager3.blade.php
@@ -22,17 +22,13 @@
 		</div>
 	@endif
 	<main id="results">
-		{{-- Show initial products or ads --}}
-    		@if( $metager->getFokus() !== "produktsuche" && !$apiAuthorized)
-    		    @include('layouts.products', ['products' => $metager->getProducts()])
+		{{-- Show initial ads --}}
+		@if($mobile)
+			@include('layouts.ad', ['ad' => $metager->popAd()])
 		@else
-			@if($mobile)
+			@for($i = 0; $i <= 2; $i++)
 				@include('layouts.ad', ['ad' => $metager->popAd()])
-			@else
-				@for($i = 0; $i <= 2; $i++)
-					@include('layouts.ad', ['ad' => $metager->popAd()])
-				@endfor
-			@endif
+			@endfor
 		@endif
 		{{-- Show map --}}
 		{{-- Create results and ongoing ads --}}
diff --git a/resources/views/metager3results.blade.php b/resources/views/metager3results.blade.php
index 9bac71acf0f08cc94c6601a1ac31385002cc3e39..cb6dabc6e0e19bc1672402e17634d03839a90a34 100644
--- a/resources/views/metager3results.blade.php
+++ b/resources/views/metager3results.blade.php
@@ -19,16 +19,12 @@
 	</div>
 @endif
 <div id="results">
-	@if( $metager->getFokus() !== "produktsuche" && !$apiAuthorized)
-		@include('layouts.products', ['products' => $metager->getProducts()])
+	@if($mobile)
+		@include('layouts.ad', ['ad' => $metager->popAd()])
 	@else
-		@if($mobile)
+		@for($i = 0; $i <= 2; $i++)
 			@include('layouts.ad', ['ad' => $metager->popAd()])
-		@else
-			@for($i = 0; $i <= 2; $i++)
-				@include('layouts.ad', ['ad' => $metager->popAd()])
-			@endfor
-		@endif
+		@endfor
 	@endif
 	{{-- Show map --}}
 	{{-- Create results and ongoing ads --}}
diff --git a/resources/views/parts/footer.blade.php b/resources/views/parts/footer.blade.php
index 20751008432c51d2b2780edcfed35627d20fd9f0..f7d3d5bd5a54b887d54a171fb8069af0009221ed 100644
--- a/resources/views/parts/footer.blade.php
+++ b/resources/views/parts/footer.blade.php
@@ -1,7 +1,7 @@
 @if ($type === 'startpage' || $type === 'subpage' || $type === 'resultpage')
 <footer class="{{ $id }} noprint">
   <div id="info">
-    <span><a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "kontakt") }}">{{ trans('staticPages.nav5') }}</a> - <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "impressum") }}">{{ trans('staticPages.nav8') }}</a></span>
+    <span><a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "kontakt") }}">{{ trans('staticPages.nav5') }}</a> - <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "impressum") }}">{{ trans('staticPages.nav8') }}</a>@if(LaravelLocalization::getCurrentLocale() == "de") - <a href="https://shop.spreadshirt.de/metager/" rel="noopener" target="_blank">Fanshop</a>@endif</span>
     <span class="hidden-xs">{{ trans('staticPages.sumaev.1') }}<a href="https://www.suma-ev.de/">{{ trans('staticPages.sumaev.2') }}</a></span>
   </div>
 </footer>
diff --git a/resources/views/parts/sidebar.blade.php b/resources/views/parts/sidebar.blade.php
index cba4263b0b7176eaf9c74a8cb39cfa04c5a9e809..7df1a728d5f2fd6491d12572f848cd73cadd31d5 100644
--- a/resources/views/parts/sidebar.blade.php
+++ b/resources/views/parts/sidebar.blade.php
@@ -82,6 +82,11 @@
         <li>
           <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/beitritt/") }}" tabindex="203">{{ trans('staticPages.nav23') }}</a>
         </li>
+        @if(LaravelLocalization::getCurrentLocale() == "de")
+          <li>
+            <a href="https://shop.spreadshirt.de/metager/" rel="noopener" target="_blank">MetaGer-Fanshop</a>
+          </li>
+        @endif
         <li>
           <a href="https://www.boost-project.com/de/shops?charity_id=1129&amp;tag=bl" tabindex="204">{{ trans('staticPages.nav17') }}</a>
         </li>