Embeds are convenient and expensive
An embed can add hundreds of KB of JS plus their images. A native WebP gallery is a few img tags.
Why it matters
- Lighthouse 'third-party' audits.
- GDPR-sensitive regions.
- Broken embeds when the post is deleted.
How to do it
- Save the images you have rights to.
- Convert 1080 px / 80% (Instagram's native width).
- Build a simple CSS grid. Write real alt text.
Settings that work
Portraits 1080×1350: cap width 1080. Carousel: convert each frame.