A photographer's guide to getting found on Google Images
A portfolio full of genuinely good photography can still be invisible to Google Images, not because the photos aren't good, but because of how photography portfolio sites are usually built. Lightbox galleries, infinite scroll, and JavaScript-rendered image grids are common in portfolio themes and page builders, and several of those patterns can hide images from search crawlers entirely if they're not implemented carefully.
Check whether Google can actually see your images first
Before worrying about file names or alt text, confirm Google can find the images at all. A lightbox gallery that only loads full-resolution images when a visitor clicks a thumbnail sometimes never puts a real <img> tag with a real src in the page's initial HTML, it loads the image via JavaScript on click, which a crawler may not execute the same way a browser does. Use Google Search Console's URL inspection tool on a gallery page and check the rendered HTML; if your actual photos aren't in it, no amount of alt text or file naming will help, because the crawler never sees the image existing on the page in the first place.
File names: describe the subject, not the shoot
portrait-session-032.jpg describes your folder structure, not the photo. bridal-portrait-golden-hour-krakow.jpg describes what's actually in the frame and where. See How descriptive file names affect image search ranking for the full case.
Alt text: this is where most portfolios fall short
Portfolio sites built on page builders or gallery plugins frequently leave alt text empty by default, because the workflow of dragging in fifty images from a shoot doesn't naturally prompt for it per image. Every photo that matters, every image someone might actually search for, needs its own specific alt text, not the same caption copy-pasted across a gallery. See What alt text actually does for image SEO.
Geotagging: useful for your workflow, not a ranking lever
If you shoot in different cities or venues, geotagging keeps your own archive organized and is genuinely useful if you ever license or sell images through a marketplace that supports location filtering. It's not going to move where your gallery shows up in Google Images, though, don't confuse well-organized metadata with an SEO ranking signal. See Does geotagging photos help local SEO? for the honest version.
Surrounding page text matters more than most photographers expect
Google uses the text around an image, not just the image's own metadata, to understand what it's showing. A gallery page with fifty photos and zero surrounding text, no captions, no shoot description, nothing but a grid of thumbnails, gives Google far less to work with than a page that includes even a short paragraph about the shoot: the type of session, the location, the season. This is also the difference between a page that can rank for "wedding photographer Kraków" and one that can only be found by people already searching your name.
One gallery page per shoot beats one giant portfolio page
A single page trying to hold every photo you've ever taken dilutes relevance, Google can't tell what that page is "about" if it's a mix of weddings, portraits, and product shoots with no distinguishing text. Separate pages per shoot type or session, each with its own short description, give Google a clearer signal about what each set of images actually represents.
The realistic bottleneck
Fixing crawlability is a one-time technical check. Writing genuinely specific alt text and file names for every photo in every shoot you publish is the part that never stops being work, it's ongoing, one shoot at a time, for as long as you're shooting. That's the batch problem TagDuck is built around: it generates a distinct file name, description, and keyword set for every photo in a shoot automatically, from the images themselves and a short note about the session.