A VCF file with no embedded photos is tiny typically 1 to 2 KB per contact. Add a profile photo and that single contact can reach 150 to 300 KB. A 500-contact export with photos can exceed 100 MB. Platform import limits vary: Google Contacts caps at 20 MB per file and 3,000 contacts per import. iCloud rejects any single contact over 256 KB and any photo over 224 KB. To reduce file size, remove embedded photos, deduplicate contacts or split the file into batches.
What Makes a VCF File Large?
A VCF file containing only text names, phone numbers, email addresses and addresses is extremely small. A contact list of 1,000 people with no photos runs to about 1 to 2 MB. That is nothing.
The size problem is almost always photos.
Every contact photo stored in a VCF file is embedded as base64-encoded binary data inside the PHOTO property. Base64 encoding inflates the original image size by approximately 33%. A 150 KB profile photo becomes roughly 200 KB of text inside the VCF file. Multiply that across hundreds of contacts and the file grows fast.
Three specific things drive VCF file size up:
Embedded Contact Photos
The single largest factor. Each embedded photo adds 30 KB to 500 KB per contact depending on image size and quality. CRM exports and iPhone backups frequently embed large photos automatically.
Contact Count
Even without photos, a very large contact list accumulates size. 10,000 text-only contacts will produce a VCF of around 10 to 20 MB approaching Google Contacts’ import limit.
Extended Properties
CRM exports from Salesforce, HubSpot and Zoho often include dozens of X-extension properties per contact custom fields, sync timestamps, CRM IDs. These add 5 to 20 KB per contact and accumulate quickly at scale.
The Size Math: Text vs Photos
| Contact Type | Per Contact | 100 Contacts | 1,000 Contacts |
|---|---|---|---|
| Text only (name, phone, email, address) | ~1.5 KB | ~150 KB | ~1.5 MB |
| Text + small thumbnail (~30 KB photo) | ~40 KB | ~4 MB | ~40 MB |
| Text + medium profile photo (~150 KB) | ~200 KB | ~20 MB | ~200 MB |
| Text + high-res photo (~400 KB) | ~530 KB | ~53 MB | ~530 MB |
| CRM export with extended properties | ~5–20 KB | ~2 MB | ~15 MB |
The middle two rows explain why a 200-contact export from an iPhone can be 40 MB. Every contact has a profile photo. The photo data is the file.
Platform Import Size Limits
Each platform enforces different limits file-level, per-contact and per-field. Knowing which limit you are hitting tells you exactly what to fix.
| Platform | File Size Limit | Contacts Per Import | Per-Contact Limit | Photo Limit |
|---|---|---|---|---|
| Google Contacts | 20 MB | 3,000 per import | No documented limit | Photos stripped on web export |
| iCloud | No documented limit | 50,000 total account | 256 KB max per contact | 224 KB max per photo |
| iPhone (tap to import) | Device RAM dependent | No hard limit | No hard limit | No hard limit |
| Android (Google Contacts app) | No documented limit | No documented limit | No documented limit | No documented limit |
| Outlook | No documented limit | No documented limit | No documented limit | No documented limit |
| Freshsales | 5 MB per import | No documented limit | No documented limit | Photos not in CSV import |
| Salesforce | No VCF support | 50,000 per import (CSV) | N/A | N/A |
iCloud’s per-contact limit is the one that surprises people most
iCloud rejects any individual contact record larger than 256 KB and any embedded photo larger than 224 KB. A single high-resolution contact photo from an iPhone can easily exceed 224 KB. iCloud either silently drops the photo or rejects the entire contact depending on which validation it hits first. If your iCloud import completes but photos are missing, the photos exceeded the 224 KB limit. If specific contacts are missing entirely, those contacts exceeded the 256 KB total size limit.
For a full guide to the import failure experience error messages, batch splitting and recommended batch sizes per platform see our VCF file too large to import guide.
How to Check Your VCF File Size
Check total file size. Right-click the VCF file in File Explorer (Windows) or Finder (Mac) and select Properties or Get Info. The file size tells you immediately whether you are near or over any platform’s import limit.
Count contacts in the file. Open the VCF in Notepad and use Find (Ctrl+F) to search for BEGIN:VCARD. The match count equals the number of contacts. Compare against your expected count to catch truncated exports.
Check for embedded photos. In the same text editor, search for PHOTO. Any match means embedded photos are present. If you find PHOTO entries and the file is large, photos are the primary size driver. Removing them will reduce the file dramatically.
Preview contact detail. Load the file into Univik VCF Viewer to see each contact displayed with all fields visible. This makes it easy to spot contacts with unusually large photos or long extended property blocks driving up the file size.
How to Reduce a VCF File
Three methods, from fastest to most thorough.
Remove embedded photos. This is the most effective single action for oversized VCF files. Removing the PHOTO property from every contact can reduce file size by 80 to 95% for photo-heavy exports. Our guide on removing images from VCF covers manual and tool-based methods. After removal, the resulting VCF contains names, phone numbers, emails and addresses only all fully importable into every platform.
Remove duplicate contacts. Duplicates add size without adding value. A contact list that started with 500 people but grew to 900 through repeated exports and imports contains 400 unnecessary records 44% of the file that serves no purpose. Use Univik vCard Duplicate Remover to clean the file before worrying about size limits. Removing duplicates first means fewer contacts to import and fewer batches to manage.
Split into smaller files. If you need to keep the photos and the full contact list, splitting into batches under the platform’s import limit is the practical solution. Univik vCard Splitter divides a large VCF into equally-sized batch files ready to import one at a time. Set the batch size to match the platform you are importing into 3,000 for Google Contacts, 200 to 300 for iCloud.com.
Convert to a newer vCard version. vCard 2.1 files can be larger than equivalent vCard 3.0 files because of their encoding scheme. Converting to vCard 3.0 via Univik VCF Converter sometimes produces a noticeably smaller file, particularly for contact lists that include non-ASCII names or addresses. For more on version differences see our vCard version guide.
Does the vCard Version Affect File Size?
Slightly. vCard 2.1 uses quoted-printable encoding for non-ASCII characters a format that encodes each special character as three characters (an equals sign followed by two hex digits). A contact with an accented name like Müller stores as M=FCller in 2.1, which is longer than the UTF-8 representation in 3.0.
For contacts with only ASCII characters (standard English names and addresses), the version makes almost no size difference. For contact lists with heavy use of accented characters, Chinese, Japanese, Arabic or other non-Latin scripts, converting from 2.1 to 3.0 can reduce file size by 10 to 30% for those specific contacts.
The vCard version is not the primary size lever. Photos are the primary size lever. Fix photos first.
Frequently Asked Questions
How large is a typical VCF file?
A VCF file with no embedded photos runs about 1 to 2 KB per contact. A 500-contact file without photos is around 500 KB to 1 MB small enough to import anywhere. The same 500 contacts with average-sized profile photos (150 KB each) becomes roughly 75 to 100 MB, which exceeds Google Contacts’ 20 MB limit and causes import problems on most platforms.
Why is my VCF file so much larger than I expected?
Almost certainly because it contains embedded contact photos. Open the file in a text editor and search for PHOTO. If you find matches, those photo blocks are driving the size. Each embedded photo is stored as base64-encoded text inside the file, which makes the file roughly 33% larger than the original image size. 100 contacts with 300 KB photos each = 40 MB file.
Does Google Contacts have a file size limit for VCF imports?
Yes. Google Contacts enforces a hard 20 MB file size limit per import and a maximum of 3,000 contacts per import. Your account also has a total limit of 25,000 contacts. If your file exceeds 20 MB, strip embedded photos first. If it still exceeds 20 MB after stripping photos, split the file into batches under 20 MB.
What is iCloud’s contact size limit?
iCloud enforces a maximum of 256 KB per individual contact record and a maximum of 224 KB per embedded photo. Contacts exceeding either limit are silently dropped or the photo is discarded. iCloud also has a total account limit of 50,000 contacts. These limits are why high-resolution profile photos fail to import through iCloud even when the overall file size looks manageable.
How do I make a VCF file smaller without losing contact data?
Remove embedded photos this preserves all contact information (names, numbers, emails, addresses) while removing only the images. Photo data is usually the largest single component of an oversized VCF file. After stripping photos, contacts import cleanly into every major platform. Profile photos can be added back manually to individual contacts after import if needed.
Conclusion
VCF file size is almost always a photo problem. Text-only contact data is tiny. The moment you include embedded profile photos the file size multiplies, often by 50 to 100 times for large contact lists.
Know the limit of the platform you are importing into before you start 20 MB for Google Contacts, 256 KB per contact for iCloud. Then check whether your file exceeds it. If it does, removing photos is the fastest fix.
Is your large VCF coming from an iPhone export, a CRM export or a combined archive from multiple sources? Each source produces different photo sizes and different extended property bloat and the right reduction strategy depends on which one you are dealing with.