{"id":43611,"date":"2021-09-23T16:23:07","date_gmt":"2021-09-23T14:23:07","guid":{"rendered":"https:\/\/kinqsta.com\/?p=102244"},"modified":"2023-07-27T14:13:26","modified_gmt":"2023-07-27T13:13:26","slug":"optimieren-css","status":"publish","type":"post","link":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/","title":{"rendered":"Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst"},"content":{"rendered":"<p>Auch im Jahr 2021 bleibt die Webleistung ein Problem. Laut HTTP Archive ben\u00f6tigt eine durchschnittliche Seite einen <a href=\"https:\/\/httparchive.org\/reports\/page-weight?start=latest\">Download von 2 MB<\/a>, stellt mehr als 60 HTTP-Anfragen und braucht <a href=\"https:\/\/httparchive.org\/reports\/loading-speed?start=latest\">18 Sekunden<\/a>, um auf einem mobilen Ger\u00e4t vollst\u00e4ndig geladen zu werden. Stylesheets machen 60 kB aus, die sich auf sieben Anfragen verteilen. Daher haben sie selten oberste Priorit\u00e4t, wenn es darum geht, Leistungsprobleme zu l\u00f6sen.<\/p>\n<p>CSS hat jedoch eine Wirkung, auch wenn sie noch so gering erscheint. Wenn du dich um dein <a href=\"https:\/\/kinqsta.com\/de\/blog\/was-ist-javascript\/\">JavaScript<\/a> gek\u00fcmmert hast, solltest du als N\u00e4chstes lernen, CSS richtig zu optimieren.<\/p>\n<p>Lass uns damit anfangen!<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Wie sich CSS auf die Leistung einer Seite auswirkt<\/h2>\n<p>CSS sieht unschuldig aus, kann aber eine hohe Rechenleistung erfordern.<\/p>\n<h3>CSS ist ein Render-Blocker<\/h3>\n<p>Wenn dein Browser auf ein <code>&lt;link&gt;<\/code>-Tag st\u00f6\u00dft, h\u00e4lt er andere Browser-Downloads und -Verarbeitungen an, w\u00e4hrend er die CSS-Datei abruft und analysiert.<\/p>\n<p>Auch JavaScript kann das <a href=\"https:\/\/kinqsta.com\/de\/blog\/render-blocking-javascript-css-eliminieren\/\">Rendering des Browsers blockieren<\/a>, aber eine asynchrone Verarbeitung ist damit m\u00f6glich:<\/p>\n<ol>\n<li>Das <code>async<\/code>-Attribut, um Skripte parallel herunterzuladen, die sofort ausgef\u00fchrt werden, wenn sie bereit sind.<\/li>\n<li>Das <code>defer<\/code>-Attribut, um Skripte parallel herunterzuladen, die dann der Reihe nach ausgef\u00fchrt werden, wenn das DOM fertig ist.<\/li>\n<li>Das Attribut <code>type=\"module\"<\/code>, um ein ES-Modul zu laden (das sich wie <code>defer<\/code> verh\u00e4lt).<\/li>\n<\/ol>\n<p>Assets wie Bilder ben\u00f6tigen oft mehr Bandbreite, aber <a href=\"https:\/\/kinqsta.com\/de\/blog\/webp\/\">es gibt effiziente Formate<\/a>, und sie k\u00f6nnen &#8222;<a href=\"https:\/\/kinqsta.com\/de\/blog\/wordpress-lazy-load\/\">lazy&#8220; geladen<\/a> werden (<code>loading=\"lazy\"<\/code>-Attribut), ohne das Browser-Rendering zu blockieren.<\/p>\n<p>All das ist bei CSS nicht m\u00f6glich. Die Datei wird im Cache gespeichert, so dass nachfolgende Seitenladevorg\u00e4nge schneller sein sollten, aber der Rendering-Blockiervorgang bleibt bestehen.<\/p>\n\n<h3>Gro\u00dfe CSS-Dateien brauchen Zeit zum Verarbeiten<\/h3>\n<p>Je gr\u00f6\u00dfer dein Stylesheet ist, desto l\u00e4nger dauert es, es herunterzuladen und in ein CSS-Objektmodell (CSSOM) umzuwandeln, das der Browser und die JavaScript-APIs verwenden k\u00f6nnen, um die Seite anzuzeigen. Obwohl CSS-Stylesheets kleiner sind als die meisten anderen Dateien auf Webseiten, gilt auch f\u00fcr sie die Faustregel &#8222;kleiner ist besser&#8220;.<\/p>\n<h3>CSS-Dateien wachsen<\/h3>\n<p>Es kann schwierig sein, Stile zu erkennen, die nicht mehr verwendet werden, und das Entfernen der falschen Stile kann auf einer Webseite verheerende Folgen haben. Entwickler entscheiden sich in der Regel f\u00fcr den sichersten Ansatz: &#8222;Alles beibehalten&#8220;. <a href=\"https:\/\/kinqsta.com\/de\/blog\/das-paket-konnte-not-nicht-installiert\/\">Seitenstile<\/a>, <a href=\"https:\/\/kinqsta.com\/de\/blog\/web-komponenten\/\">Komponenten<\/a> und Widgets, die nicht mehr verwendet werden, bleiben in CSS bestehen. Das Ergebnis? Die Dateigr\u00f6\u00dfe, die Komplexit\u00e4t und der Wartungsaufwand steigen exponentiell an, so dass die Entwickler immer weniger dazu geneigt sind, \u00fcberfl\u00fcssigen Code zu entfernen.<\/p>\n<h3>Stylesheets k\u00f6nnen auf andere Assets verweisen<\/h3>\n<p>CSS kann mithilfe von @import-Regeln auf andere Stylesheets verweisen. Diese Importe blockieren die Verarbeitung des aktuellen Stylesheets und laden weitere CSS-Dateien <strong>nacheinander<\/strong>.<\/p>\n<p>Auch auf andere Assets, wie z. B. Schriften und Bilder, kann verwiesen werden. Der Browser wird versuchen, die Downloads zu optimieren, aber im Zweifelsfall holt er sie sofort. Inline base64-kodierte Dateien m\u00fcssen noch weiter verarbeitet werden.<\/p>\n<h3>CSS-Effekte Rendering<\/h3>\n<p>Browser haben drei <a href=\"https:\/\/kinqsta.com\/de\/blog\/critical-rendering-path\/\">Rendering-Phasen<\/a>:<\/p>\n<ol>\n<li>In der <strong>Layout<\/strong>&#8211; (oder <strong>Reflow<\/strong>-) Phase werden die Abmessungen jedes Elements berechnet und wie es sich auf die Gr\u00f6\u00dfe oder Positionierung der Elemente um es herum auswirkt.<\/li>\n<li>In der <strong>Malphase<\/strong> werden die visuellen Teile der einzelnen Elemente auf separate Ebenen gezeichnet: Text, Farben, Bilder, Rahmen, Schatten usw.<\/li>\n<li>Der <strong>Verbund<\/strong> zeichnet jede Ebene in der richtigen Reihenfolge auf die Seite, je nach Stapelkontext, Positionierung, Z-Index usw.<\/li>\n<\/ol>\n<p>Wenn du nicht aufpasst, k\u00f6nnen \u00c4nderungen der CSS-Eigenschaften und Animationen dazu f\u00fchren, dass alle drei Phasen neu gerendert werden. Einige Eigenschaften, wie z. B. Schatten und Farbverl\u00e4ufe, sind au\u00dferdem rechenintensiver als Blockfarben und R\u00e4nder.<\/p>\n<h2>Tools zur CSS-Leistungsanalyse<\/h2>\n<p>Sich einzugestehen, dass man ein CSS-Leistungsproblem hat, ist der erste Schritt auf dem Weg zur Besserung! Die Ursachen zu finden und zu beheben ist eine andere Sache.<\/p>\n<p>Die folgenden Tools und Dienste (in keiner Reihenfolge) k\u00f6nnen dir helfen, Styling-Engp\u00e4sse in deinem Code zu erkennen.<\/p>\n<h3>1. DevTools Network Panel<\/h3>\n<p>Web-Performance-Spezialisten verbringen viel Zeit mit <a href=\"https:\/\/kinqsta.com\/de\/blog\/element-untersuchen\/\">DevTools<\/a> und insbesondere mit dem <strong>Netzwerk<\/strong>-Panel. DevTools ist in den <a href=\"https:\/\/kinqsta.com\/de\/browser-marktanteil\/\">meisten modernen Browsern<\/a> integriert, obwohl wir in unseren Beispielen Google Chrome verwenden werden.<\/p>\n<p>Die DevTools k\u00f6nnen \u00fcber das Browsermen\u00fc ge\u00f6ffnet werden, in der Regel \u00fcber <strong>Mehr Tools<\/strong> &gt; <strong>Entwicklertools<\/strong>, oder \u00fcber die Tastaturk\u00fcrzel <strong>Strg | Cmd + Shift + I<\/strong> oder <strong>F12<\/strong>.<\/p>\n<p>Wechsle zur Registerkarte &#8222;<strong>Netzwerk<\/strong>&#8220; und stelle sicher, dass &#8222;<strong>Cache deaktivieren<\/strong>&#8220; aktiviert ist, damit zwischengespeicherte Dateien den Bericht nicht beeintr\u00e4chtigen. Du kannst auch die Drosselungsoption \u00e4ndern, um langsamere mobile Netzwerke zu simulieren.<\/p>\n<p>Aktualisiere die Seite, um das Wasserfalldiagramm f\u00fcr den Download und die Verarbeitung anzuzeigen:<\/p>\n<figure id=\"attachment_102250\" aria-describedby=\"caption-attachment-102250\" style=\"width: 781px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/network-waterfall.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-102250 size-full\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/network-waterfall.png\" alt=\"DevTools Netzwerk-Panel\" width=\"781\" height=\"635\"><\/a><figcaption id=\"caption-attachment-102250\" class=\"wp-caption-text\">DevTools Netzwerk-Panel<\/figcaption><\/figure>\n<p>Jeder lange Balken ist besorgniserregend, aber du solltest dich besonders vor langen blockierten Balken in Acht nehmen (in wei\u00df dargestellt). In diesem Beispiel konnten die hervorgehobene Zeile und alle folgenden Zeilen nicht mit dem Herunterladen beginnen, bis die Rendering-blockierenden CSS- und JavaScript-Dateien am Anfang der HTML-Seite verarbeitet wurden.<\/p>\n<p>Mit dem <strong>Filterfeld<\/strong> kannst du bestimmte Assets ein- oder ausblenden:<\/p>\n<ul>\n<li><code>larger-than:<em>&lt;S&gt;<\/em><\/code>: Begrenzung auf Dateien, die gr\u00f6\u00dfer als <em>&lt;S&gt;<\/em> sind, ausgedr\u00fcckt in Bytes (10.000), Kilobytes (1.000 kB) oder Megabytes (1 M)<\/li>\n<li><code>-larger-than:&lt;S&gt;<\/code>: Auf Dateien beschr\u00e4nken, die kleiner als <em>&lt;S&gt;<\/em> sind<\/li>\n<li><code>-domain:*&lt;.yourdomain.com&gt;<\/code>: Zeige Anfragen von Dritten an, die nicht von deiner prim\u00e4ren Domain geladen werden. Diese sind einer der Hauptgr\u00fcnde f\u00fcr langsame Webseiten.<\/li>\n<\/ul>\n<p>Eine leistungsstarke Seite mit optimiertem CSS hat in der Regel weniger parallel geladene Assets mit kurzen blockierten\/gestoppten Balken.<\/p>\n<h3>2. WebPageTest<\/h3>\n<p><a href=\"https:\/\/www.webpagetest.org\/\">WebPageTest<\/a> bietet eine \u00e4hnliche Netzwerk-Wasserfall-Ansicht sowie viele andere Leistungsdiagramme:<\/p>\n<figure id=\"attachment_102254\" aria-describedby=\"caption-attachment-102254\" style=\"width: 1023px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/webpagetest.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-102254 size-full\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/webpagetest.png\" alt=\"WebPageTest.org Asset Waterfall\" width=\"1023\" height=\"667\"><\/a><figcaption id=\"caption-attachment-102254\" class=\"wp-caption-text\">WebPageTest.org Asset Waterfall<\/figcaption><\/figure>\n<p>Der Dienst nutzt Ger\u00e4te an verschiedenen globalen Standorten, damit du die Leistung und die CSS-Optimierungen unter realen Bedingungen beurteilen kannst.<\/p>\n<h3>3. Chrome DevTools Lighthouse Panel<\/h3>\n<p>Das DevTools <strong>Lighthouse<\/strong> Panel wird in Chromium-basierten Browsern wie Chrome, Edge, Brave, Opera und Vivaldi bereitgestellt. Du kannst Berichte zu Leistung, Progressive Web App, Best Practices, Barrierefreiheit und <a href=\"https:\/\/kinqsta.com\/de\/blog\/wordpress-seo\/\">Suchmaschinenoptimierung<\/a> f\u00fcr mobile und Desktop-Ger\u00e4te erstellen.<\/p>\n<figure id=\"attachment_102249\" aria-describedby=\"caption-attachment-102249\" style=\"width: 738px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/lighthouse-performance.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-102249 size-full\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/lighthouse-performance.png\" alt=\"DevTools Lighthouse Panel\" width=\"738\" height=\"787\"><\/a><figcaption id=\"caption-attachment-102249\" class=\"wp-caption-text\">DevTools Lighthouse Panel<\/figcaption><\/figure>\n<p>Das Tool macht Verbesserungsvorschl\u00e4ge, darunter auch M\u00f6glichkeiten zur Optimierung von CSS. Nicht alle sind praktikabel oder m\u00f6glich, aber die n\u00fctzlichsten Quick Wins werden hervorgehoben.<\/p>\n<h3>4. Google PageSpeed Insights<\/h3>\n<p><a href=\"https:\/\/kinqsta.com\/de\/blog\/google-pagespeed-insights\/\">PageSpeed Insights<\/a> ist die Online-Version von Lighthouse. Es hat weniger Funktionen, kann aber in jedem Browser verwendet werden und bietet einige alternative Einblicke.<\/p>\n<p>Zum Beispiel zeigt eine Treemap die gr\u00f6\u00dften JavaScript-Assets mit einer Coverage-Metrik, die angibt, welcher Anteil des Codes genutzt und welcher nicht genutzt wird:<\/p>\n<figure id=\"attachment_102251\" aria-describedby=\"caption-attachment-102251\" style=\"width: 1254px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/pagespeed-treemap.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-102251 size-full\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/pagespeed-treemap.png\" alt=\"Google PageSpeed Insights Treemap\" width=\"1254\" height=\"967\"><\/a><figcaption id=\"caption-attachment-102251\" class=\"wp-caption-text\">Google PageSpeed Insights Treemap<\/figcaption><\/figure>\n<p>CSS wird nicht angezeigt, aber die Menge an JavaScript hat einen Einfluss auf die Effizienz der Styles.<\/p>\n<p>\u00c4hnliche Tools zum <a href=\"https:\/\/kinqsta.com\/de\/blog\/webseiten-qeschwindigkeitstest\/#website-speed-test-tools\">Testen der Geschwindigkeit<\/a> von Webseiten sind <a href=\"https:\/\/tools.pingdom.com\/\">Pingdom Website Speed Test<\/a> und <a href=\"https:\/\/kinqsta.com\/de\/blog\/gtmetrix-speed-test\/\">GTmetrix<\/a>.<\/p>\n<h3>5. Chrome DevTools Coverage Panel<\/h3>\n<p>Das DevTools <strong>Coverage<\/strong> Panel in Chromium-basierten Browsern hilft dabei, ungenutzten CSS- (und JavaScript-) Code zu finden. W\u00e4hle <strong>Coverage<\/strong> aus dem Untermen\u00fc DevTools <strong>More<\/strong> <strong>Tools<\/strong>, aktualisiere dann deine Webseite und durchsuche deine Webseite\/Anwendung:<\/p>\n<figure id=\"attachment_102248\" aria-describedby=\"caption-attachment-102248\" style=\"width: 752px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/coverage.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-102248 size-full\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/coverage.png\" alt=\"DevTools Coverage Panel\" width=\"752\" height=\"793\"><\/a><figcaption id=\"caption-attachment-102248\" class=\"wp-caption-text\">DevTools Coverage Panel<\/figcaption><\/figure>\n<p>CSS- und JavaScript-Assets werden im <strong>Coverage<\/strong> Panel angezeigt, wobei der Anteil des ungenutzten Codes rot markiert ist. Wenn du auf eine Datei klickst, wird der Quelltext angezeigt und der nicht verwendete Code in der Zeilennummer rot hervorgehoben.<\/p>\n<p>Ein paar Dinge sind zu beachten:<\/p>\n<ul>\n<li>Die Metrik zur Abdeckung wird zur\u00fcckgesetzt, wenn du die Seite aktualisierst oder zu einer neuen Seite navigierst, wie es auf einer WordPress Seite \u00fcblich ist. Die Kennzahl f\u00fcr ungenutzten Code verringert sich nur, wenn du eine Single Page Application aufrufst, die Inhalte ohne Seitenaktualisierung l\u00e4dt.<\/li>\n<li>Das Tool kann nur das CSS ber\u00fccksichtigen, das bis zu einem bestimmten Zeitpunkt verwendet wurde. Es kann nicht feststellen, ob ein Widget nicht angesehen wurde oder mehrere JavaScript-gebundene Zust\u00e4nde hat.<\/li>\n<\/ul>\n<h3>6. Chrome DevTools Echtzeit-Leistungsmonitor<\/h3>\n<p>Chromium-basierte Browser verf\u00fcgen \u00fcber einen Echtzeit-Leistungsmonitor. Auch dieser ist \u00fcber das DevTools-Men\u00fc <strong>More Tools<\/strong> verf\u00fcgbar. Die Diagramme werden aktualisiert, wenn du auf Seiten navigierst, scrollst und Animationen ausl\u00f6st:<\/p>\n<figure id=\"attachment_102252\" aria-describedby=\"caption-attachment-102252\" style=\"width: 750px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/performance-monitor.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-102252 size-full\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/performance-monitor.png\" alt=\"DevTools Real-Time Performance Monitor\" width=\"750\" height=\"312\"><\/a><figcaption id=\"caption-attachment-102252\" class=\"wp-caption-text\">DevTools Real-Time Performance Monitor<\/figcaption><\/figure>\n<p>Die folgenden Metriken sind f\u00fcr die Optimierung der CSS-Leistung von besonderem Interesse (je niedriger, desto besser):<\/p>\n<ul>\n<li><strong>CPU usage:<\/strong> Prozessornutzung von 0% bis 100%.<\/li>\n<li><strong>Layouts\/sec:<\/strong> Die Rate, mit der der Browser die Seite neu layouten muss.<\/li>\n<li><strong>Style recalcs\/sec:<\/strong> Die Rate, mit der der Browser die Stile neu berechnen muss.<\/li>\n<\/ul>\n<p>Die anderen Metriken k\u00f6nnen auch n\u00fctzlich sein, wenn CSS aufgrund externer Faktoren Probleme hat (auch hier gilt: niedrigere Werte bedeuten eine bessere Leistung):<\/p>\n<ul>\n<li><strong>JS heap size:<\/strong> Der gesamte von JavaScript-Objekten verwendete Speicher.<\/li>\n<li><strong>DOM Nodes:<\/strong> Die Anzahl der Elemente im <a href=\"https:\/\/kinqsta.com\/de\/blog\/bewaehrte-html-praktiken\/\">HTML<\/a>-Dokument.<\/li>\n<li><strong>JS event listeners:<\/strong> Die Anzahl der registrierten JavaScript-Ereignis-Listener.<\/li>\n<li><strong>Documents:<\/strong> Die Anzahl der Ressourcen, einschlie\u00dflich der Seite, CSS-Dateien, JavaScript-Module, etc.<\/li>\n<li><strong>Document Frames:<\/strong> Die Anzahl der Frames, Iframes und JavaScript Worker Scripts.<\/li>\n<\/ul>\n<h3>7. DevTools Performance Report<\/h3>\n<p>Mit dem DevTools <strong>Performance<\/strong>-Panel kannst du Seitenaktivit\u00e4ten f\u00fcr weitere Analysen aufzeichnen und Leistungsprobleme erkennen. Die erstellten Berichte sind komplex und viele Entwickler meiden sie, aber sie liefern wertvolle Informationen.<\/p>\n<p>\u00dcber das Einstellungssymbol des Leistungspanels kannst du verschiedene Optionen einstellen, wie z. B. die Verlangsamung des Netzwerks und der CPU. Du kannst auch JavaScript-Samples deaktivieren, damit keine detaillierten Aufrufstapel aufgezeichnet werden.<\/p>\n<p>Um zu beginnen, klicke auf das runde <strong>Aufzeichnungssymbol<\/strong>, lade und\/oder benutze deine Seite und klicke dann auf die Schaltfl\u00e4che <strong>Stopp<\/strong>, um den Bericht anzuzeigen:<\/p>\n<figure id=\"attachment_102253\" aria-describedby=\"caption-attachment-102253\" style=\"width: 673px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/performance-report.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-102253 size-full\" src=\"https:\/\/kinqsta.com\/wp-content\/uploads\/2021\/08\/performance-report.png\" alt=\"DevTools Performance Report\" width=\"673\" height=\"848\"><\/a><figcaption id=\"caption-attachment-102253\" class=\"wp-caption-text\">DevTools Performance Report<\/figcaption><\/figure>\n<p>Fast alle diese Metriken sind f\u00fcr JavaScript-Entwickler\/innen von Nutzen, aber Probleme bei der CSS-Optimierung k\u00f6nnen besonders deutlich werden:<\/p>\n<ul>\n<li><strong>Oberer roter Balken<\/strong>: Dies zeigt an, dass die Bildrate deutlich gesunken ist, was zu Leistungsproblemen f\u00fchren kann. Das ist zu Beginn des Ladens einer Seite zu erwarten, aber auch \u00fcberm\u00e4\u00dfige CSS-Animationen k\u00f6nnen ein Problem darstellen.<\/li>\n<li><strong>Zusammenfassendes Diagramm<\/strong>: Hohe Lade-, Rendering- und Bildmetriken k\u00f6nnen auf CSS-Probleme hinweisen.<\/li>\n<\/ul>\n<h2>Indirekte CSS-Leistungsverbesserungen<\/h2>\n<p>Die folgenden Ma\u00dfnahmen beheben CSS-Probleme nicht direkt, aber sie k\u00f6nnen dir helfen, einige Leistungsprobleme mit relativ wenig Aufwand zu l\u00f6sen.<\/p>\n<h3>Verwende einen guten Host<\/h3>\n<p>Die Nutzung eines guten Hosts mit Servern in der N\u00e4he deiner Nutzer\/innen bringt unmittelbare Leistungsvorteile. Es gibt verschiedene Host-Tarife, aber es gibt drei Haupttypen:<\/p>\n<ol>\n<li><strong>Shared Hosting<\/strong>: Deine Webseite wird auf einem physischen Server gehostet, m\u00f6glicherweise neben Hunderten von anderen Webseiten. Speicherplatz, RAM, CPU-Zeit und Bandbreite werden gemeinsam genutzt. Die Tarife sind oft g\u00fcnstig, aber Leistung und Verf\u00fcgbarkeit werden durch andere Webseiten beeinflusst. Ein Upgrade ist zwar m\u00f6glich, aber deine Webseite bleibt in der Regel auf der gleichen Infrastruktur.<\/li>\n<li><strong>Dediziertes Hosting<\/strong>: Deine Webseite wird auf einem oder mehreren physischen Servern gehostet, die dir geh\u00f6ren. Die Hardware kann je nach Bedarf konfiguriert und aufger\u00fcstet werden. Die Tarife sind oft teuer, und Hardwareausf\u00e4lle bleiben problematisch.<\/li>\n<li><strong>Cloud-Hosting<\/strong>: Beim <a href=\"https:\/\/kinqsta.com\/de\/blog\/cloud-plattform-fuer-entwickler\/\">Cloud-Hosting<\/a> wird die Hardware-Infrastruktur in eine Reihe von Diensten abstrahiert, die nach Bedarf abgerufen werden k\u00f6nnen. Deine Webseite kann \u00fcber eine Reihe von Ger\u00e4ten bereitgestellt werden, um Upgrades zu erleichtern.<\/li>\n<\/ol>\n<p>Die Cloud-Hosting-Pl\u00e4ne und -Preise sind sehr unterschiedlich. Das k\u00f6nntest du in Betracht ziehen:<\/p>\n<ol>\n<li><a href=\"https:\/\/kinqsta.com\/de\/blog\/was-ist-paas\/\">Platform as a Service (PaaS)<\/a> Optionen, wie virtuelle Webserver und Datenbanken, oder<\/li>\n<li><a href=\"https:\/\/kinqsta.com\/de\/blog\/saas-produkte\/\">Software-as-a-Service-Optionen (SaaS)<\/a>, die <a href=\"https:\/\/kinqsta.com\/de\/\">vollst\u00e4ndig verwaltete Anwendungen wie WordPress<\/a> anbieten.<\/li>\n<\/ol>\n<p>Ein Wechsel des Hosts kann die Leistung steigern. Es ist unwahrscheinlich, dass du damit alle Probleme l\u00f6sen kannst, aber es ist eine kosteng\u00fcnstige L\u00f6sung f\u00fcr Backend- und Bandbreitenprobleme.<\/p>\n<p>Du k\u00f6nntest auch ein <a href=\"https:\/\/kinqsta.com\/de\/blog\/wordpress-cdn\/\">Content Delivery Network (CDN)<\/a> oder ein spezielles Bild- und Video-CDN in Betracht ziehen, das die Last auf mehrere Standorte verteilt, die geografisch n\u00e4her an den Nutzern liegen.<\/p>\n<h3>Browser- und Server-Effizienzfunktionen nutzen<\/h3>\n<p>Etwa 10 % der Webseiten aktivieren nicht die gzip-Komprimierung (oder besser), die normalerweise die Standard-Serveroption ist. Dadurch wird die Gr\u00f6\u00dfe von CSS um 60% oder mehr reduziert, indem die Dateien vor der \u00dcbertragung komprimiert werden. Es behebt zwar kein ineffizientes CSS, aber der Code kommt schneller an!<\/p>\n<p>Du solltest auch <a href=\"https:\/\/kinqsta.com\/de\/lernen\/http2\/\">HTTP\/2 (oder besser) aktivieren<\/a>, das Daten in einem kleineren Bin\u00e4rformat sendet, die Header komprimiert und mehr als eine Datei \u00fcber dieselbe TCP-Verbindung senden kann.<\/p>\n<p>Schlie\u00dflich solltest du sicherstellen, dass der Browser CSS und andere Dateien effektiv zwischenspeichern kann. Dazu musst du in der Regel <a href=\"https:\/\/www.w3.org\/Protocols\/rfc2616\/rfc2616-sec14.html#sec14.21\">Expires<\/a>, <a href=\"https:\/\/www.w3.org\/Protocols\/rfc2616\/rfc2616-sec14.html#sec14.29\">Last-Modified<\/a> und\/oder <a href=\"https:\/\/en.wikipedia.org\/wiki\/HTTP_ETag\">ETag-Hashes<\/a> im HTTP-Header setzen.<\/p>\n<h3>Optimiere dein CMS<\/h3>\n<p><a href=\"https:\/\/kinqsta.com\/de\/blog\/cms-software\/\">Content Management Systeme<\/a> wie WordPress k\u00f6nnen mit Themes und Plugins erweitert werden, die ihr eigenes CSS bereitstellen. Wenn m\u00f6glich, solltest du dein <a href=\"https:\/\/kinqsta.com\/de\/ebooks\/wordpress\/wordpress-beschleunigen\/\">CMS beschleunigen<\/a>, um:<\/p>\n<ol>\n<li>Entferne ungenutzte Plugins.<\/li>\n<li>Verwende schlankere Themes<\/li>\n<li>Aktiviere das <a href=\"https:\/\/kinqsta.com\/de\/blog\/was-ist-cache\/\">Caching<\/a>, um einen \u00fcberm\u00e4\u00dfigen Seitenaufbau zu verhindern.<\/li>\n<\/ol>\n<h3>Optimiere deine Bilder<\/h3>\n<p>Bilder haben nicht den gleichen Verarbeitungs- und Rendering-Overhead wie HTML, CSS und JavaScript, aber sie machen einen gro\u00dfen Teil des Seitengewichts und der nutzbaren Bandbreite aus. Bedenke:<\/p>\n<ol>\n<li>Entfernen von unn\u00f6tigen Bildern.<\/li>\n<li>\u00c4ndern der Gr\u00f6\u00dfe gro\u00dfer Bilder &#8211; vielleicht auf maximal 150% der Gr\u00f6\u00dfe, die sie auf dem Bildschirm haben k\u00f6nnen.<\/li>\n<li>Verwendung eines <a href=\"https:\/\/kinqsta.com\/de\/blog\/bilddateitypen\/\">geeigneten Bildformats<\/a> &#8211; idealerweise eine stark komprimierte Option wie <a href=\"https:\/\/kinqsta.com\/de\/blog\/webp\/\">WebP<\/a> oder AVIF, aber m\u00f6glicherweise auch <a href=\"https:\/\/kinqsta.com\/de\/blog\/wordpress-svg\/\">SVG<\/a> f\u00fcr Logos und Diagramme.<\/li>\n<li>Ersetzen von Bildern durch CSS-Farbverl\u00e4ufe oder andere Effekte.<\/li>\n<li>Hinzuf\u00fcgen von Breiten- und H\u00f6henattributen zu HTML <code>&lt;img&gt;<\/code>-Tags oder Verwendung der neuen <a href=\"https:\/\/developer.mozilla.org\/docs\/Web\/CSS\/aspect-ratio\">CSS-Eigenschaft aspect-ratio<\/a>, um sicherzustellen, dass vor dem Herunterladen des Bildes der entsprechende Platz auf der Seite reserviert wird.<\/li>\n<\/ol>\n<p>Ein spezialisiertes Bild-CDN kann einen Teil dieser Arbeit f\u00fcr dich \u00fcbernehmen. Weitere Tipps findest du in unserem Leitfaden zur <a href=\"https:\/\/kinqsta.com\/de\/blog\/optimiert-bilder-fur-web\/\">Optimierung von Bildern f\u00fcr das Internet<\/a>.<\/p>\n<h3>Ungenutzte CSS entfernen<\/h3>\n<p>Die schnellsten Stile sind die, die du nie laden oder rendern musst! Versuche, nicht mehr ben\u00f6tigten <a href=\"https:\/\/kinqsta.com\/de\/blog\/wordpress-css\/\">CSS-Code zu entfernen bzw. zu bearbeiten<\/a>, z. B. den f\u00fcr \u00e4ltere Seiten, Widgets oder Frameworks. Das kann bei gr\u00f6\u00dferen Webseiten schwierig sein, und es ist nicht immer klar, ob eine bestimmte Gruppe von Stilen notwendig ist oder nicht.<\/p>\n<p>Die folgenden Tools analysieren die HTML- und CSS-Nutzung zum Zeitpunkt der Erstellung oder durch Crawling von URLs, um \u00fcberfl\u00fcssigen Code zu identifizieren. Da dies nicht immer ausreicht, k\u00f6nnen zus\u00e4tzliche Konfigurationen vorgenommen werden, um sicherzustellen, dass Stile, die durch JavaScript und Benutzerinteraktionen ausgel\u00f6st werden, aufgef\u00fchrt werden d\u00fcrfen:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/uncss\/uncss\">UnCSS<\/a><\/li>\n<li><a href=\"https:\/\/unused-css.com\/\">UnusedCSS<\/a><\/li>\n<li><a href=\"https:\/\/purgecss.com\/\">PurgeCSS<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/purifycss\/purifycss\">PurifyCSS<\/a><\/li>\n<\/ul>\n<p>Es gibt eine bessere Option: Teile CSS in separate Dateien mit klaren Zust\u00e4ndigkeiten auf und dokumentiere sie entsprechend. Das Entfernen unn\u00f6tiger Stile ist dann wesentlich einfacher.<\/p>\n<h2>Optimiere die CSS-Ladeleistung<\/h2>\n<p>Nicht jedes CSS wird gleich schnell geladen. Der bescheidene <code>&lt;link&gt;<\/code>-Tag hat eine Reihe von Optionen und Eigenheiten, die nicht immer logisch sind.<\/p>\n<h3>Optimiere die Verwendung von Web Fonts<\/h3>\n<p><a href=\"https:\/\/kinqsta.com\/de\/blog\/besten-google-fonts\/\">Google Fonts<\/a> und \u00e4hnliche Font Foundries haben die <a href=\"https:\/\/kinqsta.com\/de\/blog\/html-fonts\/\">Webfonts<\/a> revolutioniert, aber ein paar Zeilen Font-Code k\u00f6nnen Hunderte von Kilobytes an Bandbreite verbrauchen.<\/p>\n<p>Hier sind unsere Optimierungsvorschl\u00e4ge:<\/p>\n<ol>\n<li><strong>Lade nur die Schriftarten, die du brauchst<\/strong>: Entferne Schriften, die du nicht brauchst, und pr\u00fcfe, ob neue Schriften notwendig sind.<\/li>\n<li><strong>Lade nur die Schnitte und Stile, die du brauchst<\/strong>: Die meisten Schriftgie\u00dfereien k\u00f6nnen den Download auf bestimmte Zeichens\u00e4tze (z. B. nur Latein), Schnitte (St\u00e4rken) und Kursivschnitte (Schr\u00e4gen) beschr\u00e4nken. Browser k\u00f6nnen fehlende Stile automatisch rendern, obwohl die Ergebnisse oft schlecht sind.<\/li>\n<li><strong>Beschr\u00e4nke die ben\u00f6tigten Zeichen<\/strong>: Selten verwendete Schriftarten k\u00f6nnen auf bestimmte Zeichen beschr\u00e4nkt werden. Zum Beispiel kann der Titel &#8222;CSS-Tutorial&#8220; in Open Sans definiert werden, indem ein <code>&text=<\/code>-Parameter zum Google-Fonts-Abfrage-String hinzugef\u00fcgt wird: <code>fonts.googleapis.com\/css?family=Open+Sans&text=CStuorial<\/code><\/li>\n<li><strong>Ziehe variable Schriftarten in Betracht<\/strong>: Variable Schriftarten definieren eine gro\u00dfe Vielfalt an Stilen, Schnitten und Kursivschnitten durch Vektorinterpolation. Die Schriftdatei ist etwas gr\u00f6\u00dfer, aber du brauchst nur eine statt mehrerer. Die <a href=\"https:\/\/www.recursive.design\/\">rekursive Schriftart<\/a> zeigt die Flexibilit\u00e4t variabler Schriftarten.<\/li>\n<li><strong>Lade die Schriftarten von deinem lokalen Server<\/strong>: Schriften <a href=\"https:\/\/kinqsta.com\/de\/blog\/lokaler-schriftarten\/\">selbst zu hosten<\/a> ist effizienter als eine Foundry zu nutzen. Es sind weniger DNS-Abfragen erforderlich und du kannst den Download auf <a href=\"https:\/\/caniuse.com\/woff2\">WOFF2 beschr\u00e4nken, das von allen modernen Browsern unterst\u00fctzt<\/a> wird. \u00c4ltere Browser (ich schaue dich an, IE) k\u00f6nnen auf eine OS-Schriftart zur\u00fcckgreifen.<\/li>\n<li><strong>Bedenke OS-Schriften<\/strong>: Die 500 kB gro\u00dfe Webschrift sieht vielleicht toll aus, aber w\u00fcrde es jemandem auffallen, wenn du zu den g\u00e4ngigen Schriftarten Helvetica, Arial, Georgia oder Verdana wechselst? OS- oder <a href=\"https:\/\/kinqsta.com\/de\/blog\/websichere-schriften\/\">websichere Schriftarten<\/a> sind eine einfache M\u00f6glichkeit, die Leistung zu steigern.<\/li>\n<\/ol>\n<h3>Verwende eine geeignete Option zum Laden von Schriften<\/h3>\n<p>Das Herunterladen und Verarbeiten von Web-Schriften kann einige Sekunden dauern. Der Browser wird entweder:<\/p>\n<ol>\n<li><strong>Einen Flash von ungestyltem Text anzeigen (FOUT)<\/strong>: Die erste verf\u00fcgbare Ausweichschrift wird zun\u00e4chst verwendet, aber ersetzt, sobald die Webschrift fertig ist.<\/li>\n<li><strong>Einen unsichtbaren Text anzeigen (FOIT)<\/strong>: Es wird kein Text angezeigt, bis die Webschrift fertig ist. Dies ist das Standardverfahren in modernen Browsern, die in der Regel drei Sekunden warten, bevor sie auf eine Ausweichschrift zur\u00fcckgreifen.<\/li>\n<\/ol>\n<p>Beides ist nicht ideal. Die CSS-Eigenschaft <a href=\"https:\/\/developer.mozilla.org\/docs\/Web\/CSS\/@font-face\/font-display\">font-display<\/a> und der Parameter Google Font &#038; display = k\u00f6nnen eine alternative Option ausw\u00e4hlen:<\/p>\n<ul>\n<li><strong>auto<\/strong>: Das Standardverhalten des Browsers (normalerweise FOIT).<\/li>\n<li><strong>block<\/strong>: Wirkt wie FOIT. Der Text ist bis zu drei Sekunden lang unsichtbar. Die Schrift wird nicht ausgetauscht, aber es kann dauern, bis der Text erscheint.<\/li>\n<li><strong>swap<\/strong>: Wirkt wie FOUT. Der erste Fallback wird verwendet, bis die Webschriftart verf\u00fcgbar ist. Der Text ist sofort lesbar, aber der Effekt des Schriftartwechsels kann st\u00f6rend sein. Der <a href=\"https:\/\/meowni.ca\/font-style-matcher\/\">Font Style Matcher<\/a> kann verwendet werden, um einen \u00e4hnlich gro\u00dfen Fallback zu definieren.<\/li>\n<li><strong>fallback<\/strong>: Ein Kompromiss zwischen FOIT und FOUT. Der Text ist f\u00fcr eine kurze Zeit (in der Regel 100 ms) unsichtbar, dann wird der erste Fallback verwendet, bis die Webschrift verf\u00fcgbar ist.<\/li>\n<li><strong>optional<\/strong>: \u00c4hnlich wie Fallback, nur dass hier keine Schriftart gewechselt wird. Die Webschriftart wird nur verwendet, wenn sie innerhalb der ersten Zeitspanne verf\u00fcgbar ist. Bei der ersten Seitenansicht wird wahrscheinlich eine Fallback-Schriftart angezeigt, bei den folgenden Ansichten wird die heruntergeladene und zwischengespeicherte Webschriftart verwendet.<\/li>\n<\/ul>\n<p>Die Verwendung von Swap, Fallback oder Optional kann zu einer sp\u00fcrbaren Leistungssteigerung f\u00fchren.<\/p>\n<h3>Vermeide CSS @import<\/h3>\n<p>Die <a href=\"https:\/\/developer.mozilla.org\/docs\/Web\/CSS\/@import\">@import at-rule<\/a> erlaubt es, CSS-Dateien in andere einzubinden:<\/p>\n<pre><code class=\"language-css\">\/* main.css *\/\n@import url(\"reset.css\");\n@import url(\"grid.css\");\n@import url(\"widget.css\");<\/code><\/pre>\n<p>Das scheint ein effektiver Weg zu sein, um kleinere Komponenten und Schriftarten zu laden. Leider blockiert jeder @import den Rendervorgang, und jede Datei muss nacheinander geladen und geparst werden.<\/p>\n<p>Mehrere <code>&lt;link&gt;<\/code>-Tags innerhalb von HTML sind effizienter und laden CSS-Dateien parallel:<\/p>\n<pre><code class=\"language-html\">&lt;link rel=\"stylesheet\" href=\"reset.css\"&gt;\n&lt;link rel=\"stylesheet\" href=\"grid.css\"&gt;\n&lt;link rel=\"stylesheet\" href=\"widget.css\"&gt;<\/code><\/pre>\n<p>Trotzdem ist es besser, wenn du&#8230;<\/p>\n<h3>CSS zusammenfassen und minimieren<\/h3>\n<p>Moderne Build Tools, CSS-Pr\u00e4prozessoren wie Sass und <a href=\"https:\/\/kinqsta.com\/de\/blog\/externes-css-kombiniert\/\">WordPress Plugins k\u00f6nnen alle Teilbereiche in einer gro\u00dfen CSS-Datei zusammenfassen<\/a>. Unn\u00f6tige Leerzeichen, Kommentare und Zeichen werden dann entfernt, um die Dateigr\u00f6\u00dfe auf ein Minimum zu reduzieren.<\/p>\n<p>Mehrere Dateien sind mit HTTP\/2 <a href=\"https:\/\/kinqsta.com\/de\/blog\/http3\/\">und h\u00f6her<\/a> weniger ein Leistungsproblem, aber eine einzige Datei ben\u00f6tigt nur einen Header und kann effizienter gzipped und gecached werden.<\/p>\n<p>Separate CSS-Dateien sind nur dann sinnvoll, wenn du ein oder mehrere Stylesheets hast, die h\u00e4ufig ge\u00e4ndert werden &#8211; vielleicht mehrmals pro Woche. Aber auch dann kann der meist statische CSS-Code in einer Datei zusammengefasst werden.<\/p>\n<p><a href=\"https:\/\/kinqsta.com\/de\/preise\/?plan=visits-business1\">Kinsta-Kunden<\/a> k\u00f6nnen in ihrem <a href=\"https:\/\/kinqsta.com\/de\/mykinsta\/\">MyKinsta-Dashboard<\/a> auf die <a href=\"https:\/\/kinqsta.com\/de\/docs\/wordpress-hosting\/wordpress-cdn\/kinsta-cdn\/#code-minification-1\">Funktion zur Code-Minifizierung<\/a> zugreifen, die ihnen dabei hilft. Mit dieser Funktion k\u00f6nnen Kunden die automatische CSS- und JavaScript-Minifizierung mit einem einfachen Klick aktivieren. So kann eine Seite ohne manuellen Aufwand beschleunigt werden.<\/p>\n<h3>Base64-Kodierung vermeiden<\/h3>\n<p><a href=\"https:\/\/jpillora.com\/base64-encoder\/\">Tools k\u00f6nnen Bilder in base64-Strings kodieren<\/a>, die du als Daten-URIs in HTML <code>&lt;img<\/code>&gt;-Tags und CSS-Hintergr\u00fcnden verwenden kannst:<\/p>\n<pre><code class=\"language-css\">.background {\n  background-image: url('data:image\/jpg;base64,ABC123...');\n}<\/code><\/pre>\n<p>Dadurch wird die Anzahl der HTTP-Anfragen reduziert, aber es schadet der CSS-Leistung:<\/p>\n<ul>\n<li>base64-Strings k\u00f6nnen 30% gr\u00f6\u00dfer sein als ihr bin\u00e4res \u00c4quivalent.<\/li>\n<li>Browser m\u00fcssen den String dekodieren, bevor ein Bild verwendet werden kann, und<\/li>\n<li>die \u00c4nderung eines Bildpixels macht die gesamte CSS-Datei ung\u00fcltig.<\/li>\n<\/ul>\n<p>Die base64-Kodierung solltest du nur in Betracht ziehen, wenn du sehr kleine, sich selten \u00e4ndernde Bilder verwendest und die resultierende Zeichenkette nicht wesentlich l\u00e4nger als eine URL ist.<\/p>\n<p>Allerdings kannst du wiederverwendbare SVG-Symbole mit UTF8 kodieren, z. B.<\/p>\n<pre><code class=\"language-css\">.svgbackground {\n  background-image: url('data:image\/svg+xml;utf8,&lt;svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 600 600\"&gt;&lt;circle cx=\"300\" cy=\"300\" r=\"150\" stroke-width=\"3\" stroke=\"#f00\" fill=\"#ff0\" \/&gt;&lt;\/svg&gt;');\n}<\/code><\/pre>\n<h3>CSS-Hacks und IE-Fallbacks entfernen<\/h3>\n<p>Wenn du nicht das Pech hast, dass du einen hohen Anteil an Internet Explorer-Nutzern hast, kannst du bedingte Stylesheets und Hacks f\u00fcr den IE aus deinem CSS entfernen. In den meisten F\u00e4llen werden IE-Nutzer trotzdem <em>etwas<\/em> sehen, vor allem wenn du ein Mobile-First-Design verwendest, das standardm\u00e4\u00dfig eine einfachere lineare Ansicht zeigt. Das Ergebnis wird vielleicht nicht sch\u00f6n und nicht pixelgenau sein, aber dein Entwicklungsbudget ist besser angelegt, wenn du die Barrierefreiheit f\u00fcr alle Nutzer\/innen ber\u00fccksichtigst.<\/p>\n<h3>CSS-Dateien vorladen<\/h3>\n<p>Der <code>&lt;link&gt;<\/code>-Tag bietet ein optionales <a href=\"https:\/\/developer.mozilla.org\/docs\/Web\/HTML\/Preloading_content\">Preload-Attribut<\/a>, mit dem ein Download sofort gestartet werden kann, anstatt auf den eigentlichen Verweis im HTML zu warten:<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n  &lt;meta charset=\"UTF-8\"&gt;\n  &lt;title&gt;My page&lt;\/title&gt;\n  &lt;!-- preload styles --&gt;\n  &lt;link rel=\"preload\" href=\"\/css\/main.css\" as=\"style\" \/&gt;\n  &lt;!-- lots more code --&gt;\n  &lt;!-- load preloaded styles --&gt;\n  &lt;link rel=\"stylesheet\" href=\"\/css\/main.css\" \/&gt;<\/code><\/pre>\n<p>Das ist besonders in WordPress und anderen CMS von Vorteil, wo ein Plugin ein Stylesheet weiter unten auf der Seite einf\u00fcgen k\u00f6nnte.<\/p>\n<h3>Kritisches Inline-CSS verwenden<\/h3>\n<p>Analyse-Tools empfehlen dir oft, &#8222;kritisches CSS&#8220; zu inline zu stellen oder &#8222;Rendering-blockierende Stylesheets zu reduzieren&#8220;. Dies verbessert die Leistung durch:<\/p>\n<ol>\n<li>Identifizierung wichtiger Stile, die von Elementen oberhalb der Falz verwendet werden (die beim Laden der Seite sichtbar sind)<\/li>\n<li>Einf\u00fcgen der wichtigen CSS in einen <code>&lt;style&gt;<\/code> Tag in deinem <code>&lt;head&gt;<\/code><\/li>\n<li>Asynchrones Laden des restlichen CSS, um Rendering-Blockaden zu vermeiden. Dies kann erreicht werden, indem das Stylesheet in einem &#8222;Druck&#8220;-Stil geladen wird, dem der Browser eine niedrigere Priorit\u00e4t gibt. JavaScript schaltet es dann in einen &#8222;All&#8220;-Medienstil um, sobald die Seite geladen ist (ein <code>&lt;noscript&gt;<\/code> sorgt daf\u00fcr, dass das CSS funktioniert, wenn JavaScript nicht verf\u00fcgbar ist):<\/li>\n<\/ol>\n<pre><code class=\"language-html\">&lt;style&gt;\n\/* critical styles *\/\nbody { font-family: sans-serif; color: #111; }\n&lt;\/style&gt;\n&lt;!-- load remaining styles --&gt;\n&lt;link rel=\"stylesheet\" \n     href=\"\/css\/main.css\"\n    media=\"print\" \n   onload=\"this.media='all'\"&gt;\n&lt;noscript&gt;\n  &lt;link rel=\"stylesheet\" href=\"\/css\/main.css\"&gt;\n&lt;\/noscript&gt;<\/code><\/pre>\n<p>Tools wie <a href=\"https:\/\/github.com\/addyosmani\/critical\">critical<\/a> und <a href=\"https:\/\/github.com\/filamentgroup\/criticalCSS\">criticalCSS<\/a> k\u00f6nnen dabei helfen, Stile f\u00fcr In-View-Elemente zu extrahieren.<\/p>\n<p>Diese Technik verbessert die Leistung sp\u00fcrbar und steigert die Audit-Scores. Webseiten oder Anwendungen mit einheitlichen Schnittstellen sollten einfacher zu implementieren sein, aber anderswo kann es schwieriger sein:<\/p>\n<ul>\n<li>Ein Tool zum Erstellen von Webseiten ist nur f\u00fcr die einfachsten Webseiten erforderlich.<\/li>\n<li>Der &#8222;Fold&#8220; ist auf jedem Ger\u00e4t anders.<\/li>\n<li>Deine Webseiten k\u00f6nnen eine Vielzahl von Layouts haben, die unterschiedliches kritisches CSS erfordern.<\/li>\n<li>Kritische CSS-Tools haben mit bestimmten Frameworks, client-seitig generiertem HTML und dynamischen Inhalten zu k\u00e4mpfen.<\/li>\n<li>Diese Technik kommt vor allem dem Laden der ersten Seite zugute. CSS wird f\u00fcr nachfolgende Seiten zwischengespeichert, sodass zus\u00e4tzliche Inline-Stile das Gewicht<\/li>\n<\/ul>\n<h3>Media Query Rendering verwenden<\/h3>\n<p>Eine einzige verkettete und minimierte Datei ist f\u00fcr die meisten Webseiten von Vorteil, aber Webseiten, die eine betr\u00e4chtliche Menge an gr\u00f6\u00dferen Bildschirmstilen ben\u00f6tigen, k\u00f6nnten CSS-Dateien aufteilen und mit einer Media Query laden:<\/p>\n<pre><code class=\"language-html\">&lt;!-- core styles loaded on all devices --&gt;\n&lt;link rel=\"stylesheet\" href=\"core.css\"&gt;\n&lt;!-- served to screens at least 40em wide --&gt;\n&lt;link rel=\"stylesheet\" media=\"(min-width: 40em)\" href=\"40em.css\"&gt;\n&lt;!-- served to screens at least 80em wide --&gt;\n&lt;link rel=\"stylesheet\" media=\"(min-width: 80em)\" href=\"80em.css\"&gt;<\/code><\/pre>\n<p>Dieses Beispiel geht von einer Mobile-First-Methodik aus. Mobile Ger\u00e4te laden <strong>core.css<\/strong>, m\u00fcssen aber die \u00fcbrigen Stylesheets nicht herunterladen oder analysieren.<\/p>\n<h3>Progressives Rendering verwenden<\/h3>\n<p>Progressives Rendering ist eine Technik, bei der einzelne Stylesheets f\u00fcr einzelne Seiten oder Komponenten definiert werden. Es kann f\u00fcr sehr gro\u00dfe Webseiten von Vorteil sein, bei denen einzelne Seiten aus einer Vielzahl von Komponenten aufgebaut sind.<\/p>\n<p>Jede CSS-Datei wird sofort geladen, bevor eine Komponente im HTML referenziert wird:<\/p>\n<pre><code class=\"language-html\">&lt;head&gt;\n  &lt;!-- core styles --&gt;\n  &lt;link rel=\"stylesheet\" href=\"core.css\" \/&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n  &lt;!-- header --&gt;\n  &lt;link rel=\"stylesheet\" href=\"header.css\" \/&gt;\n  &lt;header&gt;...&lt;\/header&gt;\n  &lt;!-- primary content --&gt;\n  &lt;link rel=\"stylesheet\" href=\"main.css\" \/&gt;\n  &lt;main&gt;\n    &lt;!-- widget styling --&gt;\n    &lt;link rel=\"stylesheet\" href=\"widget.css\" \/&gt;\n    &lt;div class=\"mywidget&gt;...&lt;\/div&gt;\n  &lt;\/main&gt;\n  &lt;!-- footer --&gt;\n  &lt;link rel=\"stylesheet\" href=\"footer.css\" \/&gt;\n  &lt;footer&gt;...&lt;\/footer&gt;\n&lt;\/body&gt;<\/code><\/pre>\n<p>Das funktioniert in den meisten Browsern gut. (Safari zeigt eine leere Seite an, bis das gesamte CSS geladen ist, aber das sollte nicht merklich schlechter sein als ein einzelnes gro\u00dfes Stylesheet.)<\/p>\n<p>Die Einf\u00fchrung von Web Components f\u00f6rdert auch die Verwendung von Scoped Styles, die geladen werden, wenn das benutzerdefinierte Element gerendert wird.<\/p>\n<h2>Optimiere die CSS-Leistung<\/h2>\n<p>CSS-Techniken und -Eigenschaften belasten den Browser, die CPU, den Speicher, die Bandbreite und andere Ressourcen unterschiedlich stark. Die folgenden Tipps k\u00f6nnen dir helfen, unn\u00f6tige Verarbeitungsprozesse und Leistungseinbu\u00dfen zu vermeiden.<\/p>\n<h3>\u00dcbernimm moderne Layout-Techniken (Grid und Flexbox)<\/h3>\n<p>Float-basierte Layouts sind schwierig zu erstellen, verwenden zahlreiche Eigenschaften, erfordern st\u00e4ndige Anpassungen von R\u00e4ndern und Abst\u00e4nden, m\u00fcssen mit Media-Queries verwaltet werden und sind mit erheblicher Browser-Verarbeitung verbunden. Sie waren viele Jahre lang die einzige praktikable Layout-Methode, aber sie sind nicht mehr notwendig. Verwende entweder:<\/p>\n<ul>\n<li><a href=\"https:\/\/kinqsta.com\/de\/blog\/responsiven-webdesign\/#flexbox-layout\">CSS Flexbox<\/a> f\u00fcr eindimensionale Layouts, die in die n\u00e4chste Zeile \u00fcbergehen k\u00f6nnen. Es ist ideal f\u00fcr Men\u00fcs, Bildergalerien, Karten, etc.<\/li>\n<li><a href=\"https:\/\/kinqsta.com\/de\/blog\/responsiven-webdesign\/#size-layout-elements-with-percentages-or-create-a-css-grid-layout\">CSS Grid<\/a> f\u00fcr zweidimensionale Layouts mit eindeutigen Zeilen und Spalten. Es ist ideal f\u00fcr Seitenlayouts.<\/li>\n<\/ul>\n<p>Beide sind einfacher zu entwickeln, ben\u00f6tigen weniger Code, werden schneller gerendert und passen sich ohne Media-Queries an jede Bildschirmgr\u00f6\u00dfe an.<\/p>\n<p>Sehr alte Browser erkennen die modernen Flexbox- und Grid-Eigenschaften nicht, sodass jedes Element zu einem Block wird. Zeige sie in einem einfachen, mobilen, linearen Layout an: <em>es ist nicht n\u00f6tig, das Design mit float-basierten Fallbacks zu emulieren<\/em>.<\/p>\n<h3>Ersetze Bilder durch CSS-Verl\u00e4ufe und Effekte<\/h3>\n<p>Entscheide dich, wenn m\u00f6glich, f\u00fcr CSS-Code anstelle von Bildern. Experimentiere mit Farbverl\u00e4ufen, R\u00e4ndern, Radien, Schatten, Filtern, Mischmodi, Masken, Beschneidungen und Pseudoelement-Effekten, um vorhandene Bilder wiederzuverwenden oder zu ersetzen.<\/p>\n<p>CSS-Effekte verbrauchen deutlich weniger Bandbreite, sind leichter zu \u00e4ndern und k\u00f6nnen in der Regel animiert werden.<\/p>\n<h3>Vermeide die \u00fcberm\u00e4\u00dfige Verwendung teurer Eigenschaften<\/h3>\n<p>Auch wenn du einen knappen deklarativen Code hast, erfordern manche CSS-Eigenschaften mehr Verarbeitung als andere. Die folgenden Eigenschaften l\u00f6sen Bildberechnungen aus, die bei \u00fcberm\u00e4\u00dfigem Gebrauch teuer werden k\u00f6nnen:<\/p>\n<ul>\n<li><code>position: fixed<\/code><\/li>\n<li><code>border-radius<\/code><\/li>\n<li><code>box-shadow<\/code><\/li>\n<li><code>text-shadow<\/code><\/li>\n<li><code>opacity<\/code><\/li>\n<li><code>transform<\/code><\/li>\n<li><code>filter<\/code><\/li>\n<li><code>backdrop-filter<\/code><\/li>\n<li><code>background-blend-mode<\/code><\/li>\n<\/ul>\n<h3>Verwende CSS-\u00dcberg\u00e4nge und Animationen, wenn m\u00f6glich<\/h3>\n<p>CSS-\u00dcberg\u00e4nge und -Animationen sind immer fl\u00fcssiger als JavaScript-gest\u00fctzte Effekte, die \u00e4hnliche Eigenschaften ver\u00e4ndern. In sehr alten Browsern werden sie nicht verarbeitet, aber da diese wahrscheinlich auf weniger leistungsf\u00e4higen Ger\u00e4ten laufen, ist das auch gut so.<\/p>\n<p>Vermeide jedoch \u00fcberm\u00e4\u00dfige Animationen. Effekte sollten das Nutzererlebnis verbessern, ohne die Leistung zu beeintr\u00e4chtigen oder Motion Sickness zu verursachen. \u00dcberpr\u00fcfe die Medienabfrage <a href=\"https:\/\/developer.mozilla.org\/docs\/Web\/CSS\/@media\/prefers-reduced-motion\">prefers-reduced-motion<\/a> und deaktiviere Animationen, wenn n\u00f6tig.<\/p>\n<h3>Vermeide die Animation von Eigenschaften, die ein Re-Layout ausl\u00f6sen<\/h3>\n<p>Wenn du die Abmessungen eines Elements (width, height, padding, border) oder die Position (top, bottom, left, right, margin) \u00e4nderst, kann das dazu f\u00fchren, dass die gesamte Seite bei jedem Animationsframe neu layoutet wird. Die effizientesten Eigenschaften zum Animieren sind:<\/p>\n<ul>\n<li><strong><code>opacity<\/code><\/strong><\/li>\n<li><strong><code>filter<\/code><\/strong>: Unsch\u00e4rfe, Kontrast, Schatten und andere Effekte<\/li>\n<li><strong><code>transform<\/code><\/strong>: Ein Element \u00fcbersetzen (verschieben), skalieren oder rotieren<\/li>\n<\/ul>\n<p>Browser k\u00f6nnen die hardwarebeschleunigte GPU nutzen, um diese Effekte in einer eigenen Ebene zu rendern, sodass nur die Compositing-Phase betroffen ist.<\/p>\n<p>Wenn du andere Eigenschaften animieren musst, kannst du die Leistung verbessern, indem du das Element mit position: absolute aus dem Seitenfluss nimmst.<\/p>\n<h3>Achte auf komplexe Selektoren<\/h3>\n<p>Die komplexesten CSS-Selektoren werden von den Browsern schnell geparst, aber wenn du sie vereinfachst, verringert sich die Dateigr\u00f6\u00dfe und die Leistung wird verbessert. Komplexe Selektoren werden oft erzeugt, wenn du tief verschachtelte Strukturen in CSS-Pr\u00e4prozessoren wie Sass erstellst.<\/p>\n<h3>Angeben, welche Elemente sich \u00e4ndern werden<\/h3>\n<p>Mit der <a href=\"https:\/\/developer.mozilla.org\/docs\/Web\/CSS\/will-change\">CSS-Eigenschaft will-change<\/a> kannst du angeben, wie ein Element ge\u00e4ndert oder animiert werden soll, damit der Browser im Voraus Optimierungen vornehmen kann:<\/p>\n<pre><code class=\"language-css\">.myelement {\n  will-change: transform, opacity;\n}<\/code><\/pre>\n<p>Es k\u00f6nnen beliebig viele kommagetrennte Werte definiert werden, aber die Eigenschaft sollte nur als letztes Mittel verwendet werden, um bekannte Leistungsprobleme zu beheben. Du solltest es nicht auf zu viele Elemente anwenden und darauf achten, dass du der Eigenschaft gen\u00fcgend Zeit zum Initialisieren gibst.<\/p>\n<h3>Ber\u00fccksichtige CSS Containment<\/h3>\n<p><a href=\"https:\/\/developer.mozilla.org\/docs\/Web\/CSS\/CSS_Containment\">Containment<\/a> ist eine neue CSS-Funktion, die die Leistung verbessern kann, indem sie es dir erm\u00f6glicht, isolierte Teilb\u00e4ume einer Seite zu identifizieren. Der Browser kann die Verarbeitung optimieren, indem er einen bestimmten DOM-Inhaltsblock rendert &#8211; oder <em>nicht<\/em> rendert.<\/p>\n<p>Die <a href=\"https:\/\/developer.mozilla.org\/docs\/Web\/CSS\/contain\">Eigenschaft contain<\/a> akzeptiert einen oder mehrere der folgenden Werte in einer durch Leerzeichen getrennten Liste:<\/p>\n<ul>\n<li><strong><code>none<\/code><\/strong>: Containment wird nicht angewendet<\/li>\n<li><strong><code>layout<\/code><\/strong>: Das Layout des Elements ist vom Rest der Seite isoliert &#8211; sein Inhalt hat keine Auswirkungen auf andere Elemente<\/li>\n<li><strong><code>paint<\/code><\/strong>: Die untergeordneten Elemente des Elements werden nicht au\u00dferhalb ihrer Begrenzung angezeigt<\/li>\n<li><strong><code>size<\/code><\/strong>: Die Gr\u00f6\u00dfe des Elements kann ohne \u00dcberpr\u00fcfung der untergeordneten Elemente bestimmt werden &#8211; die Abmessungen sind unabh\u00e4ngig vom Inhalt<\/li>\n<\/ul>\n<p>Au\u00dferdem gibt es zwei besondere Werte:<\/p>\n<ul>\n<li><strong><code>strict<\/code><\/strong>: Alle Einschlie\u00dfungsregeln (au\u00dfer keiner) werden angewendet<\/li>\n<li><strong><code>content<\/code><\/strong>: Wendet Layout und Farbe an<\/li>\n<\/ul>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-important\">\n            <h3>Important<\/h3>\n        <p>Eine Seite hat eine <code>&lt;ul&gt;<\/code>-Liste mit <code>contain: strict<\/code>; angewendet. Wenn du den Inhalt einer untergeordneten <code>&lt;li&gt;-<\/code>Liste \u00e4nderst, wird der Browser weder die Gr\u00f6\u00dfe noch die Position dieses Elements, anderer Elemente in der Liste oder anderer Elemente auf der Seite neu berechnen.<\/p>\n<\/aside>\n\n<p>CSS-Containment wird von den <a href=\"https:\/\/caniuse.com\/mdn-css_properties_contain\">meisten modernen Browsern unterst\u00fctzt<\/a>. In Safari und \u00e4lteren Anwendungen gibt es keinen Support, aber auch hier kann Containment sicher verwendet werden, da der Browser die Eigenschaft einfach ignoriert.<\/p>\n<h3>Reagiere auf den Save-Data-Header<\/h3>\n<p><a href=\"https:\/\/developer.mozilla.org\/docs\/Web\/HTTP\/Headers\/Save-Data\">Save-Data<\/a> ist ein HTTP-Request-Header, der anzeigt, dass der Nutzer reduzierte Daten angefordert hat. In manchen Browsern wird er als &#8222;Lite&#8220;- oder &#8222;Turbo&#8220;-Modus bezeichnet.<\/p>\n<p>Wenn er aktiviert ist, wird bei jeder Browseranfrage ein <code>Save-Data<\/code>-Header gesendet:<\/p>\n<pre><code class=\"language-text\">GET \/main.css HTTP\/1.0\nHost: site.com\nSave-Data: on<\/code><\/pre>\n<p>Der Server kann entsprechend reagieren, wenn Save-Data erkannt wird. Im Falle von CSS k\u00f6nnte er ein einfacheres, mobiles, lineares Layout senden, eine OS-Schriftart verwenden, zu Blockfarben wechseln oder Bildhintergr\u00fcnde mit niedriger Aufl\u00f6sung laden.<\/p>\n<p>Beachte, dass der Server bei ge\u00e4nderten Anfragen den folgenden Header zur\u00fcckgeben sollte, um sicherzustellen, dass minimale Inhalte nicht zwischengespeichert und wiederverwendet werden, wenn der Nutzer den Lite\/Turbo-Modus ausschaltet:<\/p>\n<pre><code class=\"language-text\">Vary: Accept-Encoding, Save-Data<\/code><\/pre>\n<p>Der Header kann auch durch clientseitiges JavaScript erkannt werden. Der folgende Code f\u00fcgt dem <code>&lt;html&gt;<\/code>-Element eine bestUX-Klasse hinzu, wenn Save-Data <em>nicht<\/em> aktiviert ist:<\/p>\n<pre><code class=\"language-js\">if ('connection' in navigator && !navigator.connection.saveData) {\n  document.documentElement.classList.add('bestUX');\n}<\/code><\/pre>\n<p>Die Stylesheets k\u00f6nnen dann entsprechend reagieren, ohne dass der Server manipuliert werden muss:<\/p>\n<pre><code class=\"language-css\">\/* no hero image by default *\/\nheader {\n  background-color: #abc;\n  background-image: none;\n}\n\/* hero image when no Save-Data *\/\n.bestUX header {\n  background-image: url(\"hero.jpg\");\n}<\/code><\/pre>\n<p>Die Medienabfrage <a href=\"https:\/\/developer.mozilla.org\/docs\/Web\/CSS\/@media\/prefers-reduced-data\">prefers-reduced-data<\/a> bietet als Alternative eine reine CSS-Option, die allerdings zum Zeitpunkt der Erstellung dieses Artikels in keinem Browser unterst\u00fctzt wird:<\/p>\n<pre><code class=\"language-css\">\/* no hero image by default *\/\nheader {\n  background-color: #abc;\n  background-image: none;\n}\n\/* hero image when no Save-Data *\/\n@media (prefers-reduced-data: no-preference) {\n  header {\n    background-image: url(\"hero.jpg\");\n  }\n}<\/code><\/pre>\n\n<h2>Zusammenfassung<\/h2>\n<p>Es gibt viele M\u00f6glichkeiten, die CSS-Leistung zu optimieren, aber f\u00fcr neue Projekte solltest du die folgenden Praktiken in Betracht ziehen:<\/p>\n<ol>\n<li><strong>Verwende einen <\/strong><a href=\"https:\/\/kinqsta.com\/de\/blog\/google-mobile-first-index\/\">Mobile-First-Ansatz<\/a>: Programmiere zuerst das einfachste mobile Layout und f\u00fcge dann Erweiterungen hinzu, wenn der Bildschirmplatz und die Browserfunktionen zunehmen.<\/li>\n<li><strong>Teile das CSS in separate Dateien mit eindeutigen Verantwortlichkeiten auf<\/strong>: Ein CSS-Pr\u00e4prozessor oder ein <a href=\"https:\/\/kinqsta.com\/de\/blog\/externes-css-kombiniert\/\">CMS Plugin kann CSS-Teilbereiche in einer einzigen Datei zusammenfassen<\/a>.<\/li>\n<li><strong>F\u00fcge einen Build-Schritt hinzu<\/strong>: Es gibt Tools, die den Code automatisch linsen, Probleme erkennen, verketten, minimieren, Bildgr\u00f6\u00dfen reduzieren und vieles mehr. Automatisierung macht das Leben leichter und die Wahrscheinlichkeit, dass du einen Optimierungsschritt vergisst, ist geringer.<\/li>\n<li><strong>Dokumentiere deine Stylesheets<\/strong>: Ein Styleguide mit dokumentierten Beispielen macht es einfacher, deinen Code zu \u00fcbernehmen und zu pflegen. Du kannst veraltetes CSS erkennen und entfernen, ohne in Schwei\u00df auszubrechen.<\/li>\n<\/ol>\n<p><a href=\"https:\/\/kinqsta.com\/de\/blog\/beste-programmiersprache-lernen-sollte\/#html-and-css\">Lerne endlich CSS<\/a>! Je mehr du wei\u00dft, desto weniger Code musst du schreiben und desto schneller wird deine Webanwendung. Es wird dich zu einem besseren Entwickler machen, unabh\u00e4ngig davon, welche Plattformen und Frameworks du verwendest.<\/p>\n<p><em>Welche anderen Tipps hast du, um die CSS-Leistung zu optimieren? Teile sie bitte in den Kommentaren mit!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Auch im Jahr 2021 bleibt die Webleistung ein Problem. Laut HTTP Archive ben\u00f6tigt eine durchschnittliche Seite einen Download von 2 MB, stellt mehr als 60 HTTP-Anfragen &#8230;<\/p>\n","protected":false},"author":188,"featured_media":43619,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[370,276],"topic":[1005],"class_list":["post-43611","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-css","tag-web-development","topic-wordpress-leistung"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst<\/title>\n<meta name=\"description\" content=\"CSS mag auf den ersten Blick harmlos erscheinen, aber es kann eine Menge Arbeit bedeuten. Mit diesem Leitfaden kannst du CSS richtig optimieren und die Leistung deiner Webseite verbessern.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst\" \/>\n<meta property=\"og:description\" content=\"CSS mag auf den ersten Blick harmlos erscheinen, aber es kann eine Menge Arbeit bedeuten. Mit diesem Leitfaden kannst du CSS richtig optimieren und die Leistung deiner Webseite verbessern.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-23T14:23:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-27T13:13:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/optimieren-css.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Craig Buckler\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"CSS mag auf den ersten Blick harmlos erscheinen, aber es kann eine Menge Arbeit bedeuten. Mit diesem Leitfaden kannst du CSS richtig optimieren und die Leistung deiner Webseite verbessern.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/optimieren-css.jpeg\" \/>\n<meta name=\"twitter:creator\" content=\"@craigbuckler\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Craig Buckler\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"24\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/\"},\"author\":{\"name\":\"Craig Buckler\",\"@id\":\"https:\/\/kinqsta.com\/de\/#\/schema\/person\/715d986404b06691ab3014e06596908e\"},\"headline\":\"Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst\",\"datePublished\":\"2021-09-23T14:23:07+00:00\",\"dateModified\":\"2023-07-27T13:13:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/\"},\"wordCount\":4984,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/optimieren-css.jpeg\",\"keywords\":[\"css\",\"web development\"],\"articleSection\":[\"WordPress Leistungstutorials\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/\",\"url\":\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/\",\"name\":\"Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst\",\"isPartOf\":{\"@id\":\"https:\/\/kinqsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/optimieren-css.jpeg\",\"datePublished\":\"2021-09-23T14:23:07+00:00\",\"dateModified\":\"2023-07-27T13:13:26+00:00\",\"description\":\"CSS mag auf den ersten Blick harmlos erscheinen, aber es kann eine Menge Arbeit bedeuten. Mit diesem Leitfaden kannst du CSS richtig optimieren und die Leistung deiner Webseite verbessern.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#primaryimage\",\"url\":\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/optimieren-css.jpeg\",\"contentUrl\":\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/optimieren-css.jpeg\",\"width\":1460,\"height\":730,\"caption\":\"Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinqsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress Leistung\",\"item\":\"https:\/\/kinqsta.com\/de\/thema\/wordpress-leistung\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinqsta.com\/de\/#website\",\"url\":\"https:\/\/kinqsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinqsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinqsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinqsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinqsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinqsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinqsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinqsta.com\/de\/#\/schema\/person\/715d986404b06691ab3014e06596908e\",\"name\":\"Craig Buckler\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinqsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8e76011e66720bd2e3e24e164aa6f0b2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8e76011e66720bd2e3e24e164aa6f0b2?s=96&d=mm&r=g\",\"caption\":\"Craig Buckler\"},\"description\":\"Freelance UK web developer, writer, and speaker. Has been around a long time and rants about standards and performance.\",\"sameAs\":[\"https:\/\/craigbuckler.com\/\",\"https:\/\/www.linkedin.com\/in\/craigbuckler\",\"https:\/\/x.com\/craigbuckler\",\"https:\/\/www.youtube.com\/channel\/UCQwdl5oBTWGhifS6bRGADMQ\"],\"url\":\"https:\/\/kinqsta.com\/de\/blog\/author\/craigbuckler\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst","description":"CSS mag auf den ersten Blick harmlos erscheinen, aber es kann eine Menge Arbeit bedeuten. Mit diesem Leitfaden kannst du CSS richtig optimieren und die Leistung deiner Webseite verbessern.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/","og_locale":"de_DE","og_type":"article","og_title":"Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst","og_description":"CSS mag auf den ersten Blick harmlos erscheinen, aber es kann eine Menge Arbeit bedeuten. Mit diesem Leitfaden kannst du CSS richtig optimieren und die Leistung deiner Webseite verbessern.","og_url":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2021-09-23T14:23:07+00:00","article_modified_time":"2023-07-27T13:13:26+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/optimieren-css.jpeg","type":"image\/jpeg"}],"author":"Craig Buckler","twitter_card":"summary_large_image","twitter_description":"CSS mag auf den ersten Blick harmlos erscheinen, aber es kann eine Menge Arbeit bedeuten. Mit diesem Leitfaden kannst du CSS richtig optimieren und die Leistung deiner Webseite verbessern.","twitter_image":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/optimieren-css.jpeg","twitter_creator":"@craigbuckler","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Craig Buckler","Gesch\u00e4tzte Lesezeit":"24\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#article","isPartOf":{"@id":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/"},"author":{"name":"Craig Buckler","@id":"https:\/\/kinqsta.com\/de\/#\/schema\/person\/715d986404b06691ab3014e06596908e"},"headline":"Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst","datePublished":"2021-09-23T14:23:07+00:00","dateModified":"2023-07-27T13:13:26+00:00","mainEntityOfPage":{"@id":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/"},"wordCount":4984,"commentCount":0,"publisher":{"@id":"https:\/\/kinqsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/optimieren-css.jpeg","keywords":["css","web development"],"articleSection":["WordPress Leistungstutorials"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/","url":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/","name":"Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst","isPartOf":{"@id":"https:\/\/kinqsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#primaryimage"},"image":{"@id":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#primaryimage"},"thumbnailUrl":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/optimieren-css.jpeg","datePublished":"2021-09-23T14:23:07+00:00","dateModified":"2023-07-27T13:13:26+00:00","description":"CSS mag auf den ersten Blick harmlos erscheinen, aber es kann eine Menge Arbeit bedeuten. Mit diesem Leitfaden kannst du CSS richtig optimieren und die Leistung deiner Webseite verbessern.","breadcrumb":{"@id":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#primaryimage","url":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/optimieren-css.jpeg","contentUrl":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2021\/09\/optimieren-css.jpeg","width":1460,"height":730,"caption":"Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst"},{"@type":"BreadcrumbList","@id":"https:\/\/kinqsta.com\/de\/blog\/optimieren-css\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinqsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"WordPress Leistung","item":"https:\/\/kinqsta.com\/de\/thema\/wordpress-leistung\/"},{"@type":"ListItem","position":3,"name":"Wie du CSS f\u00fcr eine optimale Leistung deiner Webseite optimierst"}]},{"@type":"WebSite","@id":"https:\/\/kinqsta.com\/de\/#website","url":"https:\/\/kinqsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinqsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinqsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinqsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinqsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinqsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinqsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinqsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinqsta.com\/de\/#\/schema\/person\/715d986404b06691ab3014e06596908e","name":"Craig Buckler","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinqsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8e76011e66720bd2e3e24e164aa6f0b2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8e76011e66720bd2e3e24e164aa6f0b2?s=96&d=mm&r=g","caption":"Craig Buckler"},"description":"Freelance UK web developer, writer, and speaker. Has been around a long time and rants about standards and performance.","sameAs":["https:\/\/craigbuckler.com\/","https:\/\/www.linkedin.com\/in\/craigbuckler","https:\/\/x.com\/craigbuckler","https:\/\/www.youtube.com\/channel\/UCQwdl5oBTWGhifS6bRGADMQ"],"url":"https:\/\/kinqsta.com\/de\/blog\/author\/craigbuckler\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/posts\/43611","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/users\/188"}],"replies":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/comments?post=43611"}],"version-history":[{"count":11,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/posts\/43611\/revisions"}],"predecessor-version":[{"id":50906,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/posts\/43611\/revisions\/50906"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43611\/translations\/en"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43611\/translations\/de"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43611\/translations\/it"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43611\/translations\/fr"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43611\/translations\/pt"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43611\/translations\/es"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43611\/translations\/nl"},{"href":"https:\/\/kinqsta.com\/de\/wp-json\/kinsta\/v1\/posts\/43611\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/media\/43619"}],"wp:attachment":[{"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/media?parent=43611"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/tags?post=43611"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinqsta.com\/de\/wp-json\/wp\/v2\/topic?post=43611"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}