[{"data":1,"prerenderedAt":444},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Fwordpress-plugin":80,"\u002Fgetting-started\u002Fwordpress-plugin-surround":439},[4,30,60,75],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Getting Started",false,"\u002Fgetting-started","1.getting-started",[10,15,20,25],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"WordPress plugin","\u002Fgetting-started\u002Fwordpress-plugin","1.getting-started\u002F2.wordpress-plugin","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"API quickstart","\u002Fgetting-started\u002Fapi-quickstart","1.getting-started\u002F3.api-quickstart","i-lucide-terminal",{"title":26,"path":27,"stem":28,"icon":29},"FAQ","\u002Fgetting-started\u002Ffaq","1.getting-started\u002F4.faq","i-lucide-circle-help",{"title":31,"path":32,"stem":33,"children":34,"page":6},"Reference","\u002Freference","2.reference",[35,40,45,50,55],{"title":36,"path":37,"stem":38,"icon":39},"Optimize API","\u002Freference\u002Foptimize-api","2.reference\u002F1.optimize-api","i-lucide-image",{"title":41,"path":42,"stem":43,"icon":44},"Smart crop","\u002Freference\u002Fsmartcrop","2.reference\u002F2.smartcrop","i-lucide-crop",{"title":46,"path":47,"stem":48,"icon":49},"Job polling","\u002Freference\u002Fjobs","2.reference\u002F3.jobs","i-lucide-list-checks",{"title":51,"path":52,"stem":53,"icon":54},"Plans & limits","\u002Freference\u002Fplans-and-limits","2.reference\u002F4.plans-and-limits","i-lucide-credit-card",{"title":56,"path":57,"stem":58,"icon":59},"Account usage","\u002Freference\u002Faccount","2.reference\u002F5.account","i-lucide-gauge",{"title":61,"path":62,"stem":63,"children":64,"page":6},"AI","\u002Fai","3.ai",[65,70],{"title":66,"path":67,"stem":68,"icon":69},"AI alt text & SEO","\u002Fai\u002Falt-text-and-seo","3.ai\u002F1.alt-text-and-seo","i-lucide-sparkles",{"title":71,"path":72,"stem":73,"icon":74},"AI background removal","\u002Fai\u002Fbackground-removal","3.ai\u002F2.background-removal","i-lucide-scissors",{"title":76,"path":77,"stem":78,"icon":79},"Account API","\u002Faccount-api","4.account-api","i-lucide-key-round",{"id":81,"title":16,"body":82,"description":432,"extension":433,"links":434,"meta":435,"navigation":436,"path":17,"seo":437,"stem":18,"__hash__":438},"docs\u002F1.getting-started\u002F2.wordpress-plugin.md",{"type":83,"value":84,"toc":424},"minimark",[85,101,106,126,130,209,213,230,234,374,378,381,400,414,420],[86,87,88,95,96,100],"p",{},[89,90,94],"a",{"href":91,"rel":92},"https:\u002F\u002Fgithub.com\u002Flwplugins\u002Flw-img",[93],"nofollow","LW Image"," is the WordPress plugin that\nconnects to helloIMG. When a non-WebP\u002FAVIF image is uploaded, it sends it to\nyour account, gets back an optimized version, and replaces the original\n",[97,98,99],"strong",{},"before"," WordPress generates its thumbnail sizes — so every thumbnail is\nbuilt from the already-optimized image, not the original.",[102,103,105],"h2",{"id":104},"requirements","Requirements",[107,108,109,117,123],"ul",{},[110,111,112,113,116],"li",{},"WordPress ",[97,114,115],{},"6.0"," or newer",[110,118,119,120,116],{},"PHP ",[97,121,122],{},"8.0",[110,124,125],{},"An image editor (Imagick or GD) with WebP support — the plugin's own\nTester tab checks this for you after install",[102,127,129],{"id":128},"install","Install",[131,132,134,139,142,169,182,186,193,197],"steps",{"level":133},"3",[135,136,138],"h3",{"id":137},"get-the-plugin","Get the plugin",[86,140,141],{},"Either with Composer:",[143,144,150],"pre",{"className":145,"code":146,"filename":147,"language":148,"meta":149,"style":149},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","composer require lwplugins\u002Flw-img\n","Terminal","bash","",[151,152,153],"code",{"__ignoreMap":149},[154,155,158,162,166],"span",{"class":156,"line":157},"line",1,[154,159,161],{"class":160},"sBMFI","composer",[154,163,165],{"class":164},"sfazB"," require",[154,167,168],{"class":164}," lwplugins\u002Flw-img\n",[86,170,171,172,177,178,181],{},"Or download the latest release zip from the\n",[89,173,176],{"href":174,"rel":175},"https:\u002F\u002Fgithub.com\u002Flwplugins\u002Flw-img\u002Freleases",[93],"Releases page"," and upload it\nin ",[97,179,180],{},"Plugins → Add New → Upload Plugin",".",[135,183,185],{"id":184},"activate","Activate",[86,187,188,189,192],{},"A new ",[97,190,191],{},"LW Plugins → Image"," menu appears in WP Admin.",[135,194,196],{"id":195},"connect","Connect",[86,198,199,200,202,203,208],{},"Open ",[97,201,191],{}," and paste your API key from the\n",[89,204,207],{"href":205,"rel":206},"https:\u002F\u002Fapp.helloimg.io",[93],"helloIMG dashboard",". Uploads start converting as\nsoon as it's saved.",[102,210,212],{"id":211},"what-it-does-automatically","What it does automatically",[107,214,215,218,221,224,227],{},[110,216,217],{},"JPEG \u002F PNG \u002F GIF \u002F HEIC \u002F TIFF \u002F BMP uploads convert to WebP or AVIF\n(your choice) — already-WebP\u002FAVIF uploads are skipped, no credit used",[110,219,220],{},"Animated GIFs convert to animated WebP, frames and timing preserved",[110,222,223],{},"The original is kept if the converted file wouldn't actually be smaller",[110,225,226],{},"If the API call fails for any reason, the original upload is kept —\nnothing about the upload itself ever fails because of the plugin",[110,228,229],{},"Original files are backed up (restorable from the Media Library) unless\nyou turn that off",[102,231,233],{"id":232},"settings","Settings",[235,236,237,253],"table",{},[238,239,240],"thead",{},[241,242,243,247,250],"tr",{},[244,245,246],"th",{},"Setting",[244,248,249],{},"Default",[244,251,252],{},"Notes",[254,255,256,275,299,310,321,331,341,355],"tbody",{},[241,257,258,262,267],{},[259,260,261],"td",{},"Output format",[259,263,264],{},[151,265,266],{},"webp",[259,268,269,271,272],{},[151,270,266],{}," (widest support) or ",[151,273,274],{},"avif",[241,276,277,280,285],{},[259,278,279],{},"Optimization level",[259,281,282],{},[151,283,284],{},"normal",[259,286,287,290,291,290,293,290,296],{},[151,288,289],{},"lossless"," \u002F ",[151,292,284],{},[151,294,295],{},"aggressive",[151,297,298],{},"ultra",[241,300,301,304,307],{},[259,302,303],{},"Keep EXIF",[259,305,306],{},"off",[259,308,309],{},"Smaller files; drops camera\u002FGPS metadata",[241,311,312,315,318],{},[259,313,314],{},"Skip already-WebP",[259,316,317],{},"on",[259,319,320],{},"Saves credits",[241,322,323,326,328],{},[259,324,325],{},"Skip animated GIF",[259,327,306],{},[259,329,330],{},"Converted to animated WebP by default",[241,332,333,336,338],{},[259,334,335],{},"Backup originals",[259,337,317],{},[259,339,340],{},"Restorable from the Media Library",[241,342,343,346,349],{},[259,344,345],{},"Backup retention",[259,347,348],{},"30 days",[259,350,351,354],{},[151,352,353],{},"0"," = keep forever",[241,356,357,360,364],{},[259,358,359],{},"Bulk speed",[259,361,362],{},[151,363,284],{},[259,365,366,290,369,290,371],{},[151,367,368],{},"gentle",[151,370,284],{},[151,372,373],{},"fast",[102,375,377],{"id":376},"bulk-optimizing-an-existing-library","Bulk-optimizing an existing library",[86,379,380],{},"The plugin can walk your existing Media Library in the background (a\nresumable WP-Cron job) instead of only converting new uploads. From\nWP-CLI:",[143,382,384],{"className":145,"code":383,"filename":147,"language":148,"meta":149,"style":149},"wp lw-img optimize --all\n",[151,385,386],{"__ignoreMap":149},[154,387,388,391,394,397],{"class":156,"line":157},[154,389,390],{"class":160},"wp",[154,392,393],{"class":164}," lw-img",[154,395,396],{"class":164}," optimize",[154,398,399],{"class":164}," --all\n",[86,401,402,405,406,409,410,413],{},[151,403,404],{},"wp lw-img status",", ",[151,407,408],{},"restore",", and ",[151,411,412],{},"requeue"," are also available — see the\nplugin's own admin screen for a live progress dashboard (segmented bar,\nspeed, ETA, activity feed) while a bulk run is going.",[415,416,417],"callout",{},[86,418,419],{},"Images already optimized by another plugin are recognized and left alone —\nLW Image won't reprocess or re-download something it didn't touch.",[421,422,423],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":149,"searchDepth":157,"depth":425,"links":426},2,[427,428,429,430,431],{"id":104,"depth":425,"text":105},{"id":128,"depth":425,"text":129},{"id":211,"depth":425,"text":212},{"id":232,"depth":425,"text":233},{"id":376,"depth":425,"text":377},"Install LW Image, paste your API key, and every upload gets converted automatically.","md",null,{},{"icon":19},{"title":16,"description":432},"YkpS8qqkn-ozdmVrcttgJ9GS_Stic1fJW0tku2RkgKQ",[440,442],{"title":11,"path":12,"stem":13,"description":441,"icon":14,"children":-1},"What helloIMG does, and how the async optimize flow works at a product level.",{"title":21,"path":22,"stem":23,"description":443,"icon":24,"children":-1},"Optimize an image end to end with curl — upload, then poll until it's done.",1787466465710]