Menu
Sign up

The Google Sheets IMAGE function: show pictures in cells, sizes, modes and common fixes

Show an image in a Google Sheets cell with =IMAGE(url): the four sizing modes, custom sizes, a column of URLs, blank rows, and why an image does not show.

Published November 7, 2026 · 5 min read

IMAGE is the Google Sheets function that puts a picture inside a cell from a web address. It is how product catalogues, team lists and content calendars show thumbnails next to the data — and how a sheet of generated images can show each result next to its row. This page covers the syntax and the four sizing modes exactly as Google's IMAGE function help describes them (read on 2026-11-07), then the patterns that come up in real sheets and the reasons an image fails to appear.

Syntax

IMAGE(url, [mode], [height], [width])

Google's examples:

=IMAGE("https://www.google.com/images/srpr/logo3w.png")
=IMAGE(A2, 2)
=IMAGE(A2, 4, 120, 200)
  • url — "The URL of the image, including protocol (e.g. http://)". It "must either be enclosed in quotation marks or be a reference to a cell containing the appropriate text".
  • mode — optional, 1 by default; see below.
  • height, width — optional, in pixels, and only used with mode 4.

The four modes

Mode What Google's help says Use it for
1 (default) "resizes the image to fit inside the cell, maintaining aspect ratio" Thumbnails in a list
2 "stretches or compresses the image to fit inside the cell, ignoring aspect ratio" Rarely — it distorts photos
3 "leaves the image at original size, which may cause cropping" Small icons that must stay pixel-exact
4 "allows the specification of a custom size" A fixed size across all rows

One sentence in the docs explains most "my image is tiny" questions: "Note that no mode causes the cell to be resized to fit the image." The cell decides the space. With mode 1, make the row taller and the column wider and the image grows with it; with mode 4, size the cell to match the height and width you gave.

Patterns for real sheets

A column of URLs, a column of pictures. Put the URLs in column A and in B2 write =IMAGE(A2), then fill down. Each row shows its own image, and changing a URL changes the picture.

Skip empty rows. On rows without a URL, IMAGE has nothing to show. Wrap it so blank rows stay blank:

=IF(A2="", "", IMAGE(A2))

Build the URL from parts. When images follow a naming pattern — a product SKU, a date, an ID — join the parts with &:

=IMAGE("https://example.com/products/" & A2 & ".jpg")

One size for every row. Set the row height once for the whole range (select the rows, right-click, resize rows) and use mode 1, or use mode 4 with the same height and width in every formula. Mixing tall and short rows makes a catalogue hard to scan.

A picture and a link. IMAGE shows the picture; it does not make the cell a link to the file. Keep the URL in its own column, so people can open the full-size file and other tools can read the address.

These are standard Sheets formulas built only from IMAGE, IF and the & operator; we did not need anything else, and we suggest testing them on a copy of your sheet.

Why an image does not show

Most failures come down to the URL, not the formula:

  • No protocol. example.com/photo.png fails; the docs require the URL "including protocol" — https://example.com/photo.png.
  • A page, not an image. A share link to a photo service or a file in cloud storage usually opens a web page that contains the image. IMAGE needs the address of the image file itself. Open the URL in a private browser window: if you see only the picture, it will work; if you see a page around it, it will not.
  • A login wall. Images that need you to be signed in — a private drive, an intranet, a staging site with a password — generally cannot be shown: the image has to be reachable without your sign-in.
  • Text that only looks like a URL. A leading space, a line break pasted from another app, or a formula that returns an error in the URL cell. =TRIM(A2) in a helper column removes stray spaces.
  • A link that changes or expires. Signed download links from some storage services stop working after a while; the cell then goes blank. Use a stable public URL for anything that should keep showing.

Images inside the cell vs over the cells

IMAGE puts the picture in a cell: it sorts, filters and moves with its row, which is what you want for lists. Google Sheets can also place a picture over the grid, like a sticker, from the Insert menu; that kind stays where you drop it and does not follow the data. For anything row-based — catalogues, rosters, content plans — the formula is the right tool.

Showing generated images next to their rows

A common reason to need IMAGE is a sheet that produces pictures: one row per product, event session or quote, and an image made from each row's values. The sheet holds the data; a renderer turns each row into an image URL; IMAGE shows it next to the row so you can check the whole set at a glance.

That is the part we do — rendering — and nothing inside Sheets: Shareglint is not a Sheets add-on. A short Apps Script in your spreadsheet sends each row's values to our API, writes the returned image URL into the row and adds =IMAGE(…) beside it with Apps Script's Range.setFormula; or the batch API reads the whole sheet as a published CSV and returns every image at once. Both are in the Google Sheets recipe. The rendered images are ordinary public PNG or JPEG URLs, so everything on this page — modes, row heights, the blank-row pattern — applies to them unchanged.

Quick reference

  • =IMAGE(A2) — fit inside the cell.
  • =IMAGE(A2, 4, 120, 200) — exactly 120 px high, 200 px wide.
  • =IF(A2="", "", IMAGE(A2)) — nothing on empty rows.
  • Make rows taller to make mode-1 images bigger; no mode resizes the cell.
  • If nothing shows, test the URL in a private window.

FAQ

How do I insert an image into a Google Sheets cell with a formula?

Type =IMAGE("https://example.com/photo.png") or point it at a cell that holds the URL: =IMAGE(A2). The URL must include the protocol (https://) and be a public address.

How do I make the image bigger in Google Sheets?

With the default mode the image fits inside the cell, so make the row taller and the column wider. Google's docs note that no mode resizes the cell to fit the image. For an exact size, use mode 4: =IMAGE(A2, 4, 120, 200) sets a height of 120 and a width of 200 pixels.

What do the IMAGE modes 1, 2, 3 and 4 mean?

1 (the default) fits the image inside the cell keeping its proportions, 2 stretches it to fill the cell, 3 keeps its original size and may crop it, and 4 takes a custom height and width in pixels.

Why does IMAGE show nothing?

Usually the URL is not a direct, public link to an image file: it lacks https://, points to a web page rather than the image, or needs a login. Paste the URL into a private browser window; if you do not see only the picture, IMAGE will not either.