diff --git a/metager/app/Http/Controllers/SettingsController.php b/metager/app/Http/Controllers/SettingsController.php
index 5b20e584282e79867777002990a05d1c6b2aa301..2636109a5f7a33217f6d6d158179371dad1e2a22 100644
--- a/metager/app/Http/Controllers/SettingsController.php
+++ b/metager/app/Http/Controllers/SettingsController.php
@@ -298,6 +298,15 @@ class SettingsController extends Controller
             }
         }
 
+        $tiles_startpage = $request->input('tiles_startpage', '');
+        if (!empty($tiles_startpage)) {
+            if ($tiles_startpage === "off") {
+                Cookie::queue(Cookie::forever('tiles_startpage', 'off', '/', null, $secure, false));
+            } elseif ($tiles_startpage === "on") {
+                Cookie::queue(Cookie::forget("tiles_startpage", "/"));
+            }
+        }
+
         $quotes = $request->input('zitate', '');
         if (!empty($quotes)) {
             if ($quotes === "off") {
@@ -349,6 +358,7 @@ class SettingsController extends Controller
             "new_tab",
             "zitate",
             "self_advertisements",
+            "tiles_startpage",
             "suggestions",
         ];
 
diff --git a/metager/app/Http/Controllers/TilesController.php b/metager/app/Http/Controllers/TilesController.php
index 042efe00a20962d6973dbd1def8144d52d05156c..9cef7309bfea640afa088efb4a7790d7021256bd 100644
--- a/metager/app/Http/Controllers/TilesController.php
+++ b/metager/app/Http/Controllers/TilesController.php
@@ -38,6 +38,9 @@ class TilesController extends Controller
      */
     public static function TILES(string $ckey): array
     {
+        // Check if the user has disabled tiles
+        if (!app(SearchSettings::class)->tiles_startpage)
+            return [];
         $tiles = self::STATIC_TILES();
         $tiles = array_merge($tiles, self::SUMA_TILES());
         return $tiles;
diff --git a/metager/app/SearchSettings.php b/metager/app/SearchSettings.php
index 1bd7ef1ad1131533fa4f98e2b7df641eb6580c84..43086cc014c6e00ad659c67660e145e18353405a 100644
--- a/metager/app/SearchSettings.php
+++ b/metager/app/SearchSettings.php
@@ -30,6 +30,8 @@ class SearchSettings
     public $enableQuotes = true;
     /** @var bool */
     public $self_advertisements;
+    /** @var bool */
+    public $tiles_startpage;
     /** @var string */
     public $suggestions = "bing";
     public $external_image_search = "metager";
@@ -75,6 +77,9 @@ class SearchSettings
         $this->self_advertisements = $this->getSettingValue("self_advertisements", true);
         $this->self_advertisements = $this->self_advertisements !== "off" ? true : false;
 
+        $this->tiles_startpage = $this->getSettingValue("tiles_startpage", true);
+        $this->tiles_startpage = $this->tiles_startpage !== "off" ? true : false;
+
         $suggestions = $this->getSettingValue("suggestions", "bing");
         if ($suggestions === "off") {
             $this->suggestions = "off";
diff --git a/metager/lang/de/settings.php b/metager/lang/de/settings.php
index 46d875fb93afbe521f94fc42fd1a1aae5d399327..d8a7e0a8cedb441214d9034e91d634c400f3eea0 100644
--- a/metager/lang/de/settings.php
+++ b/metager/lang/de/settings.php
@@ -88,4 +88,7 @@ return [
     'self_advertisements' => [
         'label' => "Subtile Werbung für unseren eigenen Service",
     ],
+    'tiles_startpage' => [
+        'label' => "Zeige Kacheln auf der Startseite",
+    ],
 ];
diff --git a/metager/lang/en/settings.php b/metager/lang/en/settings.php
index 5f8aaea5050d84550080f74f211d0ee47027529d..ec48e3f697e3535406a2e590ec3d42fc05c220aa 100644
--- a/metager/lang/en/settings.php
+++ b/metager/lang/en/settings.php
@@ -37,6 +37,9 @@ return [
     'self_advertisements' => [
         "label" => "Subtle advertisements for our own service",
     ],
+    'tiles_startpage' => [
+        'label' => "Show tiles on the startpage",
+    ],
     'system' => 'System Default',
     'dark' => 'Dark',
     'light' => 'Light',
diff --git a/metager/resources/js/startpage/tiles.js b/metager/resources/js/startpage/tiles.js
index e96d12b9d7060890272c12155ac259692cbe54a0..9838eb2dd5f17936219b9c5c04cbd83860ff0982 100644
--- a/metager/resources/js/startpage/tiles.js
+++ b/metager/resources/js/startpage/tiles.js
@@ -49,7 +49,7 @@
         let native_tile_count = getRegularTileCount();
         let min_advertisements = 2;
 
-        let tile_width = parseFloat(window.getComputedStyle(document.querySelector("#tiles > a")).width.replace("px", ""));
+        let tile_width = parseFloat(window.getComputedStyle(document.querySelector("#tiles")).getPropertyValue("--tile-width").replace("px", ""));
         let tile_gap = parseFloat(window.getComputedStyle(document.querySelector("#tiles"))["column-gap"].replace("px", ""));
         let client_width = document.querySelector("html").clientWidth;
         let client_height = document.querySelector("html").clientHeight;
diff --git a/metager/resources/less/metager/pages/startpage/tiles.less b/metager/resources/less/metager/pages/startpage/tiles.less
index 4c0fb83abbfa10b7a0cf79fa3d5fa073ea893550..61bd30fbb20dc5b3441e12018ee865e764b57e23 100644
--- a/metager/resources/less/metager/pages/startpage/tiles.less
+++ b/metager/resources/less/metager/pages/startpage/tiles.less
@@ -8,6 +8,7 @@ div#tiles-container {
         flex-grow: 0;
         width: 100%;
         @tile_width: 115px;
+        --tile-width: @tile_width; // Variable is used by JS
         @tile_gap: 16px;
 
         @nine_row_width: calc(calc(9 * @tile_width) + calc(8 * @tile_gap));
diff --git a/metager/resources/views/settings/index.blade.php b/metager/resources/views/settings/index.blade.php
index bc17de0b7a9c7744dd4659e551d01644b9362de4..c361b8bb39a0279a1b6a337cd16ffc2a4e9e7073 100644
--- a/metager/resources/views/settings/index.blade.php
+++ b/metager/resources/views/settings/index.blade.php
@@ -225,6 +225,16 @@
                             @lang('settings.suggestions.on')</option>
                     </select>
                 </div>
+                <div class="form-group">
+                    <label for="tiles_startpage">@lang('settings.tiles_startpage.label')</label>
+                    <select name="tiles_startpage" id="tiles_startpage" class="form-control">
+                        <option value="off"
+                            {{ app(App\SearchSettings::class)->tiles_startpage === false ? 'disabled selected' : '' }}>
+                            @lang('settings.suggestions.off')</option>
+                        <option value="on" {{ app(App\SearchSettings::class)->tiles_startpage === true ? 'disabled selected' : '' }}>
+                            @lang('settings.suggestions.on')</option>
+                    </select>
+                </div>
                 <div class="form-group">
                     <label for="dm">@lang('settings.darkmode')</label>
                     <select name="dm" id="dm" class="form-control">