<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/client-side-media-processing-in-wordpress-7-1-wzhoo0pqp" -->

---
title: Client-Side Media Processing in WordPress 7.1 | daily.dev
description: WordPress 7.1 introduces client-side media processing, moving image compression, resizing, format conversion, thumbnail generation, and EXIF rotation from the...
canonical: https://daily.dev/posts/client-side-media-processing-in-wordpress-7-1-wzhoo0pqp
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Client-Side Media Processing in WordPress 7.1 | daily.dev
og:description: WordPress 7.1 introduces client-side media processing, moving image compression, resizing, format conversion, thumbnail generation, and EXIF rotation from the...
og:url: https://daily.dev/posts/client-side-media-processing-in-wordpress-7-1-wzhoo0pqp
og:image: https://api.daily.dev/og/posts/Wzhoo0pQP.png
og:image:alt: Client-Side Media Processing in WordPress 7.1
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Client-Side Media Processing in WordPress 7.1

**[Make WordPress Core](https://daily.dev/sources/wordpresscore)** · 15 min read · 1 upvotes · 0 comments

## Summary

WordPress 7.1 introduces client-side media processing, moving image compression, resizing, format conversion, thumbnail generation, and EXIF rotation from the server to the user's browser using WebAssembly (wasm-vips/libvips). The feature is enabled by default in Chromium 137+ browsers and automatically falls back to server-side processing in Firefox and Safari. Key benefits include better image compression (JPEGs ~15% smaller via MozJPEG-like encoding), no PHP memory limit failures, reduced server load, HEIC/AVIF support regardless of server capabilities, animated GIF-to-video conversion, and more resilient uploads with retry logic. Existing PHP filters (big_image_size_threshold, image_editor_output_format, wp_editor_set_quality) are honored client-side. The wp_generate_attachment_metadata hook still fires as before. Plugin developers should verify their hooks handle both 'create' and 'update' context passes, check cross-origin isolation compatibility, and test with custom image sizes, HEIC, AVIF, HDR, and animated GIF uploads.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://make.wordpress.org/core/2026/07/22/client-side-media-processing-in-wordpress-7-1>

## Questions this post answers

### What browsers support WordPress 7.1's client-side media processing feature?

Only Chromium-based browsers currently support it: Chrome and Edge version 137 or later, which enable Document-Isolation-Policy required for SharedArrayBuffer. Firefox and Safari lack Document-Isolation-Policy support and automatically fall back to server-side PHP processing with no user-facing change. Safari still supports in-browser HEIC decoding since that doesn't require Document-Isolation-Policy. A GitHub plugin can enable the feature on Firefox/Safari using COEP/COOP headers.

_Developers tracking browser feature support rollouts like this can follow the changes on daily.dev._

### Will my WordPress plugin's wp_generate_attachment_metadata hook still work after enabling client-side media processing?

Yes, it fires exactly as it does during a server-side upload: once with context 'create' during the initial upload, and again with 'update' after the new finalize REST endpoint completes all client-side sub-size sideloads. Watermarking, CDN sync, and custom metadata plugins keep working without modification, but should be written idempotently to handle both passes correctly, mirroring how big-image uploads already defer sub-size generation on the server.

_Plugin authors validating hook compatibility across WordPress releases can keep tabs on changes like this via daily.dev._

### How does WordPress 7.1 handle AVIF image uploads on hosts without server-side AVIF support?

Client-side processing decodes AVIF directly in the browser using wasm-vips, bypassing the server's MIME-type check for client-decoded uploads, so hosts whose PHP image editor lacks AVIF support can still accept AVIF uploads end-to-end. High-bit-depth AVIF sources (10- or 12-bit, common for HDR photos) retain their bit depth across all generated sub-sizes.

_Developers weighing modern image format support on shared hosting can track these platform changes on daily.dev._

## Similar posts on daily.dev

- [Call for Testing: client-side media processing](https://daily.dev/posts/call-for-testing-client-side-media-processing-tj6xldh7j) · Make WordPress Core · 1 upvotes · 1 comments
- [WordPress Image Optimization No Longer Needs a Second Plugin](https://daily.dev/posts/wordpress-image-optimization-no-longer-needs-a-second-plugin-7arp7ckse) · WP Mayor · 4 upvotes · 1 comments
- [Discover ShortPixel: Smarter Image Compression for a Faster WordPress](https://daily.dev/posts/discover-shortpixel-smarter-image-compression-for-a-faster-wordpress-qrybotqcg) · WP Mayor · 0 upvotes · 0 comments
- [Find and Delete Duplicate Images in WordPress Automatically](https://daily.dev/posts/find-and-delete-duplicate-images-in-wordpress-automatically-te5pvso5n) · WordPress Beginner · 1 upvotes · 0 comments

---

Tags: [#wordpress](https://daily.dev/tags/wordpress), [#webassembly](https://daily.dev/tags/webassembly), [#image-processing](https://daily.dev/tags/image-processing)

[View this post on daily.dev](https://daily.dev/posts/client-side-media-processing-in-wordpress-7-1-wzhoo0pqp)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Client-Side Media Processing in WordPress 7.1","url":"https://daily.dev/posts/client-side-media-processing-in-wordpress-7-1-wzhoo0pqp","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/client-side-media-processing-in-wordpress-7-1-wzhoo0pqp"},"datePublished":"2026-07-22T17:24:30.206Z","dateModified":"2026-09-14T07:51:36.724Z","description":"WordPress 7.1 introduces client-side media processing, moving image compression, resizing, format conversion, thumbnail generation, and EXIF rotation from the...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/f197f72cbdd806b5ca23aa9644edb361?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/f197f72cbdd806b5ca23aa9644edb361?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Make WordPress Core","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Make WordPress Core","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/892d1a79e30e4e8a911b5726c6fb1a06","url":"https://daily.dev/sources/wordpresscore"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/client-side-media-processing-in-wordpress-7-1-wzhoo0pqp","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"wordpress,webassembly,image-processing","timeRequired":"PT15M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Make WordPress Core","item":"https://daily.dev/sources/wordpresscore"},{"@type":"ListItem","position":3,"name":"Client-Side Media Processing in WordPress 7.1"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/client-side-media-processing-in-wordpress-7-1-wzhoo0pqp#faq","mainEntity":[{"@type":"Question","name":"What browsers support WordPress 7.1's client-side media processing feature?","acceptedAnswer":{"@type":"Answer","text":"Only Chromium-based browsers currently support it: Chrome and Edge version 137 or later, which enable Document-Isolation-Policy required for SharedArrayBuffer. Firefox and Safari lack Document-Isolation-Policy support and automatically fall back to server-side PHP processing with no user-facing change. Safari still supports in-browser HEIC decoding since that doesn't require Document-Isolation-Policy. A GitHub plugin can enable the feature on Firefox/Safari using COEP/COOP headers. Developers tracking browser feature support rollouts like this can follow the changes on daily.dev."}},{"@type":"Question","name":"Will my WordPress plugin's wp_generate_attachment_metadata hook still work after enabling client-side media processing?","acceptedAnswer":{"@type":"Answer","text":"Yes, it fires exactly as it does during a server-side upload: once with context 'create' during the initial upload, and again with 'update' after the new finalize REST endpoint completes all client-side sub-size sideloads. Watermarking, CDN sync, and custom metadata plugins keep working without modification, but should be written idempotently to handle both passes correctly, mirroring how big-image uploads already defer sub-size generation on the server. Plugin authors validating hook compatibility across WordPress releases can keep tabs on changes like this via daily.dev."}},{"@type":"Question","name":"How does WordPress 7.1 handle AVIF image uploads on hosts without server-side AVIF support?","acceptedAnswer":{"@type":"Answer","text":"Client-side processing decodes AVIF directly in the browser using wasm-vips, bypassing the server's MIME-type check for client-decoded uploads, so hosts whose PHP image editor lacks AVIF support can still accept AVIF uploads end-to-end. High-bit-depth AVIF sources (10- or 12-bit, common for HDR photos) retain their bit depth across all generated sub-sizes. Developers weighing modern image format support on shared hosting can track these platform changes on daily.dev."}}]}
```

