Immich vs Google Photos 2026: Self-Hosted vs Cloud Photo Comparison
TL;DR
Google Photos charges $35.88/year for 200GB ($99.99/year for 2TB). Immich (AGPL 3.0, ~55K GitHub stars) gives you everything Google Photos does — plus no ads, no AI training on your photos, and ownership of your data — for the cost of a storage drive. If you have 50GB+ of photos and value privacy, self-hosted Immich is the better choice in 2026. Migration from Google Photos is straightforward via Google Takeout.
Key Takeaways
- Cost: Google Photos costs $3/month for 100GB; Immich costs ~$5/month amortized for a home server
- AI features: Immich has face recognition, semantic search, and scene detection — comparable to Google
- Mobile backup: Immich iOS/Android apps backup photos automatically — same UX as Google Photos
- Privacy: Immich processes all AI locally; Google uses your photos to train AI models
- Migration: Google Takeout exports all photos; Immich imports the folder directly
- Tradeoff: Immich requires a server to maintain; Google Photos works if you close your laptop
Cost Comparison
Google Photos pricing (2026)
| Storage | Price | Annual Cost |
|---|---|---|
| 15GB | Free | $0 |
| 100GB | $2.99/mo | $35.88 |
| 200GB | $2.99/mo | $35.88 |
| 2TB | $9.99/mo | $119.88 |
| 5TB | $24.99/mo | $299.88 |
| 10TB | $49.99/mo | $599.88 |
Google One pricing — includes Gmail and Drive storage
Immich self-hosted cost
| Component | One-time | Monthly |
|---|---|---|
| Home server (mini PC like Beelink Mini S12) | $160 | $3-5 electricity |
| 4TB HDD for photos | $80 | $0 |
| Total (Year 1) | $240 | ~$4/mo |
| Total (Year 2+) | $0 | ~$4/mo |
Break-even vs Google Photos 2TB: ~18 months. After that, Immich is $4/month vs $9.99/month.
Already have a NAS/homelab? Immich adds essentially zero cost.
Feature Comparison
| Feature | Immich | Google Photos |
|---|---|---|
| Auto-backup (iOS/Android) | Yes | Yes |
| Face recognition | Yes (local) | Yes (cloud) |
| Semantic search | Yes ("beach sunset") | Yes |
| Scene/object detection | Yes | Yes |
| Shared albums | Yes | Yes |
| Partner sharing | Yes | Yes |
| Video support | Yes | Yes |
| RAW files | Yes | No (converts to JPEG) |
| HEIC/HEIF | Yes | Yes |
| Live photos | Yes | Yes |
| Motion photos | Yes | Yes |
| Maps/geo | Yes | Yes |
| Memories | Yes | Yes |
| Albums | Yes | Yes |
| Google Lens equivalent | No | Yes |
| Edit photos | Basic | Advanced |
| Storage compression | No (original quality always) | Yes (lossy "Storage saver") |
| Offline access | Via download | Yes (cached) |
| Smart home displays | Yes (API) | Yes (Chromecast) |
| Privacy | Your server only | Google trains AI on photos |
Migration: Google Photos → Immich
Step 1: Export from Google Photos
- Go to takeout.google.com
- Deselect all → Select only Google Photos
- File type:
.zip, Size: 50GB max (multiple files) - Delivery: Email link when ready (1-48 hours for large libraries)
- Download all
.zipfiles
Step 2: Import to Immich
# 1. Extract all Google Takeout zips:
mkdir -p ~/google-photos-export
for zip in ~/Downloads/takeout-*.zip; do
unzip -o "$zip" -d ~/google-photos-export/
done
# 2. Use immich-go for clean import (handles JSON metadata):
# Install immich-go (recommended for Google Takeout):
curl -L https://github.com/simulot/immich-go/releases/latest/download/immich-go_Linux_x86_64.tar.gz | tar xz
sudo mv immich-go /usr/local/bin/
# 3. Import with metadata preservation:
immich-go upload \
--key your-immich-api-key \
--server https://photos.yourdomain.com/api \
--google-photos \
~/google-photos-export/Takeout/Google\ Photos/
# This preserves:
# - Original dates from JSON metadata files
# - GPS location data
# - Album structure
# - Starred photos
Step 3: Verify the import
# Check import stats:
immich-go stats \
--key your-api-key \
--server https://photos.yourdomain.com/api
# Expected: same count as Google Photos total
# Check: Immich web UI → Photos → sort by date → verify oldest photos
Mobile App Setup
iOS
- Install Immich from App Store
- Server URL:
https://photos.yourdomain.com - Log in → Enable Backup in settings
- Select: Back up photos + videos
- Optional: Disable Google Photos backup (Settings → Google Photos → turn off)
Android
- Install from Google Play or F-Droid
- Same setup process
Immich Docker Setup
# docker-compose.yml
services:
immich-server:
image: ghcr.io/immich-app/immich-server:release
container_name: immich_server
restart: always
ports:
- "2283:2283"
volumes:
- /path/to/your/photos:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
environment:
DB_HOSTNAME: database
DB_USERNAME: postgres
DB_PASSWORD: "${DB_PASSWORD}"
DB_DATABASE_NAME: immich
REDIS_HOSTNAME: redis
depends_on:
database:
condition: service_healthy
redis:
condition: service_started
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:release
container_name: immich_ml
restart: always
volumes:
- model_cache:/cache
environment:
DB_HOSTNAME: database
DB_USERNAME: postgres
DB_PASSWORD: "${DB_PASSWORD}"
DB_DATABASE_NAME: immich
redis:
image: redis:6.2-alpine
restart: always
database:
image: tensorchord/pgvecto-rs:pg14-v0.2.0
restart: always
environment:
POSTGRES_PASSWORD: "${DB_PASSWORD}"
POSTGRES_USER: postgres
POSTGRES_DB: immich
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
start_period: 30s
volumes:
pgdata:
model_cache:
photos.yourdomain.com {
reverse_proxy localhost:2283
}
Privacy Comparison
Google Photos data usage
- AI training: Google's Terms of Service allow using photos to improve AI models
- Advertising: Image content analysis informs advertising profiles
- Third-party access: Law enforcement can subpoena your photos from Google
- Data residency: Photos stored in Google's data centers globally
Immich privacy
- AI runs locally: Face recognition and semantic search run on your hardware
- No advertising: No ad profile, no data mining
- No third-party access: Law enforcement must subpoena your server
- Data sovereignty: Photos stay on your hardware in your country
When to Choose Google Photos Instead
Immich is better in most cases, but Google Photos still wins for:
- Zero maintenance: Immich requires keeping your server running and updated
- Storage flexibility: Google scales infinitely; self-hosting is limited by your drive
- Mobile reliability: If you're often off-home-network without VPN, Immich may be slower
- Google Lens: Object identification, text extraction, plant/animal ID — Immich doesn't have this yet
- Family who's not technical: Google Photos family sharing is easier to set up for less-technical relatives
See our Immich self-hosting guide for the full Docker setup.
See all open source photo management tools at OSSAlt.com/categories/photos.