Local SEO  ·  December 10, 2025

There's a photo analysis signal in the local ranking code that nobody's noticed

Quick note before I get into this one: a friend who does technical SEO has started going through these proto files with me. Between the two of us we're covering ground a lot faster. He'll probably start contributing to the write-ups soon.

GBP photos have always been a "best practice" thing. Upload good photos, keep them recent, use real images instead of stock. Every local SEO guide says to do it. But the reasoning has always been vague - something about engagement signals and conversion rates. Nobody has been able to point to a specific ranking signal tied to photos. I think I found one.

// local_quality/photo_scoring.proto
message PhotoQualitySignal {
  float recency_score = 1;
  float diversity_index = 2;
  float user_photo_ratio = 3;
  int32 total_photos = 4;
  int32 photos_with_faces = 5;
  float quality_classifier_score = 6;
}

Let me go through these fields.

recency_score - pretty clear. How recent are the photos? This probably decays over time, similar to the review velocity decay I wrote about in October. A business that uploaded 20 photos three years ago and nothing since probably scores lower than one that uploads a few photos every month.

diversity_index - this one's interesting. My guess is it measures whether the photos show different aspects of the business: interior, exterior, products, team, food (for restaurants), etc. Twenty photos of the same storefront from slightly different angles would score low on diversity. Google's image recognition is good enough to evaluate this.

user_photo_ratio - ratio of customer-uploaded photos to owner-uploaded photos. This is the one that surprised me. A high ratio of customer photos probably signals an active, visited business. You can upload your own photos all day, but you can't fake customers uploading theirs.

photos_with_faces - count of photos containing faces. Could be a signal of a real, active business with real people in it. Or it could feed into the quality classifier. Not sure about this one.

quality_classifier_score - probably an ML model output. Blurry phone photos vs. well-lit professional shots. I wouldn't read too much into this field name alone, but it does suggest Google is evaluating photo quality, not just quantity.

Takeaway

If this is being used the way the field names suggest, the takeaway is that photo strategy matters more than most local SEOs give it credit for. Specifically: upload diverse photos regularly (not all at once), and encourage customers to upload their own. The customer photo ratio is probably the hardest signal to game.


Previous: Citation consistency source weighting   ·   Next: Google's local search uses a click radius