How to Add Video to a Klaviyo Email Without Triggering Spam Filters
June 17, 2026 · chinmay
Email clients do not support <video> tags reliably. The workaround is an animated GIF preview linked to the video destination, with a static PNG fallback for clients that block animation. This post walks through creating that setup in Klaviyo from scratch. You will need access to your Klaviyo account (any paid plan), a short video clip in MP4 format, and a tool to export GIFs (FFmpeg, Ezgif, or Photoshop). Budget roughly 25 minutes for your first clip; subsequent clips take under 10 once the format is dialed in.
Before You Start
- Klaviyo account with access to the email template editor (Core plan or above).
- A product video in MP4 format, ideally the short-form cut: 5 to 10 seconds is enough for an email teaser.
- A GIF conversion tool: FFmpeg (command-line, free), Ezgif (browser-based, free), or Photoshop (File → Export → Save for Web).
- A still frame from the video exported as a 1200x630px PNG, which becomes the Outlook fallback.
- The destination URL where the full video lives, typically your PDP or a landing page. If you have not yet set up video on your product page, see how to add interactive video to a Shopify PDP before continuing.
Step 1: Export the GIF at the Right Dimensions and Frame Rate
Klaviyo's email images best practices documentation recommends keeping images under 1 MB to prevent slow load times. For animated GIFs, stay under 600 KB.
To convert a 5-second MP4 to a compressed GIF using FFmpeg, run both commands in sequence:
# Pass 1: generate an optimized color palette from the video
ffmpeg -i product-clip.mp4 \
-vf "fps=12,scale=600:-1:flags=lanczos,palettegen=stats_mode=diff" \
palette.png
# Pass 2: apply the palette and export the GIF
ffmpeg -i product-clip.mp4 -i palette.png \
-vf "fps=12,scale=600:-1:flags=lanczos,paletteuse=dither=bayer:bayer_scale=5:diff_mode=rectangle" \
product-preview.gif
Key parameters:
fps=12: 12 frames per second keeps motion readable while cutting file size by roughly half compared to 24 fps.scale=600:-1: exports at 600px wide. You will display it at 300px in a 600px-wide email column, so uploading at 2x prevents blur on retina (high-DPI) screens.- Two-pass
palettegen+paletteuse: generates a palette specific to your clip's colors. This alone reduces file size by 30 to 50 percent compared to a single-pass export.
Expected result: A GIF file under 600 KB, 600px wide. Run ls -lh product-preview.gif to confirm size before uploading.
If you are not using FFmpeg, upload the MP4 at Ezgif's video-to-GIF tool, set output width to 600px, frame rate to 12, and enable "Use global color table" under optimization.
Step 2: Prepare the Static Fallback Frame
Outlook 2016, 2019, and Microsoft 365 on Windows do not animate GIFs. They render the first frame as a static image. Make that first frame intentional.
If your clip fades in from black, trim the source before exporting:
# Skip the first 0.5 seconds to avoid the fade-in frame
ffmpeg -i product-clip.mp4 -ss 0.5 -t 5 trimmed-clip.mp4
Re-run the two-pass GIF export against trimmed-clip.mp4. The 0:00 frame of the trimmed clip becomes the Outlook fallback automatically without any additional HTML conditional comments.
Export a full-quality PNG for use as a backup upload alongside the GIF:
ffmpeg -i trimmed-clip.mp4 -ss 0 -frames:v 1 fallback.png
Expected result: A PNG file under 200 KB at 1200x630px. Compress further with pngquant or Squoosh if needed.
Step 3: Add the GIF to a Klaviyo Email Template
Per Klaviyo's guide to embedding videos in email, native video playback is not supported in email clients. The GIF-plus-link method is the recommended approach.
In Klaviyo's drag-and-drop editor:
- Open or create a campaign or flow email.
- Drag an Image block into the section where the video preview should appear.
- Click Upload image and select
product-preview.gif. - In the image block settings, set the Alt text to a short description of the action visible in the video, for example: "Watch how the serum absorbs in 10 seconds."
- Set the Link URL to the PDP or landing page where the full video lives.
- Set the display Width to 300px (half the 600px export width, which renders sharply on retina screens).
Expected result: The email canvas in Klaviyo shows the GIF animating at the set width. On mobile, it scales to the column width automatically via Klaviyo's responsive layout engine.
Step 4: Maintain a Text-to-Image Ratio That Avoids Spam Triggers
Spam filters at Gmail, Yahoo, and Apple Mail score emails on the ratio of visible text to image area. An email that is primarily images with minimal text is a common pattern associated with bulk or phishing mail.
To stay clean:
- Include at least 500 characters of body text in the email outside the GIF block.
- Do not place the GIF in the top-most block. Lead with at least one text block before the image.
- Limit the email to one GIF. Multiple large animated images compound the image-heavy score.
- Set non-empty alt text on every image block. Empty alt attributes on image-heavy emails are a known spam signal.
- Keep total email HTML under 100 KB. Check the size in Klaviyo's preview panel before sending. Templates with many conditional blocks can approach this ceiling quietly.
Step 5: Send a Test and Verify Rendering
Before sending to a segment, verify the GIF renders and delivers correctly.
- In the email editor, click Preview and toggle between Desktop and Mobile views to confirm the GIF width is correct and the link is clickable.
- Click Send test and deliver to a Gmail address and an Outlook address.
- In Gmail on desktop, open DevTools (F12) → Network → filter by Img. Confirm the GIF file request returns HTTP 200 and the file size matches the upload.
- In Outlook, confirm the first frame of the GIF appears as a static image and the link opens to the correct destination.
What to check: If the image renders blank in any client, the most common cause is the recipient mail server not whitelisting Klaviyo's CDN domain. This is rare for images hosted via Klaviyo's built-in upload. Avoid hosting the GIF on a third-party domain unless you have verified deliverability with that host.
What Can Go Wrong
-
GIF is over 1 MB and loads slowly or shows as blank. Re-export at 10 fps instead of 12, or reduce the color palette to 64 colors by adding
max_colors=64to thepalettegenfilter argument. Either change cuts file size by 20 to 40 percent without a visible quality drop at small email widths. -
GIF does not animate in the Klaviyo editor preview. The editor in some browsers renders only the first frame in the canvas. This is a preview limitation, not a delivery bug. Send a test to Gmail to confirm animation before assuming a problem exists.
-
Email lands in spam, not Promotions. Check three things in order: (1) your Klaviyo sending domain has DKIM and SPF records properly configured (visible under
Account → Settings → Email domains); (2) the email body has at least 500 characters of text; (3) the GIF link destination is not flagged by Google Safe Browsing. The Klaviyo email images best practices page covers DKIM and domain setup in detail. -
First frame is black or washed out in Outlook. The clip begins with a fade from black. Trim 0.5 to 1 second from the start using the FFmpeg trim command in Step 2 and re-export both the GIF and the fallback PNG.
Summary
The animated GIF preview linked to a destination page gives subscribers a visual teaser without hitting the <video> compatibility wall that blocks native playback in most email clients. For how to decide which clip to surface once they click through to the product page, see why product video needs to earn its slot or get cut.