Autoptimize

Beschreibung

Autoptimize macht die Optimierung deiner Website wirklich leicht. Es fügt alle Scripte und Styles zusammen, minimiert und komprimiert diese, fügt expires header hinzu, cacht diese, und verschiebt Scripte in den Footer. Es minimiert ausserdem den HTML Code selbst, um deine Seiten leichtgewichtig zu machen. Es gibt erweiterte Optionen und eine ausführliche API ist verfügbar, um Autoptimize an die Bedürfnisse jeder einzelnen Website anpassen zu können.

Falls dir Geschwindigkeit wichtig ist, solltest du eines der großartigen Caching-Plugins einsetzen, um Seiten zu cachen. Einige gute Kandidaten, die Autoptimize auf diese Weise ergänzen sind z.B. WP Super Cache, HyperCache, Comet Cache oder KeyCDN’s Cache Enabler.

(Speed-surfing image under creative commons by LL Twistiti)

Installation

Installiere einfach über „Plugins hinzufügen“ in WordPress und alles wird gut sein. Eine manuelle Installation ist ebenfalls sehr unkompliziert:

  1. Lade die Zip-Datei hoch und entpacke sie im Verzeichnis /wp-content/plugins/.
  2. Aktiviere das Plugin im „Plugins“-Menü in WordPress.
  3. Gehe zu Einstellungen > Autoptimize und aktiviere die gewünschten Optionen. Normalerweise bedeutet dies „Optimiere HTML/ CSS/ JavaScript“.

FAQ

Installation Instructions

Installiere einfach über „Plugins hinzufügen“ in WordPress und alles wird gut sein. Eine manuelle Installation ist ebenfalls sehr unkompliziert:

  1. Lade die Zip-Datei hoch und entpacke sie im Verzeichnis /wp-content/plugins/.
  2. Aktiviere das Plugin im „Plugins“-Menü in WordPress.
  3. Gehe zu Einstellungen > Autoptimize und aktiviere die gewünschten Optionen. Normalerweise bedeutet dies „Optimiere HTML/ CSS/ JavaScript“.
Was macht das Plugin, um dabei zu helfen meine Website zu beschleunigen?

Es verbindet alle Skripte und Styles, minimiert und komprimiert sie, fügt Expires-Headers hinzu, cacht diese, und verschiebt Styles in den Head der Seite, und Skripte (optional) in den Footer. Es minimiert auch den HTML Code selbst, was deine Seite zu einem richtigen Leichtgewicht macht.

Wird das mit meinem Blog funktionieren?

Auch wenn Autoptimize ohne jegliche Garantien daherkommt, wird es normalerweise reibungslos laufen, wenn du es korrekt konfigurierst. Siehe „Fehlerbehebung“ unten für Informationen wie du es im Fall von Problemen konfigurierst.

Was ist der Nutzen von „inline oder verzögertem CSS“?

CSS sollte üblicherweise im Head des Dokumentes stehen. Seit kurzem empfiehlt unter anderem Google das verzögerte Ausliefern von nicht-essentiellem CSS, während die Styles inline benötigt werden, um die Seite „above the fold“ aufzubauen. Dies ist besonders wichtig, um Seiten auf Mobilgeräten so schnell wie möglich zu rendern. Seit Autoptimize 1.9.0 ist das leicht; wähle „Inline und Defer CSS“, kopiere den „above the fold“-Block in das Eingabefeld (Textfeld) und du kannst loslegen!

Aber wie finde ich heraus was das „above the fold CSS“ ist?

Es gibt keine einfache Lösung, weil der Bereich „above the fold“ von der Bildschirmgröße abhängt. Es gibt trotzdem verfügbare Tools, die versuchen herauszufinden, was „above the fold“ ist. Diese Liste von Tools ist ein guter Startpunkt. http://jonassebastianohlsson.com/criticalpathcssgenerator/ ist eine gute Grundlösung http://criticalcss.com/ ist eine Premium-Lösung desselben Entwicklers. Alternativ kann auch dieses Bookmarklet (nur für Chrome) hilfreich sein.

Oder sollte man alles CSS inline setzen?

Die kurze Antwort: Vermutlich nicht (aber ich tue es).

Früher war CSS-Optimierung leicht; platziere alles CSS in deinen Head, füge alles in eine CSS-Datei pro Medientyp zusammen und du konntest loslegen. Aber seitdem Google Mobilgeräte in PageSpeed Insights integriert hat und damit begann, sich über CSS zu beklagen, dass den Seitenaufbau blockiert, kamen die Dinge durcheinander (siehe „CSS verzögern“ an anderer Stelle der FAQ). Eine der Lösungen ist all dein CSS inline zu setzen, was seit Autoptimize 1.8.0 unterstützt wird.

Das Inlining des gesamten CSS hat einen klaren Vorteil (besseren PageSpeed Wert) und einen großen Nachteil; deine HTML Seite wird signifikant anwachsen und falls du viel CSS einsetzt, wird Pagespeed Insights sich über „roundtrip times“ beschweren. Auch wenn du dir einen Test ansiehst, der mehrere Abrufe (sagen wir 5 Seiten) beinhaltet, wird die Geschwindigkeit niedriger sein, da die CSS-Last immer und immer wieder gesendet wird, währenddessen die ausgelagerten CSS-Dateien nicht mehrmals gesendet werden, da sie sich im Cache befinden.

Also sollte die Wahl von der Antwort auf ein paar seitenspezifische Fragen abhängen; Wieviel CSS setzt du ein? Wieviele pages per visit rufen deine Besucher ab? Falls du eine Menge CSS hast oder eine hohe Anzahl von pages/ visit, ist es vermutlich keine gute Idee, alles CSS inline zu setzen. Aber ich tue es (weil ich eine kleine Anzahl von durchschnittlichen requests/ visitor habe und nur ein paar wenige CSS Regeln, da ich ein sehr einfaches Theme benutze).

Du kannst zu diesem Thema mehr Information finden in diesem Blog Post.

Mein Cache wird riesig, leert Autoptimize nicht den Cache?

Autoptimize hat keinen richtigen Cache Leerungs Mechanismus, da dies optimiertes CSS/JS entfernen könnte auf das sich andere Caches beziehen, was deine Website zerstören würde. Seit Version 2.0 wird Autoptimize eine Meldung auf den Administartorseiten anzeigen, falls der Cache größer als ein halbes Gigabyte wird.

Du kannst die Cachegröße auf einem akzeptablen Wert halten entweder durch:

  • durch Abschalten von „Inline JS hinzufügen“ und/oder „Inline CSS hinzufügen“ Einstellungen
  • durch Ausschluß von JS-Variablen (oder manchmal CSS-Selektoren), welche sich pro Seite ändern (oder Seitenladevorgang). Du kannst nachlesen, wie du das tun kannst in diesem Blog Post.
Wo ist die „Sieh nur im Head“ Option?

Während „Schaue nur im Head“ immer noch funktioniert, ist es nun (seit Autoptimize 2.0.0) nicht länger auf der Einstellungsseite sichtbar, falls es nicht aktiv ist. Solange diese Option aktiv ist (für JS oder CSS), wird sie sichtbar bleiben, bis du sie deaktivierst. Falls du dich mit PHP auskennst, findest du immer noch verfügbare Filter um „Schaue nur im Head“ weiter zu benutzen.

Sollte ich also CSS/JS inline zusammenfügen?

Vor Autoptimze 2.0.0 wurde inline code immer mit allem CSS optimiert und in den head-Bereich geschoben und alles JS zum Ende mit einer defer-Kennung. Dies hat oft 2 Probleme verursacht; die Priorität von inline CSS ging verloren und inline JS könnte seiten- oder abruf-spezifischen Code enthalten, der Autoptimizes Caching Mechanismus stört, was zu einem Anhäufen von gecachten Dateien und zu einem wiederkehrenden Kreislauf von Minimierungen führte. Aus diesem Grund wird seit 2.0.0 inline Code nicht standardmäßig optimiert (ausser bei denen die von einer alten Version upgraden). Zusätzlich wird JS im head erzwungen, um zu verhindern, dass inline JS gestört ist, weil kein optimiertes JS verfügbar ist. Falls du das letzte mögliche Quäntchen Geschwindigkeit herausholen möchtest, solltest du tatsächlich die „Füge inline zusammen“-Optionen setzen und „Erzwinge JS im head“ abschalten, während du bitte ein Auge auf die Nachteile wirfst, die oben gelistet sind.

Was kann ich mit der API anfangen?

Eine ganze Menge, es gibt Filter, die du benutzen kannst, um Autoptimize auf Anfrage zu deaktivieren, die CSS- und JS-Ausschlüsse zu ändern, die Grenze für das Inlining für CSS background-Bilder zu ändern, zu definieren, welche JS-Dateien hinter die zusammengefügten geschoben werden, das defer-Attribut der zusammengefügten JS-Skript-Tags zu ändern, … Es gibt Beispiele für viele Filter in der autoptimize_helper.php_example und in diesen FAQ.

Wie kann ich den Code in autoptimize_helper.php_example nutzen?

Auch wenn du diesen Code der functions.php deines Themes hinzufügen kannst, würde er beim nächsten Theme Update überschrieben werden. Daher ist es besser ein eigenes Hilfsplugin zu erstellen oder einfach das Code Snippets Plugin benutzen, um jeglichen eigenen Code zu verwalten.

Warum jquery.js nicht optimiert wird

Beginnend mit AO 2.1 wird das jquery.js des WordPress-Core aus dem einfachen Grund nicht optimiert, dass viele beliebte Plugins Inline JS erzeugen, das nicht zusammengefügt wird (wegen möglicher Probleme mit der Cachegröße bei einmaligem Code in Inline JS), welches von jquery abhängig ist. Das Ausschließen von jquery.js stellt sicher, dass die meisten Websites auf Anhieb funktionieren. Falls du möchtest, kannst du auch jquery optimieren, du kannst es von der JS-Optimierungs-Ausschlußliste löschen (Du musst vielleicht „Auch inline JS zusammenfügen“ aktivieren, sowie „Erzwinge JavaScript im head“ ).

Wie funktioniert ein CDN?

Seit Version 1.7.0 ist CDN aktiviert sobald das CDN Stammverzeichnis eingegeben wurde (z.B. http://cdn.example.net/wordpress/). Falls dieser URL vorliegt, wird er für alle von Autoptimize generierten Dateien benutzt (z.B. verknüpftes CSS und JS), inklusive Hintergrundbilder innerhalb von CSS (falls du nicht data-uri’s benutzt).

Falls deine hochgeladenen Bilder ebenso auf dem CDN liegen sollen, kannst du den upload_url_path deiner WordPress Konfiguration (/wp-admin/options.php) zum CDN-Upload-Zielverzeichnis ändern (z.B. http://cdn.example.net/wordpress/wp-content/uploads/). Bedenke dass dies nur für Bilder funktioniert die von da an hochgeladen werden, nicht für bereits hochgeladene Bilder. Danke an BeautyPirate für den Tipp!

Warum werden meine Fonts nicht per CDN ausgeliefert?

Autoptimize unterstützt das, aber es ist nicht standardmäßig aktiv, weil nicht lokale Fonts evtl eine extra Konfiguration benötigen. Aber wenn deine cross-origin Anfrage Strategie in Ordnung ist, kannst du Autoptimize anweisen die Fonts dem CDN hinzuzufügen durch Hook in die API, durch Setzen von autoptimize_filter_css_fonts_cdn auf true auf folgende Art;

add_filter('autoptimize_filter_css_fonts_cdn',__return_true);
Wie kann ich erzwingen, dass die zusammengefügten Dateien statisches CSS oder JS anstelle von PHP sind?

Falls dein Webserver ordentlich konfiguriert ist, um mit Kompression (gzip oder deflate) und cache expiry (Expire und Cache-Steuerung mit ausreichender Cache-Möglichkeit) umzugehen, brauchst du Autoptimize nicht, um das für dich zu regeln. In diesem Fall kannst du die „Zusammengefügte CSS / Skript-Dateien als statische Dateien speichern?“-Option wählen, welche Autoptimize zwingt, die zusammengefügten Dateien als .css und .js-Dateien zu speichern (das bedeutet es wird kein PHP benötigt um diese Dateien auszuliefern). Diese Einstellung ist der Standard seit Autoptimize 1.8.

Wie funktioniert das „Ausschliessen von der Optimierung“?

Sowohl CSS- wie auch JS-Optimierung kann Code von der Zusammenführung und Minimierung auslassen, durch Hinzufügen von „Identifikatoren“ zu der Komma getrennten Ausschlussliste. Die exakte Identifizierungszeichenfolge kann auf folgende Arten bestimmt werden:

  • Falls du nur eine spezifische Datei ausschliessen willst, z.B. wp-content/plugins/funkyplugin/css/style.css, kannst du einfach „funkyplugin/css/style.css“ ausschliessen
  • Falls du alle Dateien eines bestimmten Plugins ausschliessen möchtest, z.B. wp-content/plugins/funkyplugin/js/*, kannst du z.B. „funkyplugin/js/“ oder „plugins/funkyplugin“ ausschliessen
  • Falls du inline code ausschliessen möchtest, musst du eine spezifischen, einzigartige Zeichenfolge in diesem Teil des Codes finden und diesen zu der Ausschlussliste hinzufügen. Beispiel: Um <script>funky_data='Won\'t you take me to, Funky Town'</script> auszuschliessen, wäre der Identifikator „funky_data“.
Konfiguration & Fehlerbehebung von Autoptimize

Nachdem das Plugin installiert und aktiviert ist, kannst du auf einer Einstellungsseite HTML, CSS und JavaScript Optimierungen einschalten. Wenn du magst, kannst du einfach alle davon einschalten, oder wenn du vorsichtiger bist eine nach der anderen.

Falls dein Blog nach dem Einschalten von Autoptimize nicht normal funktioniert, sind hier ein paar Hinweise, um solche Vorkommnisse zu identifizieren & zu lösen, unter Benutzung der „Erweiterten Einstellungen“:

  • Falls alles funktioniert, du aber feststellst, dass dein Blog langsamer ist, stelle sicher, dass du ein Caching Plugin (WP Super Cache oder ähnliche) hast und kontrolliere auch die Informationen über die Cachegröße (Die Lösung für dieses Problem betrifft auch die Geschwindigkeit ungecachter Seiten) in den FAQ.
  • Falls dein Blog seltsam aussieht, z.B. wenn das Layout durcheinander gerät, liegt ein Problem mit der CSS-Optimierung vor. In diesem Fall kann du die Option „Nur im Head nach CSS suchen?“ wählen und schauen, ob dies das Problem löst. Du kannst auch erzwingen, dass CSS nicht zusammengefügt wird, indem du es in deinem Theme oder Widget in noptimize-Tags packst oder den Dateinamen (für externe Style-Dateien) oder die Zeichenfolgen (für Inline-Styles) zu der Ausschlussliste hinzufügst.
  • Falls die Funktionalität deiner Website gestört ist (ein Slider-Karussell, ein Menü, das Suchfeld, …) hast du es vermutlich mit einem Problem bei der Optimierung von JavaScript zu tun. Deaktiviere die Option „Auch inline JS zusammenfügen“ und aktiviere „JavaScript im Head erzwingen?“ und versuche es erneut. Das Ausschliessen von ´js/jquery/jquery.js´ von der Optimierung (siehe unten) und optional das Aktivieren von „Try-Catch Block hinzufügen?„) kann auch helfen. Alternativ – für die Technikversteher – kannst du spezifische Skripte von der Behandlung durch Autoptimize ausschließen (verschieben und/oder zusammenfügen), indem du eine Zeichenfolge hinzufügst, die dem störenden Javascript entspricht oder innerhalb deiner Template-Dateien oder Widgets durch Einschließen des Codes zwischen noptimize-Tags. Das Identifizieren des störenden JavaScript und die Wahl der korrekten Ausschluss-Zeichenfolge kann durch Ausprobieren erfolgen, aber in der Mehrheit der Fälle können Probleme mit der JavaScript Optimierung auf diese Weise behoben werden. Beim Debuggen von JavaScript-Problemen ist die Fehlerkonsole des Browsers das wichtigste Tool, das dir dabei hilft zu verstehen, was vor sich geht.
  • Falls dein Theme oder Plugin jQuery benötigt, kannst du entweder das Laden im Head erzwingen und/oder jquery.js (und jQuery-Plugins falls benötigt) ausschliessen.
  • Falls du keine CSS oder JS Optimierungen zum Laufen bringst, kannst du natürlich immer noch die beiden anderen Optimierungstechniken benutzen.
  • Falls du die obigen Fehlerbehebungs-Tipps versucht hast und du noch immer nicht CSS und JS zum laufen bekommst, kannst du im WordPress Autoptimize Support-Forum nach Hilfe fragen. Weiter unten findest du eine Beschreibung, welche Information du in deinem „Problem-Ticket“ angeben solltest.
Hilfe, ich erhalte eine weiße Seite oder einen „internal server error“ nach dem Aktivieren von Autoptimize!

Als erstes stelle sicher, dass du keine anderen HTML, CSS oder JS Minimierung Plugins (BWP minify, WP minify, …) gleichzeitig mit Autoptimize benutzt oder deaktiviere diese Funktionalität deiner Caching Plugins ab (W3 Total Cache, WP Fastest Cache, …).

In einigen seltenen Fällen stürzt die CSS Minimierungs-Komponente, die Autoptimize derzeit benutzt, aufgrund fehlender Ressourcen ab (siehe detaillierte technische Erklärung hier). In diesem Fall kannst du entweder die CSS-Optimierung deaktivieren, versuchen spezifisches CSS von der Zusammenführung auszuschliessen oder die veralteten Minimieren aktivieren, welche dieses Problem nicht haben. Letzteres kann durch folgende Hinzufügung zu deiner wp-config.php durchgeführt werden:

define("AUTOPTIMIZE_LEGACY_MINIFIERS","true");

Die „veralteten Minimierer“ werden „für immer“ in Autoptimize bleiben und Änderungen der wp-config.php werden nicht durch Core-, Theme- oder Plugin-Upgrades beeinflusst, also sollte es einfach funktionieren.

Aber ich habe immer noch leere autoptimierte CSS oder JS-Dateien!

Falls du Apache laufen hast, kann in manchen Fällen die von Autoptimize geschriebene htaccess-Datei Konflikte mit den AllowOverrides-Einstellungen deiner Apache-Konfiguration auslösen (das ist der Fall bei der Standard-Konfiguration mancher Ubuntu-Installationen), was bei autoptimierten CSS- und JS-Dateien zu „Internen Serverfehlern“ führen kann. Dies kann durch Setzen der AllowOverrides auf All gelöst werden.

Ich bekomme keinen Fehler, aber meine Seiten sind überhaupt nicht optimiert?

Autoptimize führt vor dem tatsächlichen Optimieren einige Prüfungen durch. Falls eines der folgenden wahr ist, werden deine Seiten nicht optimiert:
* wenn du dich im Customizer befindest
* falls der öffnende <html tag fehlt
* falls <xsl:stylesheet in der Antwort vorkommt (zeigt an, dass die Ausgabe kein HTML sondern XML ist)
* falls <html amp in der Antwort vorkommt (da AMP-Seiten bereits optimiert sind)
* falls die Ausgabe ein RSS-feed ist (is_feed() function)
* falls die Ausgabe eine WordPress Administrations Seite ist (is_admin() function)
* falls die Seite mit dem Argument ?ao_noptimize=1 an der URL aufgerufen wird
* falls Code per Hook auf Autoptimize einwirkt um die Optimierung zu verhindern (siehe Thema Visual Composer)
* falls andere Plugins den Ausgabepuffer auf eine inkompatible Weise benutzen (deaktiviere sie nach und nach, um den Verursacher festzustellen)

Visual Composer, Beaver Builder und ähnliche Page Builder Lösungen sind defekt!!

Diese Page Builder Plugins laufen auf dem Frontend für angemeldete Benutzer und sind sehr JavaScript intensiv und sollten nicht optimiert werden. Du kannst Autoptimize mit folgendem Code anweisen, diese auf Page-Builder basierenden Seiten für angemeldete Benutzer nicht zu berücksichtigen:

add_filter('autoptimize_filter_noptimize','pagebuilder_noptimize',10,0);
function pagebuilder_noptimize() {
  if (is_user_logged_in()) {
    return true;
  } else {
    return false;
  }
}
Revolution Slider läuft nicht mehr!

Du kannst das durch Hinzufügen von js/jquery/jquery.js zu der Komma getrennten JS-Ausschlussliste beheben.

Ich erhalte Fehler „jQuery is not defined“-Fehler

In diesem Fall hast du nicht zusammengeführtes JavaScript, das jQuery benötigt, um geladen zu werden. Du musst dieses JavaScript entweder zusammenführen (wähle die „Auch inline JS zusammenfügen?“-Option) oder js/jquery/jquery.js zu der Komma getrennten JS-Optimierungs-Ausschlußliste hinzufügen.

Mein autoptimiertes CSS/JS ist defekt nach dem Upgrade von 1.9.4 auf 2.0!

Eine der größeren Veränderungen in Autoptimize 2.0 ist, dass Dateien mit „min.js“ oder „min.css“ im Namen als bereits minimiert angenommen werden und nur dem zusammengefügten Code angehängt werden, nach der derzeitigen Minimierung, weil das einen wichtigen Geschwindigkeitsvorteil bringt. Auch wenn dies sehr sorgfältig getestet wurde, ist es möglich dass dieser Ansatz nicht immer funktioniert. Du kannst dieses Verhalten über einen Hook in Autoptimizes API ausschalten, etwa so;

add_filter('autoptimize_filter_js_inject_min_late',__return_false);
add_filter('autoptimize_filter_css_inject_min_late',__return_false);

Offensichtlich kannst du das wählen nur für CSS, JS oder beides (wie im Beispiel).

Ich nutze NextGen Galleries und eine Menge JS ist nicht zusammengeführt/ minimiert?

NextGen Galleries does some nifty stuff to add JavaScript. In order for Autoptimize to be able to aggregate that, you’ll need to tell it to initialize earlier, by adding this to your wp-config.php:
define(„AUTOPTIMIZE_INIT_EARLIER“,“true“);

Was ist noptimize?

Starting with version 1.6.6 Autoptimize excludes everything inside noptimize tags, e.g.:
alert(‚this will not get autoptimized‘);

Du kannst das im Inhalt einer Seite/Beitrag tun, in Widgets und in deinen Theme-Dateien (Bedenke das Erstellen eines Child Themes, um zu verhindern, dass deine Änderungen durch Theme Updates überschrieben werden).

Kann ich den Ordner & Dateinamen der gecachten Autoptimize Dateien ändern?

Ja, falls du Dateien von z.B. /wp-content/resources/aggregated_12345.css anstelle von standardmässig /wp-content/cache/autoptimize/autoptimize_12345.css ausliefern möchtest, dann ergänze folgendes zu der wp-config.php:

define('AUTOPTIMIZE_CACHE_CHILD_DIR','/resources/');
define('AUTOPTIMIZE_CACHEFILE_PREFIX','aggregated_');
Kann das erzeugte JS/CSS mit gzip vorkomprimiert werden?

Ja, doch das ist standardmäßig deaktiviert. Du kannst es aktivieren durch die Übergabe von ´true´ an ´autoptimize_filter_cache_create_static_gzip´. Du musst offenbar auch deinen Webserver für die Benutzung dieser Dateien anstelle der nicht komprimierten konfigurieren, um die Zusatzlast durch on-the-fly-Komprimierung zu verhindern.

Wo kann ich einen Fehler melden?

Du kannst Probleme im wordpress.org Support Forum melden. Falls du 100% sicher bist, dass das Problem nicht durch die Konfiguration von Autoptimize gelöst werden kann und dass du tatsächlich einen Fehler im Code gefunden hast, kannst du dies bei GitHub eintragen.

Welche Informationen sollte ich beilegen wenn ich eine Supportanfrage habe?
  • Eine Beschreibung des Problems, inklusive Screenshots und Information aus deiner Browser Fehler/Debugkonsole
  • URL deines Blogs (du kannst Autoptimize abschalten, aber solltest bereit sein es anzuschalten, um den Fehler sichtbar zu machen)
  • deine Autoptimize Einstellungen (inklusive einer Beschreibung der von dir selbst vorgenommenen Konfigurationsänderungen bei dem Versuch den Fehler loszuwerden)
  • das genutzte Theme (inklusive des Theme Download Link)
  • optional benutzte Plugins (falls du eines oder mehrere Plugins verdächtigst, Chaos zu erschaffen)
Ich will raus, wie sollte ich Autoptimize entfernen?
  • Deaktiviere das Plugin (dies wird alle Einstellungen und den Cache löschen)
  • Entferne das Plugin
  • Lösche jeden Cache der sich evtl. auf Seiten mit Autoptimiertem CSS/JS bezieht (z.B. die eines Caching Plugins wie WP Super Cache)
Wie kann ich helfen/mich beteiligen?

Erstelle einfach einen „Fork“ für Autoptimize auf Github und programmiere los!

Rezensionen

BREAK MY WEBSITE

YOUR PLUGIN BREAKS MY WEBSITE , HOW TO RESTORE MY WEBSITE BACK?????????
I’VE DEETED YOUR PLUGIN WITHOUT ANY LUCK

Must have plugin

To say this plugin is good would be to undermine the results and effectiveness. For quite some time i’m considering this plugin as „must have“ with every new WP installation.

Its enough to say that after i start using it all my WP websites have 100/96 with GTmetrix and only reason the score isnt 100/100 because i dont use CDN. Plus it works great in combination with server side caching (no WP cache plugins).

The Author did great job and i’m so thankful for this plugin. Definitely one of the best plugins i ever had a chance to use in years long experience with WP.

P.S. Dont get discouraged by reading bad reviews. They are the result of people who lack the time to learn or minimum knowledge about WP. But honestly if your theme or installed plugins are not a mess, just few clicks will drastically improve the score of your WP.

Lots of Goodness.

Thanks for this plugin. Installed it easily and my GTMetrix HTTP requests dropped from forty six to twelve. Just what I was looking for. Even more goodness when I get the CDN functionality working.

A noble plugin with a noble maintainer

Frank, thank you for all this wonderful, graceful work. Suggesting the plugin for free is not only communal, it’s and inspiration for making more graces for everyone.

Glad tidings. Love this plugin.

My only problem with the plugin so far is that I still have „Prioritize visible content“ (PVC) even though I took care in all remaining „Above the fold content“ (ATFC) problems with the plugin (I have a strange situation of PVC without ATFC.

page speed did not increase

After the author responded quickly to my original quote saying I missed the advanced options, I tried it out.
Original Quote:

the plugin gave no option to customize. It only gave 3 options. Optimize html, css, js. I couldn’t refine the minification and aggregation and that consequentially broke my site.

It did not speed up my site compared with other free minification and concatenation plugins.

Lies alle 484 Rezensionen

Mitwirkende & Entwickler

„Autoptimize“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt.

Mitwirkende

„Autoptimize“ wurde in folgende 12 Sprachen übersetzt: Turkish, Japanese, German, Portuguese, Brazilian Portuguese, Spanish, Italian, Swedish, Dutch, English (UK), English (Australia), English (New Zealand). Danke an die Übersetzer für ihre Mitwirkung.

Übersetze „Autoptimize“ in deine Sprache.

Interessiert an der Entwicklung?

Durchstöbere den Code oder abonniere das Entwicklungsprotokoll per RSS.

Changelog

2.1.0

  • new: Autoptimize now appears in admin-toolbar with an easy view on cache size and the possibility to purge the cache (pass false to autoptimize_filter_toolbar_show filter to disable), a big thanks to Pablo Custo for his hard work on this nice feature!
  • new: An extra „More Optimization“-tab is shown (can be hidden with ´autoptimize_filter_show_partner_tabs´-filter) with information about related optimization tools- and services.
  • new: If cache size becomes too big, a mail will be sent to the site admin (pass false to autoptimize_filter_cachecheck_sendmail filter to disable or pass alternative email to the autoptimize_filter_cachecheck_mailto filter to change email-address)
  • new: power-users can enable Autoptimize to pre-gzip the autoptimized files by passing true to autoptimize_filter_cache_create_static_gzip, kudo’s to (Draikin)[https://github.com/Draikin] for this!
  • improvement: admin GUI updated (again; thanks Pablo!) with some responsiveness added in the mix (not showing the right hand column on smaller screen-sizes)
  • improvement: settings-screen now accepts protocol-relative URL for CDN base URL
  • improvement: new (smarter) defaults for JS (don’t force in head + exclude jquery.js) and CSS optimization (include inline CSS)
  • Misc. bugfixes & small improvements (see commit-log on GitHub)
  • Minimal version updated from 2.7 (!) to 4.0
  • Tested and confirmed working on WordPress 4.6

2.0.2

  • Fehlerbehebung: Verbiete das Verschieben von nicht zusammengefügtem JS per Standard (kann durch die Übergabe von false an autoptimize_filter_js_unmovable reaktiviert werden)
  • Fehlerbehebung: Hook von autoptimize_action_cachepurged in init, um hässliche Fehlermeldungen für Benutzer von ZenCache (CometCache) zu vermeiden
  • Fehlerbehebung, um Autoptimize die Arbeit mit PHP 5.2 zu ermöglichen, (auch wenn du unbedingt upgraden solltest)

2.0.1

  • Improvement: Autoptimize now also tries to purge WP Engine cache when AO’s cache is cleared
  • Improvement: for AMP pages (which are pretty optimized anyway) Autoptimize will not optimize to avoid issues with e.g. „inline & defer“ and with AO adding attributes to link-tags that are not allowed in the subset of HTML that AMP is
  • Improvement: refactored the page cache purging mechanism (removing duplicate code, now nicely hooking into AO’s own autoptimize_action_cachepurged action)
  • Improvement: Re-enable functionality to move non-aggregated JS if „also aggregate inline JS“ is active (can be disabled with autoptimize_filter_js_unmovable filter)
  • Improvement: script tags with data-noptimize attribute will be excluded from optimization
  • Bugfix: Better support for renamed wp-content directories
  • Bugfix: Multiple fixes for late-injected CSS/ JS (changes in those files were not always picked up, fonts or background images were not being CDN’ed, …)
  • Misc. other fixes & improvements, go read the commit-log on GitHub if you’re that curious
  • Tested & confirmed working with WordPress 4.5 (beta 3)

2.0.0

  • On average 30% faster minification (more info in this blogpost)!
  • New: Option to (de-)activate aggregation of inline JS and CSS.
  • New: Option to remove Google Fonts.
  • New: Cache-size will be checked daily and a notice will be shown on wp-admin if cache size goes over 512 MB (can be changed by filter).
  • New: Small autoptimized CSS (less then 256 characters, can be changed by filter) will be inlined instead of linked.
  • New in API: filters to declare a JS and CSS whitelist, where only files in that whitelist are autoptimized and all others are left untouched.
  • New in API: filters to declare removable CSS and JS, upon which Autoptimize will simply delete that code (emoji CSS/JS for example, if you prefer not to dequeue them).
  • New in API: filter to move fonts to CDN as well.
  • lots of small and bigger bugfixes, I won’t bother you with a full list but have a look at the commmit log on GitHub.
  • tested and confirmed working with PHP7

1.9.4

  • bugfix: make sure non-AO CSSmin doesn’t get fed 2 parameters (as some only expect one, which resulted in an internal server error), based on feedback from zerooverture and zamba
  • bugfix: make default add_action hook back into „template_redirect“ instead of „init“ to fix multiple problems as reported by schecteracademicservices, bond138, rickenbacker, Rick Sportel and wizray. If you do need Autoptimize to initialize earlier (e.g. when using Nextgen Galleries), then add this to your wp-config.php:
    define(„AUTOPTIMIZE_INIT_EARLIER“,“true“);

1.9.3

  • improvement: more intelligent CDN-replacement logic, thanks Squazz for reporting and testing
  • improvement: allow strings (comments) to be excluded from HTML-optimization (comment removal)
  • improvement: changed priority with which AO gets triggered by WordPress, solving JS not being aggregated when NextGen Galleries is active, with great help from msebald
  • improvement: extra JS exclude-strings: gist.github.com, text/html, text/template, wp-slimstat.min.js, _stq, nonce, post_id (the latter two were removed from the „manual“ exclude list on the settings-page)
  • new in API: autoptimize_filter_html_exclude, autoptimize_filter_css_defer, autoptimize_filter_css_inline, autoptimize_filter_base_replace_cdn, autopitmize_filter_js_noptimize, autopitmize_filter_css_noptimize, autopitmize_filter_html_noptimize
  • bugfix: remove some PHP notices, as reported by dimitrov.adrian
  • bugfix: make sure HTML-optimalization does not gobble a space before a cite as proposed by ecdltf
  • bugfix: cleaning the cache did not work on non-default directories as encountered by NoahJ Champion
  • upgraded to yui compressor php port 2.4.8-4
  • added arabic translation, thanks to the ekleel team
  • tested with WordPress 4.2 beta 3

1.9.2

First of all; Happy holidays, all the best for 2015!!

  • New: support for alternative cache-directory and file-prefix as requested by a.o. Jassi Bacha, Cluster666 and Baris Unver.
  • Improvement: hard-exclude all linked-data json objects (script type=application/ld+json)
  • Improvement: several filters added to the API, e.g. to alter optimized HTML, CSS or JS
  • Bugfix: set Autoptimize priority back from 11 to 2 (as previously) to avoid some pages not being optimized (thanks to CaveatLector for investigating & reporting)
  • Bugfix (in YUI-CSS-compressor-PHP-port): don’t convert bools to percentages in rotate3D-transforms (cfr. bugreport on Github)
  • Bugfix: background images with a space in the path didn’t load, reported by johnh10.
  • Bugfix: SVG image with fill:url broken after CSS optimization as reported by Tkama
  • Updated translation for Swedish, new translation for Ukrainian by Zanatoly of SebWeo.com
  • Updated readme.txt
  • Confirmed working with WordPress 4.1

1.9.1

1.9.0

  • „Inline and defer CSS“ allows one to specify which „above the fold CSS“ should be inlined, while the normal optimized CSS is deferred.
  • Inlined Base64-encoded background Images will now be cached as well and the threshold for inlining these images has been bumped up to 4096 bytes (from 2560).
  • Separate cache-directories for CSS and JS in /wp-content/cache/autoptimize, which should result in faster cache pruning (and in some cases possibly faster serving of individual aggregated files).
  • Autoptimized CSS is now injected before the -tag, JS before (and after when forced in head). This can be overridden in the API.
  • Some usability improvements of the administration-page
  • Multiple hooks added to the API a.o. filters to not aggregate inline CSS or JS and filters to aggregate but not minify CSS or JS.
  • Updated translations for Dutch, French, German, Persian and Polish and new translations for Brazilian Portuguese (thanks to Leonardo Antonioli) and Turkish (kudo’s Baris Unver)
  • Multiple bugfixes & improvements
  • Tested with WordPress 4.0 rc3

1.8.5

  • Updated to lastest version of CSS minification component
  • Improvement: for multi-sites the cache is now written to separate directories, avoiding one site to clean out the cache for the entire installation. Code contributed by Joern Lund, kudo’s Joern!!
  • Improvement: add WordPress plugin header to autoptimize_helper.php_example to make it easier to enable it as a module
  • Improvement: nonce and post_id are added to default configuration for JS exclusion
  • Improvement: explicitely exclude wp-admin from being Autoptimized
  • Bugfix: plupload.min.js, syntaxhighlighter and „adsbygoogle“ are excluded from JS aggregation.
  • Bugfix: avoid double closing body-tags when Autoptimize adds JS to HTML as reported by Can
  • Bugfix: make .htaccess compatible with both Apache 2.2 and 2.4 (https://wordpress.org/support/topic/feature-request-support-generating-htaccess-files-for-apache-24?replies=3)

1.8.4

  • Bugfix: code in inline JS (or CSS) can be wrapped inside HTML-comments, but these got removed since 1.8.2 as part of a bugfix.

1.8.3

1.8.2

  • Improvement: more graceful failure when minifier classes exist but method does not, based on bug-report by Franck160
  • Improvement: deferred CSS is also outputted in noscript-tags
  • Improvement: differentiate between Apache version in .htaccess file as suggested by iMadalin
  • Improvement: also aggregate protocol-less CSS/JS URI’s (as suggested by Ross)
  • Improvement: disable autoptimization based on parameter in querystring (for debugging)
  • Bugfix: some CSS-imports were not being aggregated/ minified
  • Bugfix: add CSS before <title instead of to avoid breakage when title includes other attributes (e.g. itemscope)
  • Bugfix: make sure javascript or css between comments is not aggregated as reported by Milap Gajjar
  • Tested with WordPress 3.9 (beta 1)
  • Updates in FAQ

1.8.1

  • bugfix: CSS in conditional comments was not excluded from aggregation as reported by Rolf and bottapress

1.8.0

  • New: Option to inline all CSS as suggested by Hamed
  • New: set of filters to provide a simple API to change Autoptimize behavior (e.g. replace „defer“ with „async“, disabling Autoptimization on certain pages, specificy non-aggregatable script to be moved after aggregated one (cfr. https://wordpress.org/support/topic/feature-request-some-extra-options?replies=14), size of image to be data-urized). More info in the included autoptimize_helper.php_example.
  • Improvement: exclude (css in) noscript-tags as proposed by belg4mit
  • Improvement: switch default delivery of optimized CSS/JS-files from PHP to static files
  • Updated upstream CSS minifier
  • Improvement (force gzip of static files) and Bugfix (force expiry for dynamic files, thanks to Willem Razenberg in .htaccess
  • Improvement: fail gracefully when things go wrong (e.g. CSS import resulting in empty aggregated CSS-files reported by Danka or when the theme is broken as seen by Prateek Gupta)
  • Updated translations and Polish added (thanks to Jakub Sierpinski).
  • Bugfix: stop import-statements in CSS comments to be taken into acccount hat tip to Josef from blog-it-solutions.de
  • Bugfix: fix for blur in CSS breakeage as reported by Chris of clickpanic.com

1.7.3

  • improvement: remove cache + options on uninstall as requested by Gingerbreadmen
  • improvement: set .htaccess to allow PHP execution in wp-content/cache/autoptimize when saving optimized files as PHP, as suggested by (David Mottershead of bermuda4u.com)[http://www.bermuda4u.com/] but forbid PHP execution when saving aggregated script/css as static files (except for multisite).
  • bugfix: avoid Yoast SEO sitemaps going blank (due optimization of Yoast’s dynamically built XML/XSL) as reported by Vance Hallman and Armand Hadife. More info on this issue can be found on my blog.
  • smaller changes to readme.txt

1.7.2

  • improvement: extra checks in CSS @import-handling + move import rules to top of CSS if not imported successfully, based a.o. on bug reports by ozum and by Peter Stolwijk
  • improvement: check if JS and CSS minifier classes exist and only load if they don’t to avoid possible conflicts with other themes or plugins that already loaded minifiers
  • tested and approved for WordPress 3.8 (beta1)

1.7.1

1.7.0

1.6.6

  • New: disable autoptimizatoin by putting part of your HTML, JS or CSS in between noptimize-tags, e.g.;
    alert(‚this will not get autoptimized‘);
  • Added extra check to prevent plugin-files being called outside of WordPress as suggested in this good article on security.
  • Added small notice to be displayed after installation/ activation to ask user to configure the plugin as well.
  • Added Persian translation, thanks to Hamed T.

1.6.5

  • new javascript-debug option to force the aggregated javascript file in the head-section of the HTML instead of at the bottom
  • YUI compression & CDN are now deprecated functionality that will be removed in 1.7.0

1.6.4

1.6.3

  • fix for IE-hacks with javascript inside, causing javascript breakage (as seen in Sampression theme) as reported by Takahiro of hiskip.com
  • fix for escaping problem of imported css causing css breakage (as seen in Sampression theme) as reported by Takahiro as well
  • fix to parse imports with syntax @import ‚custom.css‘ not being parsed (as seen in Arras theme), again as reported by Takahiro
  • fix for complex media types in media-attribute as reported by jvwisssen
  • fix for disappearing background-images that were already datauri’s as reported by will.blaschko
  • fix not to strip out comments in HTML needed by WP Super Cache or W3 Total Cache (e.g. mfunc)
  • added check to clean cache on upgrade
  • updated FAQ in readme with information on troubleshooting and support
  • tested with WordPress 3.6 beta

1.6.2

  • Yet another emergency bugfix I’m afraid: apache_request_headers (again in config/delayed.php) is only available on … Apache (duh), breaking non-Apache systems such as ngnix, Lighttpd and MS IIS badly. Reported by multiple users, thanks all!

1.6.1

  • fixed stupid typo in config/delayed.php which broke things badly (april fools-wise); strpos instead of str_pos as reported by Takahiro.

1.6.0

  • You can now specify scripts that should not be Autoptimized in the admin page. Just add the names (or part of the path) of the scripts in a comma-separated list and that JavaScript-file will remain untouched by Autoptimize.
  • Added support for ETag and LastModified (essentially for a better pagespeed score, as the files are explicitely cacheable for 1 year)
  • Autoptimizing for logged in users is enabled again
  • Autoptimize now creates an index.html in wp-content/cache/autoptimize to prevent snooping (as proposed by Chris)
  • bugfix: removed all deprecated functions (reported by Hypolythe and diff by Heiko Adams, thanks guys!)
  • bugfix for HTTPS-problem as reported by dbs121
  • bugfix for breakage with unusual WordPress directory layout as reported by Josef from blog-it-solutions.de.

1.5.1

  • bugfix: add CSS before opening title-tag instead of after closing title, to avoid CSS being loaded in wrong order, as reported by fotofashion and blogitsolutions (thanks guys)

1.5

  • first bugfix release by futtta, thanks for a great plugin Turl!
  • misc bug fixes, a.o. support for Twenty Twelve theme, admin bar problem in WP3.5, data-uri breaking CSS file naming

1.4

  • Add support for inline style tags with CSS media
  • Fix WordPress top bar

1.3

  • Add workaround for TinyMCEComments
  • Add workaround for asynchronous Google Analytics

1.2

  • Add workaround for Chitika ads.
  • Add workaround for LinkWithin widget.
  • Belorussian translation

1.1

  • Add workarounds for amazon and fastclick
  • Add workaround for Comment Form Quicktags
  • Fix issue with Vipers Video Quicktags
  • Fix a bug in where some scripts that shouldn’t be moved were moved
  • Fix a bug in where the config page wouldn’t appear
  • Fix @import handling
  • Implement an option to disable js/css gzipping
  • Implement CDN functionality
  • Implement data: URI generation for images
  • Support YUI CSS/JS Compressor
  • Performance increases
  • Handle WP Super Cache’s cache files better
  • Update translations

1.0

  • Add workaround for whos.among.us
  • Support preserving HTML Comments.
  • Implement „delayed cache compression“
  • French translation
  • Update Spanish translation

0.9

  • Add workaround for networkedblogs.
  • Add workarounds for histats and statscounter
  • Add workaround for smowtion and infolinks.
  • Add workaround for Featured Content Gallery
  • Simplified Chinese translation
  • Update Spanish Translation
  • Modify the cache system so it uses wp-content/cache/
  • Add a clear cache button

0.8

  • Add workaround for Vipers Video Quicktags
  • Support tags without media.
  • Take even more precautions so we don’t break urls in CSS
  • Support adding try-catch wrappings to JavaScript code
  • Add workaround for WordPress.com Stats
  • Fix a bug in where the tags wouldn’t move
  • Update translation template
  • Update Spanish translation

0.7

  • Add fix for DISQUS Comment System.

0.6

  • Add workaround for mybloglog, blogcatalog, tweetmeme and Google CSE

0.5

  • Support localization
  • Fix the move and don’t move system (again)
  • Improve url detection in CSS
  • Support looking for scripts and styles on just the header
  • Fix an issue with data: uris getting modified
  • Spanische Übersetzung

0.4

  • Write plugin description in English
  • Set default config to everything off
  • Add link from plugins page to options page
  • Fix problems with scripts that shouldn’t be moved and were moved all the same

0.3

  • Disable CSS media on @imports – caused an infinite loop

0.2

  • Support CSS media
  • Fix an issue in the IE Hacks preservation mechanism
  • Fix an issue with some urls getting broken in CSS

0.1

  • First released version.