PostPrep
← Blog
2025-02-12

Why Canva Bulk Create Ignores Image URLs (And How to Fix It)

Canva Bulk Create won't read image URLs from your CSV. Here's the technical reason why — and the fastest fix.

Pete B.
Pete B.
Founder, Postprep

You've got a spreadsheet. Rows of product images, listing photos, or social media assets — each one with a URL pointing to the image. You connect the CSV to Canva Bulk Create, hit generate, and… nothing. Just a blank image placeholder, or worse, the URL itself printed as text.

You're not doing it wrong. Canva Bulk Create genuinely does not support image URLs. Here's exactly why — and the cleanest way around it.


Why Canva Bulk Create Won't Read Your Image URLs

Canva's Bulk Create reads data from XLSX files (and its own Canva Sheets). When it processes an image column, it doesn't fetch URLs from the internet. It looks for actual image data embedded directly inside the file — specifically, images stored as DrawingML objects anchored to individual cells.

When your spreadsheet has a column of URLs, Canva sees them as plain text strings. It has no way to know those strings are supposed to become images, and even if it did, it won't reach out to fetch them. The result: your image slots stay empty, or your URLs get slapped onto your design as raw text.

This isn't a bug. It's a deliberate limitation, and it's been consistent since Bulk Create launched. The Canva help docs even confirm it:

"Image URLs from cloud photo storage are not supported and will be treated as plain text."

So if you've been chasing a settings toggle or a different CSV format, there isn't one. The file itself needs to change.


What You Actually Need: Embedded Images

For Canva Bulk Create to recognize an image, it must be embedded into a cell in your XLSX file. Not linked. Not referenced by URL. The raw image data has to live inside the file, in a very specific format (DrawingML), anchored to a single cell.

This is easy to do manually if you have 5 rows. It's completely impractical at 50, 100, or 500 rows.

Here's what the manual process looks like in Excel:

  1. Open your spreadsheet in Excel (not Google Sheets — Google Sheets doesn't support this export format)
  2. Click the cell where you want the image
  3. Go to Insert → Pictures → Place in Cell
  4. Upload the image file from your computer
  5. Repeat for every row
  6. Save as .xlsx

That's one image. Now do it 200 times.

You also need the actual image files on your computer — not URLs. So if you're working from a Shopify product catalog, Etsy listings, a Google Sheet of assets, or any other URL-based source, you'd need to download every image first.


The Automated Fix: Convert Your URL List to a Canva-Ready XLSX

This is the exact problem Postprep solves.

You bring your existing spreadsheet — CSV, TSV, or XLSX — with a column of image URLs. Postprep fetches each image, embeds it into an XLSX file using the DrawingML format Canva requires, and hands back a file you can upload directly to Canva Bulk Create.

No downloading images. No opening Excel. No repeating anything.

How It Works

Step 1: Prepare your spreadsheet

Your file needs at least one column of image URLs. The rest of your columns (product names, prices, captions, whatever) carry through unchanged. It doesn't matter where the URLs point — Shopify CDN, Etsy, S3, your own server — as long as the images are publicly accessible.

Example structure:

product_name price image_url
Ceramic Mug $24 https://yourstore.com/images/mug.jpg
Linen Tote $38 https://yourstore.com/images/tote.jpg

Step 2: Upload to Postprep

Go to postprep.app, upload your file, and select which column contains your image URLs.

Step 3: Download the XLSX

Postprep processes the file and returns an XLSX with images properly embedded in each row. Every other column stays intact.

Step 4: Upload to Canva Bulk Create

In Canva, open your template, go to Apps → Bulk Create, upload the XLSX, connect your fields, and generate. Your images show up as actual images — not URLs, not blanks.


Use Cases That Work Well With This Workflow

Etsy sellers creating seasonal social posts from product listings. Export your listing data (title, price, image URL), run it through Postprep, bulk-generate 20 Instagram posts in Canva in under 5 minutes.

Shopify store owners building product announcement graphics. Pull a product export CSV, add your image column, convert, and generate a batch of ads or announcement posts.

Real estate agents generating listing cards. Pull property data with photo URLs from your CRM or MLS export, convert, generate.

Recipe creators and food bloggers posting recipe cards. If you keep a spreadsheet of recipes with dish photos, this gives you a direct path to bulk-generating visual content.


Frequently Asked Questions

Does this work with Google Sheets exports?

Yes. Export your Google Sheet as a CSV, upload that CSV to Postprep, and it handles the rest. The output is always an XLSX formatted for Canva.

What image formats are supported?

JPEG, PNG, and WebP URLs all work. If your images are hosted behind authentication (private S3, password-protected pages), they won't be accessible — images need to be publicly reachable URLs.

Can I use this with Canva's free plan?

Canva Bulk Create is a Canva Pro / Teams feature. Postprep handles the file conversion — the actual Bulk Create step in Canva still requires a Pro account.

What's the row limit?

Postprep's free tier handles up to 100 rows. Larger batches are available with a one-time unlock.

Do I need to install anything?

No. Postprep is a web app. Upload your file, get your XLSX back, done.


The Short Version

Canva Bulk Create requires images to be physically embedded in your XLSX — not linked, not URL-referenced. If your workflow involves any kind of URL-based image source (ecommerce exports, CRM data, spreadsheets from anywhere), you need to convert that file before Canva can use it.

Postprep does that conversion in one step. Upload your CSV with image URLs, download a Canva-ready XLSX.


Ready to try it? postprep.app — free for up to 100 rows.

Try it free

Canva Bulk Create with real embedded images.

Upload your CSV or XLSX. Select your image column. Download a Canva-ready file. Free for up to 100 rows — no account needed.

Try Postprep →
Pete B.

Written by

Pete B.

Pete is a small business owner who got tired of social media eating his evenings. Posting product graphics across channels used to mean opening Canva, dropping in each image by hand, and repeating that for every listing and every platform. He kept hitting the same wall: Canva Bulk Create can save hours, but it refuses to read image URLs from a spreadsheet — turning a 5-minute workflow into a 2-hour copy-paste job. So he built Postprep to fix that one specific limitation, and writes about bulk content workflows, design tool limitations, and shipping social content without burning out.

Discussion