Why do my Google Drive image links fail when I import products into Shopify?
Google Drive share links open a viewer page, not the image file itself, so Shopify's importer can't fetch them. Here's how to tell the difference and fix it before your import fails.
What's going on
I'm importing a few hundred products by CSV and put my Google Drive image links in the Image Src column. Some products come in with no image at all, others error out, and I can't figure out why some links seem to work and others don't. The links open fine in my browser.
I checked and the images are set to "Anyone with the link can view" in Drive, so I don't understand why Shopify can't grab them during import.
Why it happens
When you share a file from Google Drive, the link you copy (something like drive.google.com/file/d/.../view) points to Google's viewer page for that file, not the raw image. That page is HTML: it loads a preview, share controls, and a login check, and only displays the actual picture inside an embedded frame. Shopify's CSV importer, like almost any automated image importer, fetches whatever the URL returns and expects an image file directly, with the correct content type and a recognizable extension. When it gets Google's HTML page instead, there's no image to attach, so the import either skips that row's image or throws an error, depending on the exact link format used.
This also explains why results look inconsistent within one batch: some Drive link formats happen to resolve closer to a direct file than others, which is why a mixed batch can show some images coming through fine and others failing for no obvious reason. It has nothing to do with your Drive sharing permissions being wrong. "Anyone with the link can view" controls who is allowed to see the file when they open it as a person in a browser; it doesn't change the fact that the URL itself serves a viewer page rather than the raw image bytes an importer needs.
In general, product import tools expect image URLs to be direct, publicly accessible links to the image file itself, served without a login prompt or an intervening viewer page. Google Drive's share links aren't built for that use case, which is why they're a common source of failed image imports across many platforms, not just Shopify.
5 ways to fix it
Test the URL the way an importer will: logged out, in a private window
Before you run the import, copy each image URL and open it in a private or incognito window where you are not signed into Google. If it opens a Drive viewer page, asks you to sign in, or shows a "request access" screen, it will fail during import. A genuine direct image URL loads only the raw image with no surrounding page chrome, and the address typically ends in .jpg, .png, .gif, .webp, or .svg. This is the fastest way to catch the problem before you burn an import run on it.
Upload the images to Shopify Files first, then reference that URL
In Shopify Admin, go to Settings, then Files, and upload the images directly (this supports bulk upload and costs nothing extra). Each uploaded file gets a permanent Shopify-hosted URL you can copy into the Image Src column of your CSV. This sidesteps Google Drive entirely, since Shopify is serving the file itself rather than fetching it from a third party, and it's the most reliable native fix.
Convert Drive share links to a direct-download format only as a last resort
Some merchants reformat a Drive share link, using the file ID embedded in the share URL, into a direct-download style link. This can work temporarily, but Google doesn't guarantee it, rate-limits automated fetches, and has changed link handling before, so a batch that works today can quietly break on your next import. Treat it as a stopgap, and re-verify every URL with the private-window test above rather than trusting the format alone.
Move source images to storage built for direct linking
If you regularly manage large image sets outside Shopify, host them somewhere designed for public direct links, such as your own server, a CDN, or S3-style object storage with public-read access, instead of Google Drive. This avoids the viewer-page problem permanently and also sidesteps Drive's per-file traffic limits, which can throttle bulk imports even when the link format is technically correct.
For very large or recurring catalogs, consider a paid migration or import tool
If you're moving thousands of SKUs or repeating imports on a schedule, a dedicated migration or import app can handle URL validation, retries, and format conversion for you. This is worth paying for mainly at scale; for a one-time or small import, checking and fixing URLs manually is usually faster and free.
Bottom line
This isn't a Shopify bug, it's a mismatch between what Google Drive shares (a viewer page) and what any importer needs (a direct file). Test your links in a private browser window before importing, and when in doubt, upload straight to Shopify Files and use the resulting hosted URL. BesPoP doesn't have a dedicated tool for this specific problem, so the free native fix above is genuinely the best path for most merchants.
Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.