外掛說明
This plugin optimizes the loading of images (and videos) with prioritization to improve Largest Contentful Paint (LCP), lazy loading, and more accurate image size selection.
The current optimizations include:
- Add breakpoint-specific
fetchpriority=high
preload links (both asLINK[rel=preload]
elements andLink
response headers) for image URLs of LCP elements:- An
IMG
element, including thesrcset
/sizes
attributes supplied asimagesrcset
/imagesizes
on theLINK
. - The first
SOURCE
element with atype
attribute in aPICTURE
element. (Art-directedPICTURE
elements using media queries are not supported.) - An element with a CSS
background-image
inlinestyle
attribute. - An element with a CSS
background-image
applied with a stylesheet (when the image is from an allowed origin). - A
VIDEO
element’sposter
image.
- An
- Ensure
fetchpriority=high
is only added to anIMG
when it is the LCP element across all responsive breakpoints. - Add
fetchpriority=low
toIMG
tags which appear in the initial viewport but are not visible, such as when they are subsequent carousel slides. - Lazy loading:
- Apply lazy loading to
IMG
tags based on whether they appear in any breakpoint’s initial viewport. - Implement lazy loading of CSS background images added via inline
style
attributes. - Lazy-load
VIDEO
tags by setting the appropriate attributes based on whether they appear in the initial viewport. If aVIDEO
is the LCP element, it getspreload=auto
; if it is in an initial viewport, thepreload=metadata
default is left; if it is not in an initial viewport, it getspreload=none
. Lazy-loaded videos also get initialpreload
,autoplay
, andposter
attributes restored when theVIDEO
is going to enter the viewport.
- Apply lazy loading to
- Responsive image sizes:
- Compute the
sizes
attribute using the widths of an image collected from URL Metrics for each breakpoint (when not lazy-loaded since then handled bysizes=auto
). - Ensure
sizes=auto
is set onIMG
tags after setting correct lazy-loading (above).
- Compute the
- Reduce the size of the
poster
image of aVIDEO
from full size to the size appropriate for the maximum width of the video (on desktop).
This plugin requires the Optimization Detective plugin as a dependency. Please refer to that plugin for additional background on how this plugin works as well as additional developer options.
👉 Note: This plugin optimizes pages for actual visitors, and it depends on visitors to optimize pages. As such, you won’t see optimizations applied immediately after activating the plugin. Please wait for URL Metrics to be gathered for both mobile and desktop visits. And since administrator users are not normal visitors typically, optimizations are not applied for admins by default.
Your site must have the REST API accessible to unauthenticated frontend visitors since this is how metrics are collected about how a page should be optimized. There are currently no settings and no user interface for this plugin since it is designed to work without any configuration.
安裝方式
自動安裝
- 前往 [外掛]→[安裝外掛]。
- Search for Image Prioritizer.
- Install and activate the Image Prioritizer plugin.
手動安裝
- Upload the entire
image-prioritizer
folder to the/wp-content/plugins/
directory. - 前往 [外掛] 頁面。
- Activate the Image Prioritizer plugin.
常見問題集
-
使用者可以在何處提交外掛意見反應?
-
Feedback is encouraged and much appreciated, especially since this plugin may contain future WordPress core features. If you have suggestions or requests for new features, you can submit them as an issue in the WordPress Performance Team’s GitHub repository. If you need help with troubleshooting or have a question about the plugin, please create a new topic on our support forum.
-
在何處可以回報安全性程式碼錯誤?
-
效能團隊及 WordPress 社群對安全性程式碼錯誤一向嚴陣以待,我們非常感謝使用者披露相關發現所付出的心力,並會盡全力解決使用者提出的問題。
如需回報安全性問題,請參考 WordPress HackerOne 計畫。
-
如何為這個外掛做出貢獻?
-
非常感謝各位的各種貢獻!請參考核心程式效能團隊手冊以進一步了解參與的方式。
The plugin source code is located in the WordPress/performance repo on GitHub.
使用者評論
這個外掛目前沒有任何使用者評論。
參與者及開發者
變更記錄
1.0.0-beta2
Enhancements
- Update
OD_HTML_Tag_Processor::next_tag()
to allow$query
arg and prepare to skip visiting tag closers by default. (1872) - Expose the logging functions to client-side extensions and automatically account for the value of
isDebug
. (1895)
Bug Fixes
- Fix URL encoding in Link HTTP response header. (1907)
- Fix unpredictable LCP element being identified in a URL Metric Group. (1903)
1.0.0-beta1
Enhancements
- Bump version to 1.0.0-beta1 to indicate graduation from being experimental. See 1846.
- Compute responsive
sizes
attribute based on thewidth
from theboundingClientRect
in captured URL Metrics. (1840)
0.3.1
Bug Fixes
- Remove erroneous check for resource initiator type when considering whether to submit LCP background image. (1760)
0.3.0
Enhancements
- Add preload links LCP picture elements. (1707)
- Harden validation of user-submitted LCP background image URL. (1713)
- Lazy load background images added via inline style attributes. (1708)
- Preload image URLs for LCP elements with external background images. (1697)
- Serve unminified scripts when
SCRIPT_DEBUG
is enabled. (1643)
0.2.0
Enhancements
- Lazy load videos and video posters. (1596)
- Prioritize loading poster image of video LCP elements. (1498)
- Choose smaller video poster image size based on actual dimensions. (1595)
- Add fetchpriority=low to occluded initial-viewport images (e.g. images in hidden carousel slides). (1482)
- Avoid lazy-loading images and embeds unless there are URL Metrics for both mobile and desktop. (1604)
0.1.4
Enhancements
- Move Auto Sizes logic from Enhanced Responsive Images to Image Prioritizer. (1476)
0.1.3
Bug Fixes
- Fix handling of image prioritization when only some viewport groups are populated. (1404)
0.1.2
- Update PHP logic to account for changes in Optimization Detective API. (1302)
0.1.1
- Fix background-image styled tag visitor’s handling of parsing style without background-image. (1288)
0.1.0
- Initial release.