Naar de inhoud
Afbeeldingen & media

WordPress -scaled afbeeldingen uitschakelen (big_image_size_threshold)

Los onscherpe WordPress-afbeeldingen op door de grens van 2560px te verhogen of weg te halen met de filter big_image_size_threshold, en zie waarom opnieuw uploaden de stap is die iedereen overslaat.

Gepubliceerd

Voeg een filter toe op big_image_size_threshold die false teruggeeft en WordPress maakt bij het uploaden geen -scaled kopieën meer. Geef in plaats daarvan een getal terug en je verhoogt de grens in plaats van hem te verwijderen. Beide horen in functions.php of in een kleine mu-plugin, en beide gelden alleen voor uploads die je doet nadat de filter actief is.

// Disable the cap entirely — no -scaled copies at all.
add_filter( 'big_image_size_threshold', '__return_false' );
// Or just raise it. Longest edge, in pixels.
add_filter( 'big_image_size_threshold', function () {
    return 3840;
} );

Wat WordPress hier eigenlijk doet

Sinds WordPress 5.3 wordt elke upload langs zijn langste zijde opgemeten. Is die zijde groter dan big_image_size_threshold — standaard 2560px — dan comprimeert WordPress de afbeelding opnieuw tot die grens, slaat hem op als your-photo-scaled.jpg, en herschrijft de metadata van de bijlage zodat het formaat full voortaan naar de verkleinde kopie wijst.

Je origineel wordt niet verwijderd. Het blijft onder zijn oorspronkelijke bestandsnaam op de schijf staan, wordt vastgelegd in de metadata van de bijlage en is in PHP bereikbaar via wp_get_original_image_path(). Maar niets aan de voorkant serveert het. De blok-editor niet, srcset niet, de voorvertoning in de mediabibliotheek niet. Het ligt daar als archiefkopie.

Alles verderop wordt vervolgens uit het verkleinde bestand gegenereerd, niet uit wat je hebt geüpload:

FormaatBron waaruit het wordt gebouwd
fullde -scaled kopie
large, medium_large, medium, thumbnailde -scaled kopie
Eigen formaten via add_image_sizede -scaled kopie
Formaten van thema’s en plugins, bijv. woocommerce_thumbnailde -scaled kopie
Kandidaten voor srcsetde -scaled kopie

Juist dat ene feit is waar zo veel mensen over struikelen.

Waarom dit meestal de oorzaak is van “mijn scherpe foto ziet er zacht uit”

Er gebeuren twee dingen tegelijk, en maar één daarvan valt op.

Het opvallende is de resolutie. Je uploadt een foto van 4000px voor een hero over de volle breedte. WordPress geeft de browser 2560px. Op een gewoon scherm dat een vak van 1600px vult, merkt niemand het. Op een retinascherm met 2x wil datzelfde vak ruwweg 3200 echte pixels, krijgt er 2560, en de browser vult het verschil op door op te schalen. Zachte randen, papperig detail, tekst in de afbeelding die wazig wordt.

Het minder opvallende is de hercompressie. De -scaled kopie is geen verliesloze uitsnede van je bestand. WordPress decodeert je upload, verkleint hem en comprimeert opnieuw met zijn eigen JPEG-kwaliteitsinstelling. Was je origineel al een gecomprimeerde JPEG uit Lightroom of uit een telefoon, dan is dit een tweede generatie compressie: artefacten bovenop artefacten. Fijn detail, filmkorrel en vlakke verlopen krijgen de hardste klappen. Je ziet het zelfs wanneer de pixelafmetingen op papier voldoende lijken.

Stel het vast voordat je iets wijzigt. Open de afbeelding in een nieuw tabblad en lees de bestandsnaam in de URL. -scaled.jpg betekent dat de grens is toegeslagen. Een achtervoegsel met afmetingen, zoals -1536x1024.jpg, betekent iets anders — srcset koos een tussenformaat dat te klein was, en de filter voor de drempel helpt je daar niet.

Op de server:

find wp-content/uploads -name '*-scaled.*' | wc -l

Is dat getal groot, dan heeft de grens je hele bibliotheek gevormd.

Je kunt ook een bestand in de tool om scaled afbeeldingen uit te schakelen slepen om te zien of een bepaalde bron over de drempel gaat en op welke afmetingen de verkleinde kopie zou uitkomen, voordat je je aan een instelling vastlegt.

De eerlijke afweging

De meeste artikelen vertellen je dat de grens uitzetten schijfruimte kost. Dat is precies omgekeerd, en het is de moeite waard om daar nauwkeurig in te zijn.

Het schijfgebruik per afbeelding gaat iets omlaag. Met de drempel aan bewaart WordPress je origineel én een grote verkleinde kopie. Met de drempel uit houd je alleen het origineel over. Eén bestand in plaats van twee.

Bandbreedte en paginagewicht gaan omhoog, soms fors. Met de grens uit is full je onaangeraakte upload. Alles wat het volledige formaat linkt of toont — een lightbox, een galerijplugin, een “bekijk origineel”-link, een thema dat full opvraagt voor hero-afbeeldingen — verstuurt nu een bestand van misschien 6MB in plaats van 900KB. Op mobiel is dat een reëel probleem voor je Largest Contentful Paint, en beeld-CDN’s redden je niet altijd, omdat sommige boven een bepaalde bestandsgrootte gewoon doorlaten.

Het geheugengebruik tijdens uploaden gaat omhoog. Een afbeelding van 6000px verkleinen kost PHP aanzienlijk meer geheugen dan een van 2560px. Op goedkope shared hosting met een krappe PHP memory_limit is de grens uitzetten een uitstekende manier om mislukte uploads of half gegenereerde thumbnails te gaan krijgen. De drempel naar 3840 verhogen in plaats van hem te verwijderen is de veiligere versie van dezelfde wijziging.

Daarom is voor de meeste sites het verstandige uitgangspunt: verhoog het getal, verwijder het niet. Verwijderen is juist wanneer je afbeeldingen serveert die de volle resolutie echt nodig hebben: galerijen op printkwaliteit, productzoom, architectuurfotografie, alles waarbij de bezoeker het origineel geacht wordt te bestuderen.

De wijziging goed doorvoeren

1. Zet de filter ergens waar hij blijft staan. functions.php in een child theme werkt. Een mu-plugin van één bestand is beter, want een themawissel kan hem dan niet stilletjes ongedaan maken.

<?php
/**
 * Plugin Name: Raise big image threshold
 */
add_filter( 'big_image_size_threshold', function () {
    return 3840;
} );

2. Upload de betreffende afbeeldingen opnieuw. Dit is de stap die mensen overslaan om vervolgens te concluderen dat de filter niet werkt. De drempel wordt één keer beoordeeld, bij het uploaden. Bestaande bijlagen houden hun oude metadata voor altijd. Verwijder de bijlage, upload hem opnieuw en herstel daarna de verwijzingen in je berichten.

3. Verwacht niet dat thumbnails opnieuw genereren iets redt. wp media regenerate via WP-CLI bouwt de tussenformaten uit wat de metadata het volledige bestand noemt — en dat is bij een al begrensde afbeelding de -scaled kopie. Detail dat is weggegooid komt daar niet mee terug. Nuttig als opruimactie ná het opnieuw uploaden. Nutteloos als losse oplossing.

4. Controleer het resultaat, ga er niet van uit. Open de afbeelding na het opnieuw uploaden aan de voorkant en lees de bestandsnaam nogmaals. Geen -scaled betekent dat de filter leeft.

Wanneer uitschakelen de verkeerde zet is

Zijn je bronbestanden al kleiner dan 2560px en zien ze er toch zacht uit, dan was de drempel nooit in het spel. Het probleem is dat het weergavevak groter is dan het aantal beschikbare pixels, en het antwoord is een groter bronbestand of een kleinere container — niet deze filter.

Draagt de geserveerde bestandsnaam een achtervoegsel met afmetingen in plaats van -scaled, dan koos srcset een kleine kandidaat. Dat komt meestal doordat de opgegeven contentbreedte van je thema niet overeenkomt met het vak waarin de afbeelding werkelijk wordt getoond. De grens uitzetten verandert daar niets aan.

En herschrijft een plugin je src naar een optimizer of CDN-proxy, dan geldt niets van dit alles totdat je hebt gecontroleerd wat die proxy serveert. Vergelijk wat WordPress zou moeten genereren met wat de browser daadwerkelijk laadt; wijken die van elkaar af, kijk dan naar wat ertussen zit.

FAQ

Vragen

Hoe schakel ik scaled afbeeldingen uit in WordPress?

Voeg een filter toe op big_image_size_threshold die false teruggeeft. Zet het in functions.php of in een kleine mu-plugin. Met false gaat de grens helemaal uit, dus uploads behouden hun oorspronkelijke afmetingen en er wordt geen -scaled kopie gemaakt. Geef je in plaats daarvan een getal terug, zoals 3840, dan verhoog je de grens in plaats van hem te verwijderen.

Wat betekent het achtervoegsel -scaled in een WordPress-bestandsnaam?

Het markeert een opnieuw gecomprimeerde kopie die WordPress heeft gemaakt omdat je upload langs de langste zijde groter was dan 2560px. Die kopie wordt overal op je site het volledige formaat. Je originele bestand blijft onder zijn normale naam op de schijf staan, maar niets aan de voorkant linkt ernaar, en elke thumbnail en elke srcset-kandidaat wordt uit de verkleinde kopie gebouwd.

Kost het uitschakelen van scaled afbeeldingen meer schijfruimte?

Per afbeelding meestal iets minder, omdat WordPress stopt met het wegschrijven van een tweede groot bestand naast je origineel. De echte kosten zitten in bandbreedte, niet in opslag. Met de grens uit serveert alles wat naar het volledige formaat linkt je onaangeraakte upload, en dat kan op een mobiele verbinding zomaar een paar megabyte zijn.

Worden afbeeldingen die al onscherp zijn hiermee alsnog scherp?

Nee. De filter geldt alleen voor nieuwe uploads. Afbeeldingen die al in de bibliotheek staan houden metadata die naar hun verkleinde kopie wijst, en thumbnails opnieuw genereren bouwt de formaten uit datzelfde begrensde bestand. Om de resolutie terug te krijgen moet je de bijlage verwijderen en opnieuw uploaden nadat de filter actief is.

Is 2560px de juiste grens om aan te houden?

Voor de meeste contentsites wel. Een bron van 2560px bedient een weergavevak van 1280px bij een pixeldichtheid van 2x, en dat is het gangbare geval. Verhoog naar 3840 als je full-bleed heroes, productzoom of fotogalerijen draait. Zet hem alleen helemaal uit wanneer je echt onaangeroerde originelen moet serveren.