{"id":352180,"date":"2026-08-18T11:14:49","date_gmt":"2026-08-18T11:14:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/fepo-image-font-optimizer\/"},"modified":"2026-10-14T19:12:10","modified_gmt":"2026-10-14T19:12:10","slug":"fepo-image-font-optimizer","status":"publish","type":"plugin","link":"https:\/\/kaa.wordpress.org\/plugins\/fepo-image-font-optimizer\/","author":23507807,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.6","stable_tag":"1.1.6","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"fepo \u2014 Image & Font Optimizer","header_author":"fepo","header_description":"Serves modern WebP\/AVIF images and subsetted fonts your site already has \u2014 added safely, originals kept as fallback. Powered by fepo.","assets_banners_color":"474646","last_updated":"2026-10-14 19:12:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/fepo.app","rating":0,"author_block_rating":0,"active_installs":0,"downloads":342,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"fepo","date":"2026-08-18 11:14:17","revision":3652644},"1.1.1":{"tag":"1.1.1","author":"fepo","date":"2026-10-07 14:37:28","revision":3732810},"1.1.2":{"tag":"1.1.2","author":"fepo","date":"2026-10-13 17:29:31","revision":3744543},"1.1.3":{"tag":"1.1.3","author":"fepo","date":"2026-10-14 14:29:09","revision":3746605},"1.1.4":{"tag":"1.1.4","author":"fepo","date":"2026-10-14 16:20:03","revision":3746773},"1.1.5":{"tag":"1.1.5","author":"fepo","date":"2026-10-14 17:12:53","revision":3746828},"1.1.6":{"tag":"1.1.6","author":"fepo","date":"2026-10-14 19:12:10","revision":3746999}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3652644,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3652644,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3732810,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3732810,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3744543,"resolution":"1","location":"assets","locale":"","width":1476,"height":1489},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3727757,"resolution":"2","location":"assets","locale":"","width":1476,"height":1776},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3727757,"resolution":"3","location":"assets","locale":"","width":1476,"height":1776},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3727757,"resolution":"4","location":"assets","locale":"","width":1476,"height":1628}},"screenshots":{"1":"The \"Server environment\" section \u2014 whether your server can create AVIF and WebP itself, and what that means for credits.","2":"The Images tab after a Media Library scan \u2014 found, to-optimize, optimized and skipped counts.","3":"The summary after a run \u2014 how many images were optimized and how much was saved.","4":"The Fonts tab \u2014 detected Google Fonts and the download-size saving from subsetting."}},"plugin_section":[],"plugin_tags":[56174,207855,172146,29161,2701],"plugin_category":[54],"plugin_contributors":[265332,268505],"plugin_business_model":[],"class_list":["post-352180","plugin","type-plugin","status-publish","hentry","plugin_tags-compress-images","plugin_tags-convert-avif","plugin_tags-convert-webp","plugin_tags-image-optimization","plugin_tags-optimize-images","plugin_category-security-and-spam-protection","plugin_contributors-fepo","plugin_contributors-michaelpehl","plugin_committers-fepo"],"banners":{"banner":"https:\/\/ps.w.org\/fepo-image-font-optimizer\/assets\/banner-772x250.png?rev=3732810","banner_2x":"https:\/\/ps.w.org\/fepo-image-font-optimizer\/assets\/banner-1544x500.png?rev=3732810","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/fepo-image-font-optimizer\/assets\/icon-128x128.png?rev=3652644","icon_2x":"https:\/\/ps.w.org\/fepo-image-font-optimizer\/assets\/icon-256x256.png?rev=3652644","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/fepo-image-font-optimizer\/assets\/screenshot-1.png?rev=3744543","caption":"The \"Server environment\" section \u2014 whether your server can create AVIF and WebP itself, and what that means for credits."},{"src":"https:\/\/ps.w.org\/fepo-image-font-optimizer\/assets\/screenshot-2.png?rev=3727757","caption":"The Images tab after a Media Library scan \u2014 found, to-optimize, optimized and skipped counts."},{"src":"https:\/\/ps.w.org\/fepo-image-font-optimizer\/assets\/screenshot-3.png?rev=3727757","caption":"The summary after a run \u2014 how many images were optimized and how much was saved."},{"src":"https:\/\/ps.w.org\/fepo-image-font-optimizer\/assets\/screenshot-4.png?rev=3727757","caption":"The Fonts tab \u2014 detected Google Fonts and the download-size saving from subsetting."}],"raw_content":"<!--section=description-->\n<p>Compress your images to WebP and AVIF without sending them anywhere. If your server has\nPHP-Imagick, the conversion happens right there \u2014 unlimited and free, and your images never\nleave your server.<\/p>\n\n<p><strong>Our \"Server environment\" test shows you if PHP-Imagick is enabled.<\/strong> It runs a real test\nconversion, so you see whether your server can actually create AVIF and WebP \u2014 not just whether\nthe extension is loaded. If it cannot, everything still works: fepo converts instead. Ask your\nhosting provider to enable PHP-Imagick.<\/p>\n\n<p><strong>Fonts are different:<\/strong> subsetting needs to know which characters your pages use, so it always\nruns on fepo's servers and uses credits. PHP cannot create WOFF2 files.<\/p>\n\n<p>Every site starts with 50 free optimizations \u2014 no purchase, no account required. After that,\none-time credit packs keep you going, and credits never expire. Optimised files live on your own\nserver \u2014 no CDN, no monthly lock-in, and deactivating never breaks the site.<\/p>\n\n<p><strong>The most important image loads first.<\/strong> The second image in the page gets\n    fetchpriority=\"high\" \u2014 usually the LCP element, the one Core Web Vitals\nmeasures. Everything below it is deferred with <code>loading=\"lazy\"<\/code>. Your theme's\nown <code>loading<\/code> attribute is always respected, and an image already marked as\nhigh priority is never lazy-loaded.<\/p>\n\n<p>Originals are always kept as a fallback, so a page can never break.<\/p>\n\n<p><em>Coming soon: automatic conversion to WebP\/AVIF on upload.<\/em><\/p>\n\n<p>How it works: <code>&lt;img&gt;<\/code> tags are wrapped in <code>&lt;picture&gt;<\/code> with AVIF\/WebP sources (original kept as\nfallback), CSS <code>background-image<\/code>s are served as AVIF via an injected style block, and web fonts\nare subsetted and served locally \u2014 with the theme's Google Fonts request removed, so no visitor\nIP is sent to Google for fonts.<\/p>\n\n<h4>What gets optimised \u2014 and what doesn't<\/h4>\n\n<p>So you know exactly what to expect \u2014 we'd rather under-promise:<\/p>\n\n<ul>\n<li><strong>Images from 10 KB<\/strong> are converted to WebP\/AVIF (original kept as fallback). Smaller images\nare left unchanged \u2014 the gain isn't worth it.<\/li>\n<li><strong>CSS <code>background-image<\/code>s<\/strong> (raster jpg\/png) are served as AVIF via an injected style block\n(no edits to your CSS).<\/li>\n<li><strong>Google Fonts from 50 KB<\/strong> are subsetted to the characters your pages actually use and\nserved locally; the matching Google Fonts <code>&lt;link&gt;<\/code> is removed (closing the GDPR concern of\nvisitor IPs going to fonts.googleapis.com). All weights of a family come in one file.<\/li>\n<li><strong>Smaller Google Fonts, italic styles and families without a variable master file<\/strong> are not\nsubsetted \u2014 the plugin copies Google's files 1:1 to your server instead (no credits), so the\nGoogle request still goes away.<\/li>\n<li><strong>Fonts from other providers<\/strong> (Adobe Fonts, MyFonts and the like) cannot be subsetted \u2014\ntheir master files are not publicly available. They are reported, not changed.<\/li>\n<li><strong>Already-optimal formats are left untouched:<\/strong> images already served as AVIF, and SVG\n(vector \u2014 stays as-is).<\/li>\n<li><strong>Only assets from your own domain<\/strong> are optimised. Images and fonts embedded from third\nparties (maps, external widgets, etc.) are never touched \u2014 they stay on their original server.<\/li>\n<li><strong>Known limits:<\/strong> images injected by JavaScript after page load (some sliders\/lazy-loaders)\nand background <code>&lt;video&gt;<\/code> are not covered. A font is only replaced when a matching source is\nfound. <strong>Deleting the plugin<\/strong> removes the on-the-fly rewrites (page returns to original) but\nleaves the optimised files in <code>wp-content\/uploads\/fepo\/<\/code> (they belong to you).<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to two external services. Both are described below.<\/p>\n\n<h4>1. portal.fepo.app (fepo optimization service)<\/h4>\n\n<p>Operated by fepo, this service generates optimized images and subsetted fonts.<\/p>\n\n<p>Font subsetting always runs on fepo's servers: it requires knowing which characters your pages\nactually use, which means reading those pages. Image conversion runs on fepo's servers only when\nyour own server cannot do it \u2014 with PHP-Imagick available, images and CSS background images are\nconverted locally and their URLs are never sent anywhere.<\/p>\n\n<p><strong>What is sent and when:<\/strong><\/p>\n\n<ul>\n<li>When you optimize fonts: the URLs of the pages being scanned, so fepo's server can fetch them and determine which characters are used.<\/li>\n<li>When images or CSS backgrounds have to be converted by fepo (no PHP-Imagick, or it could not produce a smaller file): the URLs of those images, so fepo's server can fetch and process them. Images converted locally are not sent.<\/li>\n<li>An anonymous site hash and your site's hostname, so your credit balance is tied to your account.<\/li>\n<li>Once a day, while the plugin is active: the same anonymous site hash, as a sign that this installation is still in use. Accounts with no activity for 60 days are deleted automatically (data minimisation), and since images are now converted locally there may otherwise be no contact for months. This daily signal starts only after an account exists and stops when you deactivate the plugin.<\/li>\n<li>With that daily signal (since 1.1.6): five technical values about your server \u2014 the ImageMagick major version (or that it is missing), whether the PHP extension imagick is loaded, whether AVIF and WebP can be written, and the PHP version (e.g. \"8.2\"). No domain, no file paths, nothing personal. fepo stores them only as anonymous daily totals (\"so many sites have AVIF\"), never linked to your site, to learn how many hosts can convert images locally.<\/li>\n<\/ul>\n\n<p><strong>What is NOT sent:<\/strong> no personal data of your visitors, no content from posts, pages, or comments, no database contents, and no file contents of images or fonts that are not being optimized.<\/p>\n\n<p>The optimization itself is performed by fepo's server fetching the given page or image URLs (like any browser would) and returning WebP\/AVIF images or subsetted fonts. No private endpoints are accessed. The optimized files are then stored on your own server \u2014 not on a CDN \u2014 and delivered directly from there.<\/p>\n\n<p>You must explicitly consent to this data transmission via a checkbox before the first optimization. The consent is stored locally and can be revoked at any time by deactivating the plugin.<\/p>\n\n<p><strong>Terms of service:<\/strong> <a href=\"https:\/\/fepo.app\/agb\">https:\/\/fepo.app\/agb<\/a>\n<strong>Privacy policy:<\/strong> <a href=\"https:\/\/fepo.app\/datenschutz\">https:\/\/fepo.app\/datenschutz<\/a><\/p>\n\n<h4>2. Google Fonts (fonts.googleapis.com)<\/h4>\n\n<p>To show the real download size of a Google Font on the Fonts tab, the plugin asks Google's Fonts API \u2014 from your WordPress server, in wp-admin \u2014 how large the browser-loaded WOFF2 files for a given font family are.<\/p>\n\n<p><strong>What is sent and when:<\/strong> only the font family name and its weights (e.g. \"Roboto\" with weights 400,700), and only while you are viewing the Fonts tab in the admin. No visitor data, no personal data, and no site content are sent. The request is made server-to-server (from your host to Google), not from your visitors' browsers.<\/p>\n\n<p><strong>Copying fonts to your server:<\/strong> when you click \"Optimize fonts\", fonts that are not subsetted (under 50 KB, italic styles, families without a variable master file) are downloaded once from Google (fonts.googleapis.com for the CSS, fonts.gstatic.com for the WOFF2 files) to your uploads folder and served from there. Only the family name, weights and style are sent; afterwards your visitors no longer contact Google for these fonts.<\/p>\n\n<p><strong>Terms of service:<\/strong> <a href=\"https:\/\/policies.google.com\/terms\">https:\/\/policies.google.com\/terms<\/a>\n<strong>Privacy policy:<\/strong> <a href=\"https:\/\/policies.google.com\/privacy\">https:\/\/policies.google.com\/privacy<\/a><\/p>\n\n<h3>Disclaimer<\/h3>\n\n<p>This plugin is provided \"as is\", without warranty of any kind. fepo is not liable for any damage, data loss, or downtime arising from its use. Your originals are always kept as a fallback, so an optimization can never break your page.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP via Plugins \u2192 Add New \u2192 Upload, or copy the folder to wp-content\/plugins\/.<\/li>\n<li>Activate it. Open \"fepo Optimizer\" in the admin menu and optimize your pages.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>Der t\u00e4gliche Lebenszeichen-Kontakt meldet jetzt zus\u00e4tzlich f\u00fcnf technische Werte \u00fcber Ihren Server: ImageMagick-Hauptversion, ob die PHP-Erweiterung imagick geladen ist, ob AVIF und WebP geschrieben werden k\u00f6nnen, und die PHP-Version. Keine Domain, keine Pfade, nichts Personenbezogenes; fepo speichert sie nur als anonyme Tagesz\u00e4hler ohne Bezug zu Ihrer Seite. Zweck: herausfinden, wie viele Hoster Bilder lokal (ohne Credits) umwandeln k\u00f6nnen. Details unter \u201eExternal services\u201c.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li><strong>Ehrlichere Zahlen im Fonts-Tab.<\/strong> \u201eLoaded from Google\u201c z\u00e4hlte bisher alle Dateien, die Google f\u00fcr eine Schrift anbietet \u2014 auch kyrillische, griechische und vietnamesische Zeichens\u00e4tze, die ein Browser auf einer deutschen oder englischen Seite nie l\u00e4dt. Dadurch war die Ersparnis zu hoch angegeben (Beispiel: 336 KB statt tats\u00e4chlich 183 KB). Jetzt z\u00e4hlt nur, was Ihre Seite wirklich l\u00e4dt. Vorhandene Messungen werden beim n\u00e4chsten Scan automatisch erneuert.<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li><strong>Schriften unter 50 KB kommen jetzt von Ihrem Server statt von Google.<\/strong> Seit 1.1.3 wurden sie nicht mehr subsettet \u2014 dadurch blieben sie bei Google, und die IP-Adressen Ihrer Besucher gingen weiter dorthin. Jetzt kopiert das Plugin die Original-Dateien von Google 1:1 auf Ihren Server und liefert sie von dort aus, ohne Subsetting und ohne Credits.<\/li>\n<li><strong>Kursive Schnitte<\/strong> werden ebenfalls 1:1 von Ihrem Server ausgeliefert. Das Subsetting deckt nur die normalen Schnitte ab; bisher erzeugte der Browser die Kursivschrift k\u00fcnstlich, sobald der Google-Link entfernt war.<\/li>\n<li><strong>Schriften ohne variable Master-Datei<\/strong> (z. B. Lato), die fepo nicht subsetten kann, bleiben nicht mehr bei Google, sondern kommen ebenfalls 1:1 von Ihrem Server.<\/li>\n<li>Behoben: Mehrere Schriften in einem Google-Link im alten Format (<code>family=Roboto:400|Open+Sans:300<\/code>) wurden nur zur H\u00e4lfte erkannt.<\/li>\n<li><strong>Behoben: Eine Schrift konnte ganz verschwinden.<\/strong> Bei Google-Links mit mehreren Schriften im neuen Format (<code>family=Playfair+Display\u2026&amp;family=Montserrat\u2026<\/code>) erkannte das Plugin nur die letzte. War nur diese lokal, wurde der ganze Link entfernt \u2014 und die anderen Schriften luden gar nicht mehr. Jetzt werden alle erkannt.<\/li>\n<li>Steht in einem Google-Link eine Schrift, die (noch) nicht lokal ist, wird der Link nicht mehr ganz behalten, sondern auf diese Schrift gek\u00fcrzt. Die \u00fcbrigen kommen damit wirklich von Ihrem Server.<\/li>\n<li>Lokal ausgelieferte Schriften: nur die Zeichenbereiche, die Ihre Website braucht (Latein immer, Kyrillisch\/Griechisch\/Vietnamesisch nur bei passender Website-Sprache), und nur die kursiven Gewichte, die Ihr Theme anfordert. Die <code>@font-face<\/code>-Regeln stehen in einer eigenen, zwischengespeicherten Datei statt in jeder Seite.<\/li>\n<li><strong>Behoben: Das Vorladen (<code>preload<\/code>) der optimierten Schriften fand seit 1.1.0 nicht mehr statt.<\/strong> Jetzt l\u00e4dt der Browser sie wieder fr\u00fch.<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Fonts, deren ausgelieferte Datei kleiner als 50 KB ist, erscheinen nicht mehr im Fonts-Tab und werden nicht optimiert \u2014 dort lohnt sich Subsetting nicht, und es wird kein Credit daf\u00fcr verbraucht. Ma\u00dfgeblich ist die Gr\u00f6\u00dfe, die Ihr Browser tats\u00e4chlich l\u00e4dt, nicht die der Original-Schriftdatei. Unter der Liste steht, welche Fonts ausgeblendet wurden.<\/li>\n<li><strong>Kleinere Bilder bei der Umwandlung auf Ihrem Server (ohne Credits):<\/strong> AVIF und WebP haben jetzt jeweils passende Qualit\u00e4tswerte (WebP 72, AVIF 52). Bisher galt f\u00fcr beide derselbe Wert \u2014 dadurch wurde die AVIF oft gr\u00f6\u00dfer als die WebP, und der Browser lud die gr\u00f6\u00dfere Datei. Gemessen an echten Fotos sind die AVIF-Dateien jetzt rund 40 % kleiner bei gleicher sichtbarer Qualit\u00e4t. Wird eine AVIF trotzdem nicht kleiner als die WebP, verwirft das Plugin sie, und der Browser nimmt die WebP. Bereits umgewandelte Bilder \u00e4ndern sich erst, wenn Sie sie neu optimieren.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li><strong>Behoben: Die lokale Umwandlung brach bei vielen Bildern mit \u201eError\" ab.<\/strong> Alle Bilder wurden in einer einzigen Anfrage umgewandelt; AVIF dauert mit ImageMagick 6 mehrere Sekunden pro Bild, und PHP brach bei seiner Zeitgrenze ab. Jetzt wandelt das Plugin in Portionen um (h\u00f6chstens die halbe Zeitgrenze je Anfrage), macht automatisch weiter und zeigt den Fortschritt. Sprengt ein einzelnes Bild trotzdem die Grenze, merkt sich das Plugin dieses Bild und l\u00e4sst es k\u00fcnftig von fepo umwandeln \u2014 bis sich die Zeit- oder Speichergrenze \u00e4ndert: Erh\u00f6ht Ihr Hoster sie, wandelt das Plugin diese Bilder wieder selbst um, ohne Credits. Im PHP-Fehlerlog steht dazu eine Zeile mit <code>[fepo-io]<\/code>.<\/li>\n<li><strong>Behoben: Bei mehr als 50 Bildern z\u00e4hlten die Gratis-Credits nicht.<\/strong> Mit 50 Gratis-Credits und 56 Bildern hie\u00df es \u201eYou have 0 credits\". Jetzt z\u00e4hlen Gratis- und gekaufte Credits zusammen, und reichen sie nicht f\u00fcr alle, startet die Optimierung mit den ersten Bildern.<\/li>\n<li>Reichen die Credits nicht f\u00fcr alle ausgew\u00e4hlten Dateien, erscheint der Hinweis direkt neben den Kauf-Paketen \u2014 mit der Schaltfl\u00e4che \u201eUse the free credits and start optimizing\" \u2014 statt eines Browser-Dialogs.<\/li>\n<li>Neues Diagnose-Log: Geht bei der Umwandlung auf Ihrem Server etwas schief (Zeit- oder Speichergrenze, ImageMagick-Fehler), zeigt das Plugin unter \u201eServer environment\" einen Link \u201eDownload log\". Die Textdatei enth\u00e4lt die Server-Einstellungen und was passiert ist \u2014 zum Weiterleiten an den Support. Sie entsteht erst beim Klick und ist nur f\u00fcr Administratoren abrufbar; nichts davon wird automatisch \u00fcbertragen.<\/li>\n<li>\u201eServer environment\" ist jetzt eine Pr\u00fcfliste: ImageMagick, die PHP-Erweiterung imagick <strong>f\u00fcr die PHP-Version Ihrer Website<\/strong>, AVIF und WebP \u2014 je mit H\u00e4kchen oder Kreuz. Fehlt etwas, erkl\u00e4rt ein aufklappbarer Abschnitt, was zu tun ist, mit Link zur Schritt-f\u00fcr-Schritt-Anleitung (apt, dnf, cPanel, Plesk).<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li><strong>Bilder werden auf Ihrem eigenen Server umgewandelt, wenn PHP-Imagick verf\u00fcgbar ist \u2014 und verbrauchen dann keine Credits.<\/strong> Das ist schneller, und Ihre Bilder verlassen Ihren Server nicht. Credits brauchen nur noch die Fonts: f\u00fcr das Subsetting muss bekannt sein, welche Zeichen Ihre Seiten verwenden, und das kann Imagick nicht ermitteln. CSS-Hintergrundbilder gelten als Bilder und laufen ebenfalls lokal. Ohne PHP-Imagick l\u00e4uft alles wie bisher \u00fcber fepo; Ihr Hosting-Anbieter aktiviert die Erweiterung meist auf Anfrage.<\/li>\n<li>Der neue Abschnitt \u201eServer environment\" zeigt, ob Ihr Server AVIF und WebP selbst erzeugen kann.<\/li>\n<li>Brauchen Sie derzeit keine Credits, h\u00e4lt sich der Kaufbereich zur\u00fcck und sagt, warum. Kaufen bleibt einen Klick entfernt.<\/li>\n<li>Ihr Zugang bleibt erhalten, solange das Plugin aktiv ist: das Plugin meldet sich daf\u00fcr einmal t\u00e4glich mit einer anonymen Kennung \u2014 nur mit Ihrer Einwilligung, nur wenn ein Zugang besteht, und es endet mit der Deaktivierung. Ihre optimierten Dateien sind nie betroffen, die liegen auf Ihrem Server. Weil die bisherige Einwilligung diesen Hinweis nicht beschrieb, fragt das Plugin einmalig erneut nach Ihrer Zustimmung.<\/li>\n<li>Der Kauf von Credits funktioniert jetzt auch vor der ersten Optimierung (brach zuvor mit \u201eCould not start checkout\" ab). Schl\u00e4gt er fehl, erscheint eine Meldung im Plugin mit Grund und n\u00e4chstem Schritt statt eines Hinweisfensters.<\/li>\n<li>Zwei Zahlen in den \u201eWussten Sie?\"-Hinweisen waren falsch: Die Core-Web-Vitals-Angabe nennt jetzt den belegten Wert (rund die H\u00e4lfte aller Websites, 48 % mobil \u2014 HTTP Archive Web Almanac 2025) statt \u201eetwa 33 %\". Der Hinweis zur durchschnittlichen Ladezeit wurde entfernt; die genannten 2,5 Sekunden waren ein Grenzwert, kein Messwert.<\/li>\n<li>Nach einem Lauf fasst ein Fenster zusammen, wie viele Dateien optimiert wurden und wie viel Sie gespart haben \u2014 mit einer Schaltfl\u00e4che zum Neuladen.<\/li>\n<li>Der Guthaben-Stand zeigt nur noch den Topf, aus dem gerade bezahlt wird: die Gratis-Optimierungen, solange welche \u00fcbrig sind, danach die gekauften Credits.<\/li>\n<li>Sind keine Credits mehr da, sagt das Plugin das deutlich und bietet die Pakete an \u2014 statt zu fragen, ob ein Lauf starten soll, der nichts ausrichten kann.<\/li>\n<li>Klarere Angaben rund um Credits: was wohin \u00fcbertragen wird und was etwas kostet. Eine Schriftfamilie z\u00e4hlt als ein Credit, unabh\u00e4ngig von der Zahl ihrer Schnitte; kursive Schnitte und Schriften anderer Anbieter werden nicht verkleinert, und \u00fcbersprungene Familien kosten nichts.<\/li>\n<li>Behoben: Das L\u00f6schen des Plugins konnte bei \u201eDeleting\u2026\" h\u00e4ngen bleiben. Die Deinstallation r\u00e4umt jetzt auch Einstellungen \u00e4lterer Versionen mit ab.<\/li>\n<li>Behoben: Nach einem erfolgreichen Lauf konnte die Seite noch den Stand von davor zeigen \u2014 veraltete Zahlen, fehlende Schaltfl\u00e4chen.<\/li>\n<li>Getestet mit WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Die optimierten Bilder und Fonts werden jetzt auf jeder Domain ausgeliefert \u2014 die fr\u00fchere Domain-Bindung der Auslieferung wurde entfernt. Ihre lokal gespeicherten Dateien geh\u00f6ren Ihnen und funktionieren auch nach einem Umzug der Website.<\/li>\n<li>Die eingebettete CSS (@font-face und CSS-Hintergr\u00fcnde) wird jetzt auf dem WordPress-Standardweg \u00fcber wp_add_inline_style() ausgegeben.<\/li>\n<li>Der Front-End-Ausgabepuffer wird am shutdown-Hook ausdr\u00fccklich geschlossen.<\/li>\n<li>Sicherheit: Beim Import einer ZIP-Datei werden ausschlie\u00dflich Bild- und Font-Dateien \u00fcbernommen; unerwartete Dateitypen werden nach dem Entpacken entfernt.<\/li>\n<li>Der Abschnitt \u201eExternal services\" in der readme dokumentiert jetzt zus\u00e4tzlich die Nutzung der Google-Fonts-API (zur Anzeige der Download-Gr\u00f6\u00dfe im Fonts-Tab).<\/li>\n<li>\u00dcbersetzungen werden k\u00fcnftig \u00fcber translate.wordpress.org bereitgestellt; mitgelieferte Sprachdateien wurden entfernt.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Intern: Text-Domain und Plugin-Slug an den WordPress.org-Slug \u201efepo-image-font-optimizer\" angeglichen (behebt die Text-Domain-Warnungen des Plugin-Checks). Keine \u00c4nderung an Funktion oder gespeicherten Daten.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Korrektur: Der Hinweis beim Credit-Kauf ohne Zustimmung nennt keine Richtung mehr (\u201eoben\") \u2014 die Formulierung passt jetzt unabh\u00e4ngig von der Position der Zustimmungs-Box.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Verbessert: Die Zustimmung zur Datenverarbeitung wird jetzt gut sichtbar oben angezeigt (statt in einem Tab versteckt). Die Optimierungs-Tabs erscheinen erst nach der Einwilligung \u2014 so ist klar erkennbar, dass vor der Zustimmung nichts \u00fcbertragen wird.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Behoben: \u201eCredits kaufen\" zeigte vor Ihrer Zustimmung einen leeren Kasten (die Kaufpakete werden erst nach Einwilligung geladen). Jetzt erscheint stattdessen ein Hinweis, dass zuerst die Zustimmung n\u00f6tig ist.<\/li>\n<\/ul>\n\n<p>\u00c4ltere Versionen: https:\/\/wordpress.org\/plugins\/fepo-image-font-optimizer\/advanced\/<\/p>","raw_excerpt":"Compress images to WebP\/AVIF on your own server. With PHP-Imagick: unlimited, free. Fonts subsetted by fepo (uses credits) \u2014 PHP cannot create WOFF2.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/352180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=352180"}],"author":[{"embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/fepo"}],"wp:attachment":[{"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=352180"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=352180"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=352180"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=352180"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=352180"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kaa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=352180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}