Level: Advanced

Web image optimisation: verifiable protocol, formats, LCP and perceptual quality

A 36-control method to serve the right dimensions, preserve perceptual quality and prove every decision from encoding to field data.
Estimated reading time:
Two prints of an olive leaf illustrate format selection and visual quality review.

Image optimisation is not a race for the smallest file. The method connects the selected resource to its role, CSS box, display density, perceptual quality, network evidence and accessibility.

  • 12 domains From source asset to field monitoring.
  • 36 controls Stable IMGxx identifiers and expected evidence.
  • 4 statuses Not tested never means compliant.
  • 1 public case Edikka defect recorded, measured and corrected.

View “Web image audit grid” in the Edikka Instrument Libraryv1.1 · CC BY 4.0

Web image audit grid

Document which images need correction and the supporting evidence.

Observe image loading

Images and visual stability: observe before correcting

What happens when an image arrives after the text? Compare the same image with and without reserved space, then inspect twelve archived laboratory trials. Linked to controls IMG22 and IMG23 of the existing grid.

These links open in a new tab.

Demo 1.0.0 · grid 1.1. The visual replay and archived laboratory CLS are distinct. No field data is collected.

Preview, files and citation

Inside the instrument

Three excerpts from the published file · abridged where necessary
IDCheckExpected evidence
IMG01Is every visible image inventoried with its final URL, template and role?Dated inventory with page URL, currentSrc, role and owner.
IMG02Is each image classified as LCP, content, decoration, interface, social or data?Reviewed role and short rationale for each priority image.
IMG03Do critical images have an owner and a review date?Owner, last review and next review date.

Read the original file — Web image audit grid · v1.1

Cite this version

Edikka (2026). Web image audit grid (v1.1). https://www.edikka.com/en/insights/web-development/web-image-optimisation#library-source-web-image-audit-grid. Accessed 2026-10-11. CC BY 4.0.

Version history: this catalogue documents the version shown above. No earlier change log is provided here.

Interpretation limit. The grid separates browser facts from decisions; the historical v1.0 replay does not validate the corrected IMG07 check in v1.1.

Find “Web image audit grid” in the Edikka Instrument Library

Short answer

A web image is optimised when the browser receives the smallest sufficient file without losing meaning, sharpness or stability.

Weight alone is not a verdict. A 5 KB thumbnail may be excellent and a 5 KB hero may be visibly damaged. Conversely, a larger file may be the correct choice when it is the Largest Contentful Paint element, appears in a large box and carries important detail. The decision connects six variables: role, rendered dimensions, pixel density, format, perceptual quality and loading time.

The 2025 Web Almanac reports that images are the LCP element on 85.3% of desktop pages and 76% of mobile pages in its dataset. It also reports roughly 1,059 KB of images on the median desktop page and 911 KB on mobile. These are context figures, not budgets to copy.

12audited domains
36replayable controls
4controlled statuses
0universal weight budget

Real case · Edikka

This page failed its own recommendation. We recorded the defect before correcting it.

On 22 August 2026, the public hero selected a 600×400 AVIF weighing 4,794 bytes. Its HTML offered neither srcset nor sizes, while the image occupied up to roughly 445 CSS pixels on desktop. On a 2× screen, the useful intrinsic width approached 890 pixels. Discovery and priority were correct — loading="eager", fetchpriority="high" — but the selected resource could lack definition.

We compared that file with its own 1000×667 JPEG master, resized to 600×400 with Lanczos to isolate encoding. It scored 62.4404 with SSIMULACRA2. The new edition uses a new 1536×1024 PNG master, so every derivative is measured only against a reference produced from that same master. The figures establish encoding fidelity; they are not an artistic A/B test.

Recorded public state and prepared AVIF family, 22 August 2026
StateAVIF candidateBytesSSIMULACRA2Decision
Before
600×400
4,794
62.4404
Non-compliant with the published premium policy.
After · compact
600×400
22,502
83.4109
Faithful derivative for small boxes.
After · DPR 2
900×600
41,533
81.4102
Candidate for a 445-pixel box at 2× density.
After · ceiling
1000×667
48,660
80.6031
Largest public derivative without exposing the PNG master.
Voluntary limitation

Before and after scores are not subtracted because the masters and artwork differ. The production replay below establishes responsive selection, zero horizontal overflow and dated laboratory metrics; it does not replace 75th-percentile field data or human review across every display. Edikka authored the method and audited its own site: this is not an independent benchmark.

Inspect the self-audit JSON, hashes and measurement protocol.

Production evidence · 23 August 2026

Eight viewport × DPR combinations confirm responsive selection with no horizontal overflow.

The public French page was replayed with Playwright from 390 to 1440 pixels and DPR 1 to DPR 2. Each scenario records final URL, HTTP status, CSS box, currentSrc, natural dimensions, encoded bytes, visible control count and browser-console issues. The observed candidates are the 600×400 and 900×600 AVIFs: the browser does not automatically download the largest available resource.

Lighthouse measured the same public state. The mobile lab profile scores 99/100 performance, 100/100 accessibility and 1.9 s LCP; desktop scores 100/100 performance and 0.4 s LCP. These values describe a dated cold-lab run, not an entire user population.

8replayed contexts
0horizontal overflow
2observed AVIF candidates
0.001measured mobile CLS
Resources selected on the public page
ContextViewportDPRCSS boxSelected candidateBytes
Mobile
390×844
1
354×236
600×400 AVIF
22,502
High-density mobile
390×844
2
354×236
900×600 AVIF
41,533
Tablet
800×900
1
764×509
900×600 AVIF
41,533
High-density desktop
1440×1000
2
445×297
900×600 AVIF
41,533
Recorded incident

The replay also exposed an experimental tools=(self) token in Permissions-Policy. It did not affect image selection; its removal is included in the 23 August release. The evidence retains the finding instead of silently deleting it.

Download the replay JSON, assertions, metrics and reproduction commands.

Evidence levels

HTML, a network trace, field data and human review answer different questions.

What each layer can establish
LevelEstablishesDoes not establish aloneExamples
Public HTML
Candidates, attributes, dimensions, alt text and initial discoverability.
The selected file in every context.
srcset, sizes, alt, width, height.
Browser
Selected resource, bytes, priority, rendering, DPR and request timeline.
The experience of the whole audience.
currentSrc, Resource Timing, waterfall.
Field
75th-percentile LCP and CLS when sufficient data exist.
The exact cause of a regression.
CrUX, Search Console, RUM.
Pipeline
Dimensions, format, metadata, bytes, provenance and non-regression.
Editorial meaning and artistic quality.
CI, hashes, encoder, SSIMULACRA2.
Human review
Legibility, crop, visible artefacts and brand fit.
Field performance without instrumentation.
1:1 comparison, mobile and high-density displays.

Edikka method · version 1.1

The grid covers 12 domains and 36 controls without producing a misleading aggregate score.

Every control has a stable IMGxx identifier, method, expected evidence, required access, severity and automation level. Status is restricted to Not tested, Compliant, Non-compliant and Not applicable. A decorative image with an empty alt is not worse than an informative image: it answers a different decision.

The protocol never adds rows into a grade. Missing text on a functional image, a lazy-loaded LCP image or a third-party tracker fired before consent can block release even when every other check succeeds.

Controls IMG01 to IMG36, rendered from the versioned English JSON dataset
IDDomainQuestionMethodExpected evidenceSeverityAutomation
IMG01
Inventory and role
Is every visible image inventoried with its final URL, template and role?
Extract img, picture, SVG and CSS images from priority templates; deduplicate by final URL.
Dated inventory with page URL, currentSrc, role and owner.
Major
Partial
IMG02
Inventory and role
Is each image classified as LCP, content, decoration, interface, social or data?
Compare position, context and function; never infer the role from the filename alone.
Reviewed role and short rationale for each priority image.
Major
No
IMG03
Inventory and role
Do critical images have an owner and a review date?
Assign each family to an editorial, design or technical owner.
Owner, last review and next review date.
Minor
Partial
IMG04
Master, crop and art direction
Is a sufficiently detailed master kept outside production without generation-loss re-encoding?
Compare master dimensions and hash with derivatives; identify successive generations.
Identified, hashed and versioned master.
Major
Partial
IMG05
Master, crop and art direction
Do the focal point and crop remain legible in every template?
Replay desktop, tablet and mobile; inspect the subject, embedded text and negative space.
Screenshots at reference widths and human approval.
Major
No
IMG06
Master, crop and art direction
Is an art-direction variant supplied when scaling alone destroys the composition?
Compare the reduced common crop with a dedicated picture/media variant.
Documented choice: shared crop or dedicated variant.
Minor
No
IMG07
Responsive dimensions
Do srcset candidates cover rendered widths and high-density screens without major oversizing?
With a cold cache, record the rendered CSS width and DPR, identify currentSrc, then measure the selected file pixel width directly without treating naturalWidth as the encoded width. Calculate coverage = file width / (CSS width × DPR) and compare it with the versioned threshold for the image role.
currentSrc, CSS width, DPR, selected-file pixel dimensions, measurement method, coverage ratio and applicable threshold.
Major
Partial
IMG08
Responsive dimensions
Does sizes describe the actual layout?
Compare sizes with computed container widths at documented breakpoints.
sizes values, rendered box and selected resource.
Major
Partial
IMG09
Responsive dimensions
Does the browser choose the smallest sufficient candidate in the tested scenarios?
Replay viewport, DPR and cold cache; record currentSrc and transferred bytes.
Viewport × DPR × currentSrc × bytes matrix.
Major
Yes
IMG10
Formats and fallbacks
Does the format fit the content: photo, transparency, screenshot, illustration, vector or animation?
Classify the visual, then compare the delivered format with fidelity constraints.
Visual type, primary format and rationale.
Minor
Partial
IMG11
Formats and fallbacks
Does each modern source have a coherent fallback when the support policy requires one?
Inspect picture/source/img and test source-selection order.
picture tree and versioned compatibility policy.
Major
Yes
IMG12
Formats and fallbacks
Are MIME type, extension and served bytes consistent?
Compare Content-Type, URL and file signature.
HTTP header and binary identification.
Major
Yes
IMG13
Compression and perceptual quality
Is weight measured per candidate instead of inferred from a filename or estimate?
Record encodedBodySize and transferSize with a cold cache.
Encoded and transferred bytes per resource.
Major
Yes
IMG14
Compression and perceptual quality
Is perceptual quality checked against an explicit master?
Compare at identical dimensions with SSIMULACRA2 or a documented metric, then review sensitive areas.
Master, encoder, version, settings, score and 1:1 captures.
Major
Partial
IMG15
Compression and perceptual quality
Does policy prohibit repeated re-encoding from a derivative?
Trace file provenance and require generation from the master.
Provenance graph or pipeline rule.
Major
Partial
IMG16
LCP discovery and priority
Is the LCP image discoverable in the initial HTML without a late script?
Inspect the pre-execution HTML response and the request initiator.
Initial HTML and request initiator.
Blocking
Yes
IMG17
LCP discovery and priority
Does the LCP image avoid loading=lazy and receive an appropriate priority?
Inspect loading, fetchpriority, preload and network order.
Attributes and dated waterfall.
Blocking
Yes
IMG18
LCP discovery and priority
When present, does the responsive preload match the rendered srcset and sizes?
Compare preload imagesrcset/imagesizes with the image candidates.
Coherent preload and image element, without duplicate download.
Major
Yes
IMG19
Loading and decoding
Do offscreen images use lazy loading without creating a visual gap?
Check loading, viewport distance and request timing during scroll.
Attribute, position and network timeline.
Minor
Partial
IMG20
Loading and decoding
Is decoding mode appropriate to criticality and tested on the rendered page?
Record decoding and inspect rendering; do not treat async or sync as universal.
Attribute and rendering observation.
Information
Partial
IMG21
Loading and decoding
Do carousels, galleries and injected images reserve space before loading?
Replay cold cache and interactions; observe layout shifts.
CLS trace and component capture.
Major
Partial
IMG22
Dimensions and stability
Do width and height describe the intrinsic ratio of the candidate or reference fallback?
Compare attributes, decoded dimensions and rendered ratio.
HTML dimensions, natural dimensions and calculated ratio.
Major
Yes
IMG23
Dimensions and stability
Is space reserved before download at every breakpoint?
Disable cache, throttle the network and inspect the box before decoding.
Pre-load capture and laboratory CLS.
Major
Partial
IMG24
Dimensions and stability
Does CSS cropping preserve an explicit ratio and focal point?
Inspect aspect-ratio, object-fit, object-position and container dimensions.
Computed styles and breakpoint captures.
Minor
Partial
IMG25
Accessibility and meaning
Does every informative image have text that conveys its function in context?
Apply the W3C decision tree; compare alt, adjacent text and function.
Informative, functional, complex or decorative decision.
Blocking
No
IMG26
Accessibility and meaning
Are decorative images ignored by assistive technologies?
Check an empty alt or equivalent technique without duplicating context.
Accessible DOM and screen-reader output.
Major
Partial
IMG27
Accessibility and meaning
Do complex charts, diagrams and screenshots have an equivalent description or data?
Check figcaption, long description, data table or adjacent text.
Complete alternative reachable from the same context.
Major
No
IMG28
Image SEO and discoverability
Are important images exposed through an img src, optionally inside picture?
Compare visible images, HTML and CSS resources.
Discoverable URL in HTML and editorial context.
Major
Yes
IMG29
Image SEO and discoverability
Do filename, alt, caption and adjacent text describe one subject without keyword stuffing?
Cross-review the file, alternative and surrounding paragraph.
Documented consistency without artificial repetition.
Minor
No
IMG30
Image SEO and discoverability
Do CDN, image sitemap and structured data use accessible, consistent URLs?
Check status, image canonical, Search Console ownership for separate domains, sitemap and primaryImageOfPage.
Final URL, status, verified property and coherent ImageObject.
Major
Partial
IMG31
HTTP, cache and privacy
Do public images use a cache policy compatible with their versioning?
Inspect Cache-Control, ETag, Age and immutable naming.
HTTP headers and invalidation rule.
Major
Yes
IMG32
HTTP, cache and privacy
Are sensitive or unnecessary metadata removed from derivatives?
Inspect EXIF, XMP, profiles and coordinates; retain only what is required.
Before/after metadata report.
Major
Yes
IMG33
HTTP, cache and privacy
Do third-party images respect consent, CSP, CORS and the expected referrer policy?
Replay before and after consent; inspect origin, cookies, CSP and referrer.
Waterfall, headers and legal/technical decision.
Blocking
Partial
IMG34
Measurement, CI and governance
Are dimension, weight and quality budgets versioned per image type?
Define template-specific caps and perceptual-quality floors as guardrails, not universal truth.
Versioned configuration file and justified exception.
Major
Yes
IMG35
Measurement, CI and governance
Does CI fail on blocking regressions and publish the evidence?
Replay dimensions, formats, metadata, weight, candidates and links; archive the report.
Command, exit code, dated report and owner.
Major
Yes
IMG36
Measurement, CI and governance
Are field, laboratory and perceptual data kept separate in the decision?
Report field LCP/CLS, lab diagnosis and visual review in three distinct columns.
Decision table without a misleading aggregate score.
Major
Partial

IMG07–IMG09

Required file width follows the CSS box and DPR, not the phone model.

A useful first estimate is required file width ≈ rendered width × DPR. A 445-pixel image on a 2× display calls for roughly 890 pixels. Texture, zoom, format and quality still affect perception, but the calculation prevents two opposite errors: sending 2000 pixels to a 240-pixel thumbnail or 600 pixels to a 445-pixel Retina hero.

In a width-descriptor srcset, every descriptor must match the file’s real width. sizes then describes the image’s layout slot. The browser combines viewport, DPR and candidates, and may reuse a cached candidate.

HTML · responsive image with fallbacks and stable dimensions
<picture>
  <source type="image/avif"
    srcset="hero-600.avif 600w, hero-900.avif 900w, hero-1000.avif 1000w"
    sizes="(max-width: 767px) calc(100vw - 48px), 445px">
  <source type="image/webp"
    srcset="hero-600.webp 600w, hero-900.webp 900w, hero-1000.webp 1000w"
    sizes="(max-width: 767px) calc(100vw - 48px), 445px">
  <img src="hero-1000.jpg"
    srcset="hero-600.jpg 600w, hero-1000.jpg 1000w"
    sizes="(max-width: 767px) calc(100vw - 48px), 445px"
    width="1000" height="667" alt="Useful description in context"
    loading="eager" fetchpriority="high" decoding="sync">
</picture>
Method correction · v1.1

Version 1.0 compared naturalWidth with the CSS box multiplied by DPR. HTML defines naturalWidth as a density-corrected dimension, so it does not necessarily reveal the encoded pixels of the selected file. IMG07 now decodes the resource at currentSrc independently, calculates file_width / (CSS_width × DPR), and keeps the threshold in a versioned role policy. Automation changes from “Yes” to “Partial”: collection is automated; the decision depends on the declared threshold.

Replayable test

At every critical breakpoint, record innerWidth, DPR, CSS width, currentSrc, selected-file pixel dimensions, measurement method, coverage ratio and encoded bytes. A screenshot alone does not prove which resource was selected.

IMG10–IMG12

AVIF, WebP, JPEG, PNG and SVG solve different content and production constraints.

Decision matrix by visual type
FormatGood candidateWatch forFallback
AVIF
Photos and rich compositions where reduced bytes matter.
Encoding effort and artefacts on fine detail or embedded text.
WebP or JPEG according to support policy.
WebP
Photos, screenshots and transparency in mature pipelines.
A suffix does not prove quality.
JPEG or PNG when required.
JPEG
Photo fallback and broad compatibility.
No transparency; cumulative generation loss.
Often the fallback itself.
PNG
Transparency and pixels where loss is unacceptable.
High weight for photography.
Lossless WebP or validated AVIF.
SVG
Logos, icons and simple diagrams.
Scripts, external references and complex DOM.
Raster only when the context requires it.

A defensible protocol states its compatibility policy. Bare AVIF may be acceptable in a controlled environment; heterogeneous support may require picture and a fallback. The failure is changing policy from one image to another without a documented reason.

IMG13–IMG15

A byte cap without a perceptual reference mechanically rewards over-compression.

PSNR, SSIM, SSIMULACRA2 and Butteraugli can compare variants, but none judges crop, meaning or accessibility. A publishable protocol records the master, scaling method, encoder and version, settings, score, bytes and interpretation limits.

This page compares files at identical dimensions. Comparing a derivative directly with a differently sized master would mix resizing and encoding effects. Every variant is measured against a PNG reference generated from its own master with Lanczos.

Terminal · minimum SSIMULACRA2 protocol
ffmpeg -i master.jpg -vf scale=600:400:flags=lanczos reference.png
ffmpeg -i candidate.avif candidate.png
ssimulacra2 reference.png candidate.png
wc -c candidate.avif
shasum -a 256 master.jpg candidate.avif
Premium rule

Do not approve one encoder quality setting for an entire site. Approve a recipe per family — photo, screenshot, texture, illustration — and require human review for high-brand-value exceptions.

IMG16–IMG18

The LCP image should be discovered early, prioritised clearly and preloaded only when evidence justifies it.

Google and web.dev converge on three levers: expose the resource in initial HTML, avoid lazy loading for the LCP element and increase priority with care. Preload may help when discovery is late, but a mismatched responsive preload can consume bandwidth or download twice.

A first-screen image is not necessarily the LCP for every user. Viewport, consent, content and cache can change the candidate. Field data observes the distribution; the laboratory diagnoses discovery and selection.

HTML · responsive preload aligned with the image
<link rel="preload" as="image" href="hero-1000.jpg"
  imagesrcset="hero-600.avif 600w, hero-900.avif 900w, hero-1000.avif 1000w"
  imagesizes="(max-width: 767px) calc(100vw - 48px), 445px"
  type="image/avif" fetchpriority="high">

IMG19–IMG24

Lazy loading, decoding and explicit dimensions solve three different problems.

Choose the mechanism by the failure it prevents
MechanismPurposeEvidenceCommon failure
loading="lazy"
Delay an offscreen image.
Request time and viewport distance.
Applying it to the LCP image.
decoding
Express a decoding preference.
Observed rendering without side effect.
Treating async as universal.
width + height
Supply intrinsic ratio and reserve space.
Stable box before download.
Declaring dimensions that do not match the file ratio.
aspect-ratio
Control responsive component geometry.
Computed style at each breakpoint.
Hiding an incorrect intrinsic ratio.

CLS is a page-level outcome. Correct image dimensions cannot compensate for banners, fonts or injected components. The audit records the image box and the complete layout-shift trace separately.

IMG25–IMG27

Alt text is a contextual decision, not a filename generator or keyword field.

Text alternative by function
FunctionExpected treatmentFailure
Informative
Convey the useful information in context.
Generic description that omits the point.
Functional
Name the action or destination.
Describe appearance instead of purpose.
Decorative
Use an empty alt when appropriate.
Create noise for assistive technology.
Complex
Provide a nearby long description, table or equivalent data.
Compress a chart into one vague sentence.

Automated tests can detect missing attributes, not whether the text conveys the right meaning. IMG25 and IMG27 deliberately require human review.

IMG28–IMG30

Discoverability starts with img and src; structured data cannot rescue an image hidden from extraction.

Important images should be available through an img element with a usable src, optionally inside picture. Stable URLs, accessible pages, coherent adjacent text and image sitemaps help discovery. CSS backgrounds remain appropriate for decoration, not for essential indexed content.

When a CDN uses a separate domain, verify ownership in Search Console. Ensure sitemap, primaryImageOfPage, Open Graph and the public page refer to accessible assets that do not disappear behind transient signatures.

Machine readability

An ImageObject describes an image already present on a coherent page. It does not replace HTML discovery, context, access or quality.

IMG31–IMG36

The optimisation pipeline should be reproducible, versioned and able to fail a release.

Hashed immutable derivatives can receive long cache lifetimes; stable names require an explicit invalidation strategy. Inspect Cache-Control, ETag, Age and CDN behaviour. Remove sensitive EXIF, XMP and coordinates from public derivatives while preserving colour information that the rendering policy needs.

CI can check dimensions, formats, MIME types, metadata, bytes, candidate coverage and broken URLs. It cannot approve crop, visual meaning or brand quality. A blocking regression should fail with a timestamped report and a named owner, not a private warning.

CI · compact invariant example
node audit-images.mjs https://example.com/page --output report.json
test "$(jq '.blocking_failures' report.json)" -eq 0
test "$(jq '.untested_blocking_controls' report.json)" -eq 0
No false automation

The Edikka v1.1 collector distributed with this edition scrolls through the document to trigger native lazy loading, then records public browser evidence: currentSrc, decoded selected-file pixels, CSS box, DPR, coverage, transfer timings, headers and console issues. It deliberately signs neither human framing, Search Console, server logs nor perceptual quality. The grid remains the decision source; the collector does not manufacture a score from incomplete evidence.

State of the art · August 2026

Compatibility, cache and fidelity require dated decisions, not a permanent ranking of formats.

Seven 2026 decisions separating specification, availability and Edikka policy
TopicVerifiable stateProduction decisionExpected evidence
sizes="auto"
HTML allows it for lazy-loaded images and permits fallback source sizes.
Use it only when the lazy-loading intrinsic size is controlled; keep explicit sizes for an eagerly loaded LCP image.
currentSrc and rendered width across target viewports.
JPEG XL
Chrome 145 documents a Blink decoder in an experimental setting behind an origin trial or flags.
Do not make it the universal baseline of this edition. Test within a bounded scope with a fallback that is actually served.
Dated compatibility matrix, negotiation and waterfall.
Client Hints
Sec-CH-Width and Sec-CH-DPR remain an incubated mechanism involving HTTPS, opt-in, cache and privacy constraints.
Treat them as progressive optimisation: no essential image may depend on their presence.
Accept-CH, received request headers, cache key and no-hints fallback.
Vary: Accept
When one URL negotiates several formats, caches must not deliver the wrong variant to another client.
Verify the CDN cache key. Prefer explicit variant URLs when end-to-end negotiation cannot be audited.
Origin/edge headers, HIT/MISS and responses for multiple Accept values.
Encoder settings
A “quality” number is not comparable across codecs, encoders or versions.
Version codec, encoder, version, effort, subsampling and parameters; compare produced files, not slider values.
Command or configuration, hash, bytes, chosen metric and 1:1 review.
Colour management
CSS Color 4 defines extended spaces, while rendering also depends on the file profile, browser and display.
Keep profiles required for fidelity, document sRGB or P3 and test derivatives; do not strip profiles by reflex.
Master and derivative profiles, controlled-display captures and observed delta.
RGESN
French RGESN criteria 5.1, 5.2 and 6.4 address suitable formats, compression and adaptation to display sizes.
Map them to IMGxx controls without presenting one article or page as global RGESN compliance.
Criterion → control → result → evidence mapping.
Expiry rule

Every browser-, CDN- or encoder-dependent decision carries a review date. A novelty enters the baseline only after availability, fallback and production behaviour have been evidenced.

Open instrument · citation · changelog

A method becomes reusable when a third party can collect the same facts, validate their structure and cite a stable edition.

Public collection · Node.js 20+ and Playwright
npm install playwright
npx playwright install chromium
node collect-image-evidence-edikka-v1-1.mjs \
  https://example.com/page web-image-report.json

The report follows a public JSON Schema. Its initial status remains Not tested: collecting a value is not a decision. The auditor maps observations to IMGxx identities, supplies required non-public access and signs the outcome.

Recommended citation: Morel, Bertrand (2026). “Web image optimisation: verifiable protocol, 36-control grid and evidence collector.” Edikka, version 1.1, 23 August 2026, CC BY 4.0. The CITATION.cff file provides structured fields. This edition has no assigned DOI; the canonical URL, version and date are its published citation keys.

Public history without silently changing IMGxx identities
EditionAdditionsCompatibility
v1.0 · 22 August 2026
12 domains, 36 controls, XLSX/JSON grid and before/after self-audit.
Founding edition.
v1.1 · 23 August 2026
IMG07 correction, independent selected-file pixel measurement, v1.1 collector and schema, English parity and historical eight-context production evidence.
IMG01–IMG36 identities and decision vocabulary remain stable; the 23 August replay is historical v1.0 evidence and is not presented as IMG07 v1.1 validation.

Operational workflow

Move from editorial role to production evidence in eight explicit decisions.

  1. 01
    Classify the role

    LCP, content, decoration, interface, social or data.

  2. 02
    Preserve the master

    Source, rights, focal point, provenance and hash.

  3. 03
    Measure real boxes

    CSS widths, breakpoints and useful display densities.

  4. 04
    Choose art direction

    Shared crop or a dedicated mobile variant.

  5. 05
    Encode candidates

    Documented formats, widths, fallbacks and settings.

  6. 06
    Measure quality

    Bytes, perceptual metric and human 1:1 review.

  7. 07
    Integrate

    picture, srcset, sizes, dimensions, priority, alt and caption.

  8. 08
    Replay in production

    currentSrc, waterfall, LCP, CLS, accessibility, cache and discovery.

Failure patterns

Six popular rules fail because they collapse separate decisions into one number.

Replace slogans with testable requirements
MythWhy it failsTestable replacement
“Every image under 100 KB”
Ignores role, dimensions, content and quality.
Budgets by family and template, with documented exceptions.
“AVIF is always better”
Outcome depends on encoder, settings and visual.
Compare real variants at validated size and quality.
“Lazy load everything”
Delays LCP and some first-screen images.
Lazy offscreen only; discover and prioritise LCP.
“Alt text contains the keyword”
Confuses accessibility, context and optimisation theatre.
Describe function or information in context.
“Lighthouse 100 proves performance”
One lab run does not describe the field distribution.
Lab for diagnosis, field for observation, pipeline for prevention.
“A perceptual score proves quality”
It judges neither composition, meaning, brand nor accessibility.
Documented metric plus targeted human review.

Open resources

Download the grid, inspect the evidence and reuse the method.

Licence

The grid, datasets, Markdown, collector, schema and citation metadata are published under CC BY 4.0. Reuse is allowed with attribution to Edikka and a link to this article.

Primary sources and standards

Sources rechecked on 23 August 2026.

Prompt, full source and citation

Explore this analysis.

Choose a task, review the prompt and take it to your AI.

Web image optimisation: verifiable protocol, formats, LCP and perceptual qualityUpdated August 23, 2026

Read the full prompt

Your inputs stay in this browser until you paste them into your AI. No analysis runs here.

Your AI cannot read the link?

Copy the full source or download the document, then attach it to your conversation.

Download Markdown

Edikka perspective

A premium image is neither the lightest nor the largest. It is the right image for its role and context.

Performance should remove unnecessary bytes without degrading meaning, crop, sharpness, accessibility or stability. Every compromise should remain visible and replayable.

01Measure

Observe the actual candidate

Filename is not evidence. currentSrc, the selected file’s decoded pixels, CSS box, DPR, bytes and timing describe what the browser actually used.

02Preserve

Compare with the master

A perceptual metric documents encoding. Human review protects faces, textures, embedded text, crops and brand details.

03Decide

Reject the single score

Weight, LCP, CLS, accessibility and perceptual quality remain separate. One good number cannot offset a blocking failure.

Article FAQ

Frequently asked questions

Additional answers to clarify the key points covered in this article.

10 selected questions View all FAQs

What is a genuinely optimised web image?

A web image is optimised when the browser receives the smallest sufficient file for its CSS box and display density without losing meaning, crop, sharpness, accessibility or stability. File size alone is not enough.

Is AVIF always better than WebP or JPEG?

No. A suffix guarantees neither weight nor quality. Compare derivatives from the same master at the same dimensions with documented encoder settings, then keep a fallback that matches the browsers you actually support.

How should srcset widths be chosen?

Measure the real CSS boxes at critical breakpoints, multiply them by the target display densities, then retain a small set of widths that covers those needs without wasteful gaps. Verify currentSrc in the browser afterwards.

What should the sizes attribute contain?

With width descriptors, sizes describes the width the image occupies in the layout for each viewport condition. It must reflect the actual CSS; a generic value can make the browser download a candidate that is too large or too small.

Should the LCP image be lazy-loaded?

Usually not. The LCP image should be discoverable early in the initial HTML and should not depend on late lazy loading. fetchpriority and preload are justified only after checking discovery, network order and duplicate requests.

What does SSIMULACRA2 measure?

SSIMULACRA2 measures perceptual similarity between a reference and a derivative compared at identical dimensions. It does not judge artistic value, crop or accessibility and guarantees no ranking gain. Human review remains necessary.

What alternative text should an image use?

The decision depends on the image function in context. An informative image conveys useful information; a functional image names the action or destination; a decorative image generally uses an empty alt. Do not copy a filename automatically.

How can an image be made discoverable in Google Images?

Use an img element with a usable src, accessible pages, coherent surrounding text, stable URLs and, when needed, an image sitemap. Structured data describes the page and image but does not replace discoverability.

What maximum file size should an image have?

There is no universal ceiling. The budget depends on role, rendered box, DPR, texture, format and required quality. Define a policy per image family and control bytes, rendering and field experience separately.

How should website images be audited?

Inventory images and their roles, retain masters, measure boxes and currentSrc, verify formats and fallbacks, compare perceptual quality, control LCP and CLS, test text alternatives, then replay those invariants in CI and production.

Web solutions designed to perform

Strategy. Design. Code. SEO. AI. Clearer, faster, and more compelling digital experiences.

Related articles to continue the analysis