ScreenshotNeo

BlogHow-to

How to Fix Image URLs That Don’t Work in Google Sheets

Fix blank IMAGE cells in Google Sheets by checking URL syntax, access, formats, modes, and when to insert images directly.

By the ScreenshotNeo team1 October 20266 min read

Start here: verify that your formula uses IMAGE(url, [mode], [height], [width]), that the URL includes http:// or https://, and that it points to an image resource you can access. Google’s IMAGE function does not accept URLs hosted at drive.google.com, and SVG is unsupported. If the formula still cannot load the file, insert the image inside or over cells instead.

1. Check the IMAGE formula first

Use a quoted URL or a cell reference containing the URL:

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

The examples show syntax only. The host must actually serve an image that Google Sheets can retrieve.

Required URL details

  • Include a protocol: https:// or http://.
  • Pass text in quotes or reference a cell containing text.
  • Use the direct image resource URL, not necessarily a web page that displays an image.
  • Do not use a direct drive.google.com URL with IMAGE. Google states: “You can only use URLs that aren’t hosted at drive.google.com. SVG file format isn’t supported.” See Google’s IMAGE documentation.

A page such as https://example.com/gallery may contain an image without being the image URL itself. Open the value in a browser and check what it returns. A suitable source normally responds with an image, while a page, login screen, redirect chain, or access-denied response will not render as the cell image you expect.

Do not assume that a URL must end in .jpg or .png; the extension alone does not establish that the response is usable. Conversely, a URL that looks like an image can still require authentication or return HTML.

3. Check format and Google’s documented limitations

SVG is unsupported by the IMAGE function. If your source is SVG, export it as a supported raster image such as PNG or JPG and host that file at an accessible URL.

Google’s separate image-insertion help lists PNG, JPG, and GIF files under 50 MB for the Insert Image workflow. That guidance describes insertion, not an exhaustive inventory of every URL-hosted IMAGE requirement. Read the image insertion help.

4. Choose the correct IMAGE mode

Formula Behavior Use when
=IMAGE(A2) or mode 1 Fits the image while maintaining aspect ratio (default). You want the whole image visible without distortion.
=IMAGE(A2,2) Stretches or compresses the image to fill the cell. The cell must be filled and distortion is acceptable.
=IMAGE(A2,3) Uses the image’s original size and may crop it. You need native dimensions and can accept cropping.
=IMAGE(A2,4,120,200) Uses custom height and width. You need explicit dimensions; mode 4 is required.

Modes change how the image is displayed. They do not resize the spreadsheet cell itself. If the image exists but looks cropped, stretched, or tiny, adjust the row height, column width, and mode before treating it as a URL failure.

5. Test access from the viewer’s account

An image can work for one person and appear blank for another when access depends on the file owner, account, or organization policy. Google Workspace guidance notes that a Google-hosted image URL can remain accessible only while the user who generated it has access to the file. Check the exact account and sharing context used by the person viewing the sheet. Review Google Workspace access guidance.

This check does not guarantee that changing sharing settings will make a formula work. It identifies an access condition worth investigating when results differ between viewers.

6. Insert an image instead of using a formula

Use this route when the image does not need to change dynamically from a URL, or when the source is unsuitable for IMAGE:

  1. Open Insert → Image.
  2. Choose Image in cell or Image over cells.
  3. Upload, paste, or select the image using Google’s available sources.

Google documents inserting images inside or over cells and pasting from a desktop or the web. A cell containing an inserted image cannot also contain text. The insertion help lists PNG, JPG, and GIF files under 50 MB. See the complete insertion steps.

7. A practical troubleshooting checklist

Symptom Likely check Fix
Blank cell immediately Formula syntax or missing protocol Use =IMAGE("https://…") or =IMAGE(A2); confirm A2 contains text.
Formula shows an error Invalid argument or custom size without mode 4 Use modes 1–4 correctly; supply height and width only with mode 4.
Image is distorted Mode 2 Switch to mode 1 to preserve aspect ratio.
Image is cropped Mode 3, cell dimensions, or original-size output Try mode 1 or resize the row and column.
Drive link does not load Unsupported drive.google.com source Use a supported direct URL or Insert Image.
SVG remains blank Unsupported format Convert to PNG or JPG, then use a compatible URL or insertion workflow.
Works for owner, blank for colleague Viewer account or organization access Test while signed in as the affected viewer and verify file access policies.
Image URL opens a webpage Not a direct image resource Locate the actual image URL or download and insert the image.

8. Dynamic URL columns and data hygiene

For a column of URLs, put one URL per row in column A and use =IMAGE(A2) in column B. Check for leading or trailing spaces, accidental quotes included in the cell value, and formulas that return an empty string. Keep the source URL column visible while diagnosing failures so you can compare the exact value being passed to IMAGE.

If URLs are generated by another system, record the retrieval date and source account. A later access-policy change or expired resource can make a previously working formula fail.

9. Performance, reliability, and cost considerations

  • Large sheets with many remote images depend on repeated retrievals and can take longer to render.
  • Prefer stable, cacheable image resources when you control the host.
  • Use smaller raster files when visual quality allows; this reduces transfer and rendering work.
  • For a fixed report, inserted images can be more predictable than formulas tied to changing URLs.
  • For a live catalog, formulas are convenient but require ongoing URL availability and viewer access.
  • Google’s documentation does not provide a universal host-compatibility guarantee, so validate important sources in the account and sheet where they will be used.

10. Or skip the browser setup

If your workflow starts with web pages rather than existing image files, ScreenshotNeo can return a screenshot as PNG, JPEG, WebP, or PDF from one GET request. Its capture process accepts cookie and consent banners like a visitor, then removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing status.

See the ScreenshotNeo API documentation for all options, including full-page capture, element selectors, device presets, custom CSS and JavaScript, waits, blocking rules, headers, cookies, caching, signed links, asynchronous jobs, bulk capture, and PDF output.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Python

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

ScreenshotNeo also provides an MCP server with take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account.

11. Apps Script and CellImage URLs

Apps Script’s CellImage reference documents getContentUrl() as returning a Google-hosted URL. It does not state that this URL can be supplied to the IMAGE function. Treat it as a separate API and keep Google’s explicit drive.google.com restriction in mind. Read the CellImage reference.

FAQ

Why does IMAGE return a blank cell?

Check the URL protocol, direct-resource response, unsupported Drive or SVG source, viewer access, and formula mode. Google’s documentation does not identify one universal cause.

Not directly with IMAGE; Google explicitly excludes URLs hosted at drive.google.com. Use Insert Image or another compatible image host.

Does mode 4 resize my row and column?

No. It sets the image’s custom dimensions; you must resize the cell separately.

Should I use Insert Image or IMAGE?

Use IMAGE for URL-driven, repeatable cells. Use insertion for fixed visuals, unsupported sources, or images that should sit over cells.

Can Apps Script fix every broken image URL?

No. The CellImage reference does not promise that its content URL is valid input for IMAGE; test the documented workflows for your source.