Wie man Serve WebP Format Images in WordPress

Was ist WebP?

WebP ist ein modernes Format für serving images schneller als je zuvor. Wenn Sie Folgendes verwenden WordPress, können Sie problemlos alle images in WebP mit einigen grundlegenden Anpassungen.

Erfahren Sie mehr über

Die meisten Browsers unterstützung WebP

  • Nach Ansicht von Caniuse data, WebP wird derzeit unterstützt in 94% browsers einschließen Apple Safari, Google Chrome, Opera, Mozilla Firefox, Microsoft Edge and Android browsers.
  • Sie können noch serve JPEG/PNG als fallback für unsupported browser.

Wesentliche Vorteile der Verwendung WebP format Image

  • Im Vergleich zur größe der normal JPG or PNG image, same dimension image WebP können dienen in small bytes. Daher, Images will load faster. Es wird besonders hilfreich sein for mobile users.
  • Serving Quality Images in few bytes, dramatically save bandwidth.
  • Halten Sie Ihre Website mit den neuesten Trends auf dem Laufenden. Verlieren Sie nicht die Unterhaltung durch to bull-cart slow loading issue.
  • WebP wird empfohlen von Google Developers. Hilft Ihnen beim Überholen „serve images in next-gen format“ empfehlung von Google PageSpeed Insight.

So können sie serve WebP für eine WordPress site.

Verwendung von WebP Express Plugin in NGINX

  • Install & Activate WebP Express, free plugin. Ein großes Dankeschön the Dev.
  • Operation mode: Varied image responses.
  • Scope: Upload only.
image
  • Run Bulk Convert
image 2
  • For Apache users, no config requires as .htaccess does all magics.
  • NGINX server user need to modify configuration file with root access.

Für better organization of code, Ich würde empfehlen, zuerst im Inneren zu platzieren /etc/nginx/ directory mit namen webp.conf dann in die hauptsache einbeziehen server block.

Eingabe below command

cd /etc/nginx/ && nano webp.conf
  • Paste below code mit rechtsklick innerhalb nano editor in SSH Terminal.
# WebP Express rules
# --------------------
location ~* ^/?wp-content/.*\.(png|jpe?g)$ {
  add_header Vary Accept;
  expires 365d;
  if ($http_accept !~* "webp"){
    break;
  }
  try_files
    /wp-content/webp-express/webp-images/doc-root/$uri.webp
    $uri.webp
    /wp-content/plugins/webp-express/wod/webp-on-demand.php?xsource=x$request_filename&wp-content=wp-content
    ;
}

# Route requests for non-existing webps to the converter
location ~* ^/?wp-content/.*\.(png|jpe?g)\.webp$ {
    try_files
      $uri
      /wp-content/plugins/webp-express/wod/webp-realizer.php?wp-content=wp-content
      ;
}
# ------------------- (WebP Express rules ends here)
  • Press CTRL+O and Enter key to save.

Jetzt besuchen main server block.

cd /etc/nginx/sites-available && ls

Sehr zu empfehlen: Lernen Sie Installing WordPress at NGINX (In drei einfachen Schritten)

Bearbeiten Sie Ihr configuration file, und put include webp.conf; wie unten dargestellt.

# General
server {
    listen         80;
    server_tokens off;
    return 301 https://$host$request_uri;
}
server {
server_tokens off;
root /var/www/html;
index index.php index.html index.htm;
server_name .gulshankumar.net;
client_max_body_size 0;

    listen [::]:443 ssl http2 ipv6only=on;
    listen 443 ssl http2;
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_certificate /etc/comodo/cert.pem;
        ssl_certificate_key /etc/comodo/private.pem;
        ssl_prefer_server_ciphers on;
        ssl_session_cache   shared:SSL:20m;
        ssl_session_timeout 20m;
        ssl_ciphers 'TLS13+AESGCM+AES128:EECDH+AES128';

error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;


# WebP Express rule goes here

include webp.conf;

# WebP Rule end

location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

Laden Sie neu oder starten Sie die NGINX.

service nginx reload

Zu beachtende Punkte

  • Wenn Sie BunnyCDN, muss ermöglichen Vary Cache.
bunnycdn vary cache
  • Cloudflare unterstützt nicht Vary Cache. Versuchen Sie den folgenden alternativen Ansatz.

Verwenden Sie WebP mit Cloudflare CDN (Ohne Plugin)

Wenn Sie ein Cloudflare Pro user können sie einfach enable WebP in one-click von Speed Tab.

cloudflare webp

Serve WebP mit BunnyCDN Optimizer (Ohne Plugin)

BunnyCDN angebote Optimizer dienstleistungen, die mit On-the-fly WebP serving solution. Es ist eine Ein-Klick-Lösung für $9.5/mo mehrkosten.

bunnycdn webp

Serve WebP mit JetPack Plugin

  • Einfach installieren und aktivieren JetPack plugin
  • Aktivieren Sie the Site Accelerator.
jetpack webp

Sie können eine Verschlechterung feststellen in image qualität, die mit folgendem filter behoben werden kann.

add_filter('jetpack_photon_pre_args', 'jetpackme_custom_photon_compression' );
function jetpackme_custom_photon_compression( $args ) {
    $args['quality'] = 100;
    $args['strip'] = 'all';
    return $args;
}

Serve WebP in NGINX mit ShortPixel Plugin

ShortPixel plugin kann in großen Mengen helfen image optimization with WebP conversion und serving laut Browser support. Der beste Teil dieses plugin die Verarbeitung auf ihren server damit Ihre website nicht verlangsamt wird.

shortpixel webp
  • Wenn sie Apache web server user können sie .htaccess rewriting. Das ist einfach.
  • Das ist einfach NGINX können sie unten verwenden rewriting rule mit hilfe von hosting support
  • Dieses plugin wird unterstützt von WP Rocket cache plugin as well.

Erste, dies hinzufügen block before the server directive:

map $http_accept $webp_suffix {
    default "";
    "~*webp" ".webp";
}

Dies hinzufügen block inside the server directive:

location ~* ^(/wp-content/.+)\.(png|jpe?g)$ {
    set $base $1;
    set $webp_uri $base$webp_suffix;
    set $webp_old_uri $base.$2$webp_suffix;
    set $root "<<FULL PATH OF wp-content PARENT>>";
    root $root;
    add_header Vary Accept;
    if ( !-f $root$webp_uri ) {
        add_header X_WebP_SP_Miss $root$webp_uri;
    }
    try_files $webp_uri $webp_old_uri $uri =404;
}

Placement matters. Fügen Sie es also vorsichtig hinzu.

Serve WebP mit Imagify

Imagify ist ein Plugin zur Bildoptimierung, das von WP Media, dem Unternehmen hinter WP Rocket, angeboten wird.

  • Installieren und aktivieren Imagify plugin
  • Enter the API Key
  • In settings, choose Picture tags mode for quick setup.
  • Alternativ können sie auch rewrite rule mit einigen server configuration as described here. Mit Apache, the .htaccess code addition process will be automatic sondern mit NGINX müssen Sie manuell vornehmen.
imagify plugin webp settings

WebP to JPG

WebP kann sich verschlechtern image die Qualität in einigen Fällen ein wenig. Wenn Sie möchten, dass revert back from WebP to JPG, folgen Sie einfach diesen Schritten.

  • Deactivate & Delete WebP related plugin.
  • Remove its related setup from configuration file (.htaccess)
  • Bulk delete .webp files and save disk space.
find . -type f -name "*.webp*" -delete

Wenn Sie möchten, dass convert WebP file to JPG, können Sie das Tool verwenden, das unter CloudConvert.


Manuelle Methode ohne Plugin

Dieser Abschnitt dient nur zu Informationszwecken.

Schritt 1 : Hinzufügen von WebP format in HTML Document

Erste, müssen Sie konvertieren Sie alle images in WebP und zusammen mit Ihrer vorherigen image format as the fall-back. Es gibt ein plugin wie Optimus die diese Aufgabe automatisch übernehmen kann. Aber, Ich zeige Ihnen eine weitere Möglichkeit, dies manuell zu tun.

  1. Gehe zu this website image.online-convert.com/convert-to-webp
  2. Paste Ihr Image Link und klicken Sie auf convert. Ihr WebP format images wird heruntergeladen
  3. Jetzt edit the raw HTML code wo Ihr normaler Image taucht auf.

Sagen wir, in beginning your Image HTML code war wie folgt

<img src="https://www.gulshankumar.net/wp-content/uploads/2016/09/webplogo.png" alt="gulshan kumar" width="186" height="66" />

Sie müssen den obigen Code mit etwas mehr HTML markup.

<picture>
	<source srcset="https://www.gulshankumar.net/wp-content/uploads/2016/09/webplogo.webp" type="image/webp" />
	<img src="https://www.gulshankumar.net/wp-content/uploads/2016/09/webplogo.png" alt="gulshan kumar" width="186" height="66" />
</picture>

Jetzt, Ihr HTML document ist bereit für serve images in WebP format.
Schritt 2 : Configure server settings
Nur noch ein Schritt, müssen sie configure some Apache Webserver settings via .htacccess so browser and web server kann sie wie alle anderen auch richtig behandeln other images.

Ihr Web Hosting server kann nicht wissen, von welchem Mime-Typ diese Art von format ist images sie müssen serve. Sie müssen also den richtigen Mime-Typ hinzufügen. Außerdem wäre es sinnvoll, eine expiry header for caching.

# Serve Images with correct Mime Type
AddType image/webp .webp

# Setup Cache
ExpiresActive On
ExpiresByType image/webp A2592000

Bitte beachten Sie: Stellen Sie sicher, dass Sie WordPress verwenden 5.8 or later.

Wenn Sie Folgendes verwenden WordPress older than version 5.8 es unterstützt nicht uploading of WebP format image. Sie können folgende Fehlermeldung erhalten „Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt während uploading .webp images.

Sie müssen dieses Problem also beheben, indem Sie diesen Code in Ihr Theme einfügen functions.php Es wäre hilfreich, wenn Sie upload Ihr images directly from WordPress Dashboard > Media option.

function webp_upload_mimes( $existing_mimes ) {
	// add webp to the list of mime types
	$existing_mimes['webp'] = 'image/webp';

	// return the array back to the function with our added mime type
	return $existing_mimes;
}
add_filter( 'mime_types', 'webp_upload_mimes' );

Erledigt.

Wenn Sie Hilfe benötigen, Bitte schauen Sie sich comment section oder treten Sie meinem forum. Es wäre mir ein Vergnügen, Ihnen zu helfen.

Zusätzliche Hinweise

  • Wenn Sie ein Cloudways-Benutzer sind, können Sie WebP nicht mit .htaccess rewrite bereitstellen, da NGINX speziell für statische Dateien verwendet wird. In diesem Fall haben Sie zwei Möglichkeiten. Bitten Sie das Hosting-Team, die Konfigurationsdatei für Sie zu bearbeiten, oder verwenden Sie JavaScript oder eine CDN-basierte Lösung eines Drittanbieters wie Bunny oder CF.

Weitere Lektüre

Wenn Sie neugierig sind und mehr erfahren möchten über WebP, Bitte beachten Sie diese Links.

Danke.

Schreibe einen Kommentar

38 Gedanken zu „Wie man Serve WebP Format Images in WordPress“

  1. I didn’t try the webp format as of now in WordPress. But now after reading this post I will try to implement it. I will compare the image quality from other formats as well. Thank you for sharing this article.

    Antworten
  2. I have a question about ShortPixel method.

    I use Plesk panel with NGINX
    There is a section called Additional nginx directives
    Here you can specify the settings for the nginx reverse proxy server that runs in front of Apache. Your directives will override the server-wide nginx configuration. For example, you may want to change the connection timeout or to pack requests with gzip. Use the same syntax as you use for nginx.conf. For example, if you want to pack all the proxied requests with gzip, add the line: ‚gzip_proxied any;‘.

    https://i.imgur.com/OLWu9bJ.png

    can i add codes there i dont know?

    map $http_accept $webp_suffix {
    default „“;
    „~*webp“ „.webp“;
    }

    location ~* ^(/wp-content/.+).(png|jpe?g)$ {
    set $base $1;
    set $webp_uri $base$webp_suffix;
    set $webp_old_uri $base.$2$webp_suffix;
    set $root „<>“;
    root $root;
    add_header Vary Accept;
    if ( !-f $root$webp_uri ) {
    add_header X_WebP_SP_Miss $root$webp_uri;
    }
    try_files $webp_uri $webp_old_uri $uri =404;

    You used these sentences!
    before the server directive and inside directive.
    I read your Installing WordPress at NGINX topic so
    If i try to add these from codes is this right?

    map $http_accept $webp_suffix {
    default „“;
    „~*webp“ „.webp“;
    }
    server {
    listen 80;
    return 301 https://$host$request_uri;
    }
    server {

    location ~* ^(/wp-content/.+).(png|jpe?g)$ {
    set $base $1;
    set $webp_uri $base$webp_suffix;
    set $webp_old_uri $base.$2$webp_suffix;
    set $root „<>“;
    root $root;
    add_header Vary Accept;
    if ( !-f $root$webp_uri ) {
    add_header X_WebP_SP_Miss $root$webp_uri;
    }
    try_files $webp_uri $webp_old_uri $uri =404;
    }
    # Document Root
    root /var/www/html;
    index index.php index.html index.htm;
    server_name .example.com;
    client_max_body_size 0;

    listen [::]:443 ssl http2 ipv6only=on;
    listen 443 ssl http2;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:20m;
    ssl_session_timeout 20m;
    ssl_ciphers ‚TLS13+AESGCM+AES128:EECDH+AES128‘;

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location / {
    try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~* .php$ {
    if ($uri !~ „^/uploads/“) {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    }
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    }
    location = /favicon.ico {
    log_not_found off;
    access_log off;
    }

    location = /robots.txt {
    log_not_found off;
    access_log off;
    allow all;
    }

    location ~* .(css|gif|svg|ico|jpeg|jpg|js|png)$ {
    expires 1y;
    log_not_found off;
    }

    # Enable Gzip compression.
    gzip on;

    # Disable Gzip on IE6.
    gzip_disable „msie6“;

    # Allow proxies to cache both compressed and regular version of file.
    # Avoids clients that don’t support Gzip outputting gibberish.
    gzip_vary on;

    # Compress data, even when the client connects through a proxy.
    gzip_proxied any;

    # The level of compression to apply to files. A higher compression level increases
    # CPU usage. Level 5 is a happy medium resulting in roughly 75% compression.
    gzip_comp_level 5;

    # Compress the following MIME types.
    gzip_types
    application/atom+xml
    application/javascript
    application/json
    application/ld+json
    application/manifest+json
    application/rss+xml
    application/vnd.geo+json
    application/vnd.ms-fontobject
    application/x-font-ttf
    application/x-web-app-manifest+json
    application/xhtml+xml
    application/xml
    font/opentype
    image/bmp
    image/svg+xml
    image/x-icon
    text/cache-manifest
    text/css
    text/plain
    text/vcard
    text/vnd.rim.location.xloc
    text/vtt
    text/x-component
    text/x-cross-domain-policy;
    }

    Is this right?
    And what do you think about plesk how i use webp at plesk?
    Thanks

    Antworten
  3. Hi, this is a good article, but
    It is better to install the plugin or put the code directly for webp
    This way, each image does not create two urls. Does it cause a problem in the SEO site?

    Antworten
  4. Hey Gulshan Kumar ,

    Awesome post with good information. It is my first time commenting on your blog post and am glad to say that you have done a fabulous work and provided helpful & easy tips to serve webp format images in WordPress. I really like and appreciate the way you have explained the things in such a step-by-step process making the concept very clear and easy to understand. while scrolling through your blog post i have noticed that you have also discussed about the major benefits of using webp format image that are also providing good understanding. You have explained all the vital things in an easy language that are true enough to understand and educate the readers.

    After going through this complete guide i really gain ideas and am sure that this post is definitely going to help lots of people & especially WordPress-users to sort out their query. Good work and keep sharing more similar post.

    Eventually thanks for sharing your knowledge, ideas and such an informative post.

    Regards
    -Aadarsh

    Antworten
  5. I have tried this method to enable WebP format images on my site, but I am encountering some unknown error. My site showing a low score on google page speed insight.

    Antworten
  6. Hi,

    I am not quite clear on where this needs to be inserted. I am looking to Optimise my header image to Webp. Is there a video or screenshot based write up on how I can include this?

    Would really appreciate the help

    Regards
    Shwetha

    Antworten
  7. Hello Gulshan,

    Thanks for sharing this article.

    I did follow the steps mentioned in here in this format.

    But the image is not appearing on Firfox, and IE. Did I miss any thing in here.

    Please suggest.

    Antworten
  8. Hi Gulshan,

    Even after putting the code snippet in the function.php file.

    I still have the same error message when I try to upload webp format. The message is „sorry this file type is not permitted for security reasons“.

    Can you help fix this?

    Thanks.

    Martin

    Antworten
    • Hello Martin,

      At my end it’s working fine. For a demo, I have sent a quick video on your email. Please check and revert back if I can help with any thing else.

      Thanks

      Antworten
  9. I haven’t added anything except the last code from your post in function.php to support Webp format on all of future media uploads. Do I need to add any thing else ? or will it create any kind of issue for users whose browsers are yet unsupported to this format?
    anyway keep up the good work 😉

    Antworten
    • That’s all. Now you can easily upload webp directly in your WordPress Dashboard. No extra things to do. Just feel free to use it with picture HTML tag. So, it will support for all browsers, without any issues. Thanks

      Antworten
  10. The problem with the suggested HTML implementation is that Chrome will make two requests, one for WEBP and another one for JPEG resulting in double requests and increasing the page load time.

    Antworten
    • Hey dear,

      It doesn’t create two requests(as you are saying) instead it automatically serve only one type image format either WebP or JPEG according to HTTP accept type.

      I’d suggest please try one more time and look carefully at Network Timeline in the browser console. If you see there are double requests, please email me your HTML code and timeline screenshot also. I’d love to review it. I believe it should work fine for you too.

      Thanks & Regards,
      Gulshan

      Antworten
      • I installed the code into the functions.php. And as you said it did allow me to upload in my WP theme. The problem is that the image doesn’t allow cropping so it won’t allow me to use it on the site.

        Antworten