Drop files to upload
JPG, PNG, WebP, GIF, SVG, MP3 — Max 50MB
Auto-deletes in ~2 weeks
Free — no account needed
Auto-delete
Keep forever
- Free & unlimited
- Clears ~monthly (min ~2 weeks)
- No account needed
- Never expires
- 50 a day when signed in
- Sign in (free) to unlock
Image URLs for Google Sheets.
Google Sheets can show a picture inside a cell with the IMAGE("url") formula, but that formula needs a direct link to the actual image file - not a Drive share page and not a web page that happens to contain the photo. Upload your image here, copy the link it returns, and drop it straight into =IMAGE(). It handles JPG, PNG, WebP, GIF and SVG up to 50 MB, with no recompression and no watermark, so product photos, icons and charts stay crisp in the grid.
Images for Google Sheets at a glance
- Price
- Free
- Sign-up
- Not required
- Formats
- JPG, PNG, WebP, GIF, SVG
- Max size
- 50 MB
- Output
- Direct URL for =IMAGE()
How It Works with Google Sheets
Upload your image
Upload your image to ImageToURL and copy the generated direct URL.
Select your cell
In Google Sheets, click the cell where you want the image to appear.
Use the function
Type =IMAGE("paste-your-url-here") and press Enter to display the image.
Why You Need External URLs
=IMAGE() Needs Public URLs
The =IMAGE() function only works with publicly accessible, direct image URLs; private links or HTML pages will not render.
Google Drive Links Fail
Google Drive sharing links point to preview pages, not raw image files, causing errors in your spreadsheet.
Permanent URLs
Our CDN-backed URLs never expire, ensuring your reports and dashboards remain functional long-term.
Team-Accessible
Public CDN links mean every collaborator sees your images instantly without needing complex permission management.
Ways to show an image in Google Sheets
Sheets offers a few routes to a picture in the grid, and they behave differently when you sort, share or move the file. Here's the practical comparison.
| Method | Public URL needed | Moves with the row | Works for collaborators | Notes |
|---|---|---|---|---|
| =IMAGE(direct URL) | Yes | Yes (in-cell) | Yes | The reliable route for link-driven lists |
| Insert > Image over cells | No | No (floats on top) | Yes | Good for one logo, not for data rows |
| =IMAGE(Drive link) | Yes | Yes | Often fails | Drive link is a viewer page, not the file |
| =IMAGE(web page URL) | Yes | Yes | Risky | Errors unless it ends at the raw image |
| =IMAGE(Imgur page) | Yes | Yes | No | Gallery page, not a direct file link |
How the =IMAGE() function works
The formula takes the form =IMAGE(url, [mode], [height], [width]). The url has to be a direct link to the image file, served over the open web - that's the part people trip on. Mode 1 is the default and fits the picture to the cell while keeping its proportions; mode 4 lets you pin an exact pixel size. Paste the link this tool gives you between the quotes and the cell fills with the picture. Resize the row or column and, in fit mode, the image scales to match.
Why Google Drive links break in =IMAGE()
Copying a Drive file's share link feels like the obvious move, but that URL opens a Drive preview page rather than the raw image. =IMAGE() can't turn a web page into a picture, so the cell shows an error or a broken thumbnail. People then spend ages hunting for the 'right' Drive URL format. A host that returns a true direct link sidesteps the whole problem - the URL ends in the file extension and points straight at the bytes Sheets needs.
Keeping a spreadsheet's images alive
If a sheet is a quick scratch list, anonymous links lasting a couple of weeks are fine. But a catalog or dashboard you'll revisit deserves links that won't vanish: sign in free and mark uploads 'keep forever' so no cell turns into a broken-image box later. Bear in mind anyone you share the sheet with can read the image URLs, and the images themselves are public, so reserve this for catalog and reporting visuals rather than anything confidential.
Where =IMAGE() links earn their keep
A direct URL in a cell turns a plain spreadsheet into something you can actually read at a glance:
Product catalogs
Put a thumbnail next to every SKU so the photo sorts and filters with the row. Inventory and pricing sheets get far easier to scan.
Dashboards and reports
Drop logos, flags or status icons into summary tables. Because the image lives in the cell, it travels with the data when you reorganise.
Asset and content trackers
Track creative, listings or social posts with a preview image beside each entry instead of a folder full of files to open separately.
Frequently Asked Questions
How do I display an image in Google Sheets?
Use the =IMAGE() function with a direct image URL. For example: =IMAGE("https://imagetourl.cloud/your-image.jpg").
Why don't Google Drive image links work in =IMAGE()?
Google Drive links point to a preview page, not the raw image file. The =IMAGE() function requires a direct URL that serves the image file directly.
Can I resize images inside Google Sheets cells?
Yes, you can use the mode parameter in =IMAGE() to fit, stretch, or keep the original size, or define custom dimensions.
Will the images load for everyone who views my spreadsheet?
Yes. Since ImageToURL provides public, CDN-backed URLs, anyone with access to your spreadsheet will see the images load instantly.
Is there a limit on how many images I can add?
There is no limit from our side. While Google Sheets may slow down with thousands of images, typical catalogs and dashboards work perfectly.
What is the difference between =IMAGE() and Insert > Image?
=IMAGE() puts the picture inside a cell, so it moves, sorts and filters with the row - ideal for product catalogs and dashboards. Insert > Image > Image over cells floats the picture on top of the grid and doesn't sort with your data. For a link-driven list, the formula is almost always what you want.
What's the syntax for =IMAGE() with a custom size?
Use =IMAGE(url, mode). Mode 1 fits the image to the cell keeping aspect ratio, 2 stretches it, 3 keeps original size, and 4 lets you set height and width in pixels, like =IMAGE("https://imagetourl.cloud/abc.png", 4, 80, 120).
What image formats and sizes are supported?
JPG, PNG, WebP, GIF and SVG, up to 50 MB each. Transparent PNGs keep their transparency, which is handy for logos and icons sitting in coloured cells.
Do the image links expire?
Anonymous links last at least a couple of weeks. For a sheet you'll keep around - a price list, an asset tracker, a dashboard - sign in with a free account and choose 'keep forever' so the cells don't turn into broken-image errors months later.
Are the images private?
No. =IMAGE() only works with publicly reachable URLs, and anonymous uploads here are public to anyone with the link. That's fine for catalog and product images, but don't host confidential material this way.
Related image tools
Add images to your spreadsheets today
Upload an image, copy the URL, and use =IMAGE() in Google Sheets in seconds.
Upload Now