diff --git a/.gitignore b/.gitignore
index dffc66b4d51ad227838b39529211c867d8ebc6b3..7cd0c4ee013ba0cc2e27c4516e47da6779b47a3d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,4 +16,6 @@ langfiles.zip
 /public/js/scriptResultPage.js
 /public/css/beitritt.css
 /public/css/themes/default.css
+/public/css/utility.css
+/public/js/utility.js
 **/*.map
diff --git a/gulpfile.js b/gulpfile.js
index aa6dd399b201e0a78293cf66945fd4004c6f570e..ac05bdb195ae043675d53eb0fcc1a41e365eac54 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -22,13 +22,24 @@ elixir(function (mix) {
    | scriptStartPage.js
    | settings.js
   */
-  mix.scripts(['lib/jquery.js', 'lib/jquery-ui.min.js', 'lib/bootstrap.js', 'lib/lightslider.js', 'lib/masonry.js', 'lib/imagesloaded.js', 'lib/openpgp.min.js', 'lib/iframeResizer.min.js', 'lib/md5.js'], 'public/js/lib.js')
-  mix.scripts(['lib/jquery.js', 'lib/iframeResizer.contentWindow.min.js'], 'public/js/quicktips.js')
+  // lib
+  mix.scripts(['lib/jquery.js', 'lib/jquery-ui.min.js', 'lib/bootstrap.js', 'lib/lightslider.js', 'lib/masonry.js', 'lib/imagesloaded.js', 'lib/openpgp.min.js', 'lib/iframeResizer.min.js', 'lib/md5.js'], 'public/js/lib.js');
+  // quicktips
+  mix.scripts(['lib/jquery.js', 'lib/iframeResizer.contentWindow.min.js'], 'public/js/quicktips.js');
+  // start page
   mix.scripts(['scriptStartPage.js', 'results.js'], 'public/js/scriptStartPage.js');
+  // result page
   mix.scripts(['scriptResultPage.js', 'results.js'], 'public/js/scriptResultPage.js');
   mix.scripts(['scriptSubpages.js'], 'public/js/scriptSubpages.js');
+    // versioning
   mix.version(['css/themes/default.css', 'js/lib.js', 'js/quicktips.js']);
-  mix.less('metager/beitritt.less', 'public/css/beitritt.css')
-  mix.version(['css/beitritt.css'])
-  mix.version(['js/widgets.js', 'js/editLanguage.js', 'js/kontakt.js', 'js/scriptResultPage.js', 'js/scriptStartPage.js', 'js/settings.js'])
+  // utility
+  mix.scripts(['utility.js'], 'public/js/utility.js');
+  mix.less('utility.less', 'public/css/utility.css');
+  mix.version(['js/utility.js', 'css/utility.css']);
+  // beitritt
+  mix.less('metager/beitritt.less', 'public/css/beitritt.css');
+  mix.version(['css/beitritt.css']);
+  // general versioning
+  mix.version(['js/widgets.js', 'js/editLanguage.js', 'js/kontakt.js', 'js/scriptResultPage.js', 'js/scriptStartPage.js', 'js/settings.js']);
 })
diff --git a/resources/assets/js/scriptResultPage.js b/resources/assets/js/scriptResultPage.js
index 4c935c8c89bcc771593f445d2fe3eced7e9f0384..7b1cbf53572fb899e6a4fd2f9c847e1c0b9348c1 100644
--- a/resources/assets/js/scriptResultPage.js
+++ b/resources/assets/js/scriptResultPage.js
@@ -1,5 +1,4 @@
 $(document).ready(function () {
-  activateJSOnlyContent();
   createCustomFocuses();
   var focus = $('#foki > li.active > a').attr('aria-controls');
   var custom = $('#foki > li.active').hasClass('custom-focus-tab-selector');
@@ -11,11 +10,6 @@ $(document).ready(function () {
   }
 });
 
-function activateJSOnlyContent () {
-  $('#searchplugin').removeClass('hide');
-  $('.options').removeClass('hide');
-}
-
 function tabs () {
   $('#foki > li.tab-selector > a').each(function () {
     if ($(this).attr('target') != '_blank') {
@@ -42,7 +36,6 @@ function tabs () {
 }
 
 function getDocumentReadyForUse (fokus, custom = false) {
-  activateJSOnlyContent();
   clickLog();
   popovers();
   if (fokus === 'bilder') imageLoader();
diff --git a/resources/assets/js/scriptStartPage.js b/resources/assets/js/scriptStartPage.js
index 77130f495497108d4efc76656ed7186954e9660b..98ec339b26ce6024995339e557d49fb67df62776 100644
--- a/resources/assets/js/scriptStartPage.js
+++ b/resources/assets/js/scriptStartPage.js
@@ -5,7 +5,6 @@ $(document).ready(function () {
   if (location.href.indexOf('#plugin-modal') > -1) {
     $('#plugin-modal').modal('show');
   }
-  $('#addFocusBtn').removeClass('hide');
   $('button').popover();
 
   loadLocalStorage();
diff --git a/resources/assets/js/utility.js b/resources/assets/js/utility.js
new file mode 100644
index 0000000000000000000000000000000000000000..d94161ea25c77a246906e4f72090670c008ad3f4
--- /dev/null
+++ b/resources/assets/js/utility.js
@@ -0,0 +1,3 @@
+$(document).ready(function () {
+  $('.js-only').removeClass('js-only');
+});
diff --git a/resources/assets/less/utility.less b/resources/assets/less/utility.less
new file mode 100644
index 0000000000000000000000000000000000000000..2d1f7f920568b2247c79f48883df6577b7b5f09b
--- /dev/null
+++ b/resources/assets/less/utility.less
@@ -0,0 +1,3 @@
+.js-only {
+  display: none !important;
+}
\ No newline at end of file
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php
index 1b1e743941aacbbbf4eb70fb070f3e101afa0bd5..57d07ca997cff20572b3bccb0e9da75d6b476542 100644
--- a/resources/views/index.blade.php
+++ b/resources/views/index.blade.php
@@ -252,7 +252,7 @@
 			</div>
 		@endif
 		<div id="addFocusBtnDiv">
-			<button id="addFocusBtn" class="btn btn-default hide">
+			<button id="addFocusBtn" class="btn btn-default js-only">
 			<i class="fa fa-plus" aria-hidden="true"></i>
 			</button>
 		</div>
@@ -265,7 +265,7 @@
 		<fieldset>
 			<form id="searchForm" @if(Request::has('request') && Request::input('request') === "POST") method="POST" @elseif(Request::has('request') && Request::input('request') === "GET") method="GET" @else method="GET" @endif action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/meta/meta.ger3") }}" accept-charset="UTF-8">
 				<div class="input-group">
-					<div class="input-group-addon">
+					<div class="input-group-addon js-only">
 						<button type="button" data-toggle="popover" data-html="true" data-container="body" title="{{ trans('index.design') }}" data-content='&lt;ul id="color-chooser" class="list-inline list-unstyled"&gt;
 							&lt;li &gt;&lt;a id="standard" data-rgba="255,194,107,1" href="#"&gt;&lt;/a&gt;&lt;/li&gt;
 							&lt;li &gt;&lt;a id="standardHard" data-rgba="255,128,0,1" href="#"&gt;&lt;/a&gt;&lt;/li&gt;
@@ -305,11 +305,11 @@
 			</form>
 		</fieldset>
 		<ul class="list-inline searchform-bonus">
-			<li id="plug"
 			@unless ($browser === 'Firefox' || $browser === 'Mozilla' || $browser === 'Chrome' || $browser === 'Opera' || $browser === 'IE' || $browser === 'Edge' || $browser === 'Safari' || $browser === 'Vivaldi')
-				class="hidden"
-			@endunless>
-			<a href="#" data-toggle="modal" data-target="#plugin-modal" class="btn btn-default mutelink" title="{{ trans('index.plugintitle') }}"><i class="fa fa-plug" aria-hidden="true"></i> {{ trans('index.plugin') }}</a></li>
+			<li id="plug"	class="js-only">
+				<a href="#" data-toggle="modal" data-target="#plugin-modal" class="btn btn-default mutelink" title="{{ trans('index.plugintitle') }}"><i class="fa fa-plug" aria-hidden="true"></i> {{ trans('index.plugin') }}</a>
+			</li>
+			@endunless
 			@if (LaravelLocalization::getCurrentLocale() == "de")
 			<li>
                 <a href="https://suma-ev.de/presse/Werbefreie-Suche-mit-MetaGer.html" target="_blank" class="btn btn-default mutelink">
@@ -319,6 +319,7 @@
             @endif
 		</ul>
 	<script src="{{ elixir('js/scriptStartPage.js') }}"></script>
+	<script type="text/javascript" src="{{ elixir('js/utility.js') }}"></script>
 @endsection
 
 @section('optionalContent')
diff --git a/resources/views/layouts/researchandtabs.blade.php b/resources/views/layouts/researchandtabs.blade.php
index 70469bd0bbe4b919ea45db0a71e215118b87d396..f86aedad56c05d8e26e46efd90034a928601f468 100644
--- a/resources/views/layouts/researchandtabs.blade.php
+++ b/resources/views/layouts/researchandtabs.blade.php
@@ -1,5 +1,5 @@
 @if( strpos(rtrim(Request::header('REFERER'), '/'), LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/") )  === 0 && ( $browser === 'Firefox' || $browser === 'Mozilla' || $browser === 'Chrome' || $browser === 'IE' || $browser === 'Edge') )
-	<div id="searchplugin" class="alert alert-warning alert-dismissible hide" role="alert" style="">
+	<div id="searchplugin" class="alert alert-warning alert-dismissible js-only" role="alert" style="">
 		<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
 		{!! trans('researchandtabs.plugin.1', ['browser' => $browser]) !!}
 		<br />
diff --git a/resources/views/layouts/result.blade.php b/resources/views/layouts/result.blade.php
index b75fa046638c8886d50d16bea2f2d8eba67a7a59..0a977b9ba12e252b03282d60cf767a4149005b82 100644
--- a/resources/views/layouts/result.blade.php
+++ b/resources/views/layouts/result.blade.php
@@ -16,7 +16,7 @@
 							{{ $result->anzeigeLink }}
 						</a>
 					</div>
-					<div class="options hide">
+					<div class="options js-only">
 						<a tabindex="0" data-toggle="popover" data-trigger="focus" data-placement="auto bottom" data-container="body" data-html="true" data-title="<i class='fa fa-cog' aria-hidden='true'></i> Optionen">
 							@if(strlen($metager->getSite()) === 0)
 								<i class="fa fa-caret-down" aria-hidden="true"></i>
diff --git a/resources/views/layouts/resultPage.blade.php b/resources/views/layouts/resultPage.blade.php
index fe3801e9cb7d5f359dcf2f34a0032c502b8dda6b..299601f534f58560347145313bdbb5af035f6d6c 100644
--- a/resources/views/layouts/resultPage.blade.php
+++ b/resources/views/layouts/resultPage.blade.php
@@ -16,6 +16,7 @@
 		<link type="text/css" rel="stylesheet" href="/css/lightslider.css" />
 		<link type="text/css" rel="stylesheet" href="/font-awesome/css/font-awesome.min.css" />
 		<link id="theme" type="text/css" rel="stylesheet" href="/css/theme.css.php" />
+		<link type="text/css" rel="stylesheet" href="{{ elixir('css/utility.css') }}" />
 	</head>
 	<body id="resultBody">
 		@if( !isset($suspendheader) )
@@ -49,5 +50,6 @@
 		<img src="{{ action('ImageController@generateImage')}}?site={{ urlencode(url()->current()) }}" class="hidden" />
 		<script type="text/javascript" src="{{ elixir('js/lib.js') }}"></script>
 		<script type="text/javascript" src="{{ elixir('js/scriptResultPage.js') }}"></script>
+		<script type="text/javascript" src="{{ elixir('js/utility.js') }}"></script>
 	</body>
 </html>
diff --git a/resources/views/layouts/staticPages.blade.php b/resources/views/layouts/staticPages.blade.php
index ca680b0cfad5f7fe68248a5d2fb4664dbde4ae6a..2763065dbd932597564864345cdefa3cf7a1114d 100644
--- a/resources/views/layouts/staticPages.blade.php
+++ b/resources/views/layouts/staticPages.blade.php
@@ -18,6 +18,7 @@
 		<link type="text/css" rel="stylesheet" href="/font-awesome/css/font-awesome.min.css" />
 		<link type="text/css" rel="stylesheet" href="{{ elixir('css/themes/default.css') }}" />
 		<link id="theme" type="text/css" rel="stylesheet" href="/css/theme.css.php" />
+		<link type="text/css" rel="stylesheet" href="{{ elixir('css/utility.css') }}" />
 		@if (isset($css))
 			@if(is_array($css))
 				@foreach($css as $el)