Photography Platforms:
What the Data Actually Shows
We audited the portfolio sites each platform showcases as its own best work, measuring Core Web Vitals, structured data, security headers, and AI-readability. Here is every number, unfiltered.
01 / / Methodology
How we selected sites and what we measured.
Every site in this audit was sourced directly from each platform's public "Case Studies" or "Featured Photographers" pages. These are not random samples — they are the sites each platform chooses to put in front of prospective customers. If a platform's best example underperforms, that's structural, not incidental.
Each site was scored across four weighted dimensions:
Google Lighthouse performance score, plus raw load metrics: total requests, JavaScript file count, render-blocking scripts, Time to First Byte (TTFB), page weight (MB), and fully-loaded time.
Presence of a single H1, logical heading hierarchy (H1→H2→H3), semantic HTML elements
(<main>, <nav>, <footer>), and alt-text
coverage across all images.
Count and type of Schema.org structured data objects, Open Graph tags, and Twitter Card metadata — the signals AI crawlers (Gemini, ChatGPT, Perplexity) use to understand and surface content.
Presence of five HTTP security headers: Content-Security-Policy (CSP), HSTS, X-Frame-Options, X-XSS-Protection, and X-Content-Type-Options. Each header is worth 20 points of the security score.
AI assistants like ChatGPT, Perplexity, and Google's AI Overviews pull from structured, well-marked-up pages. A platform that fails basic technical standards (clean headings, alt text, semantic HTML) means AI tools simply won't surface your work to potential clients. None of this is new technology: it's all built on the same SEO fundamentals that have mattered for years, now more critical than ever.
02 / Master Comparison Table
All scores are averages across three audited sites per platform. Performance and AI scores are out of 100.
| Platform | Perf Score | AI / Schema | Security | Structure | Page Weight | Avg JS Files | Avg TTFB | Total Score |
|---|---|---|---|---|---|---|---|---|
| Bablab | 100.0 | 86.7 | 0.6 MB | 0.7 | 126 ms | 92.0 | ||
| Photofolio | 83.3 | 71.7 | 12.8 MB | 2.3 | 378 ms | 75.4 | ||
| Wix | 50.0 | 59.8 | 4.8 MB | 90.3 | 86 ms | 56.2 | ||
| Squarespace | 27.8 | 68.5 | 12.3 MB | 27.3 | 162 ms | 48.0 | ||
| Zenfolio | 38.9 | 61.7 | 1.7 MB | 22.3 | 670 ms | 51.7 | ||
| Pixieset | 66.7 | 59.1 | 0.89 MB | 6.7 | 11 ms | 63.5 | ||
| Pixpa | 83.3 | 55.2 | 6.3 MB | 29.3 | 159 ms | 51.7 | ||
| Format | 66.7 | 38.4 | 1.1 MB | 15.0 | 119 ms | 49.5 | ||
| Smugmug | 33.3 | 18.3 | 6.1 MB | 41.7 | 276 ms | 32.5 | ||
| Cargo | 16.7 | 21.7 | 1.9 MB | 4.3 | 310 ms | 42.6 | ||
| Photoshelter | 27.8 | 5.0 | 3.6 MB | 23.7 | 209 ms | 27.7 |
03 / Platform Deep-Dives
Key findings, per-site breakdowns, and what each result means for discoverability.
Bablab is the clear outlier — in the right direction. Across all five audited sites, pages averaged under 12 HTTP
requests and loaded in under 900ms despite displaying 50+ images each. Every site embeds the same 8 Schema types: CreativeWork,
ImageGallery, ImageObject, ItemList, Person,
SiteNavigationElement, WebPage, and WebSite - the most complete structured data set of any platform tested. Zero missing alt tags across all images audited. The
perfect security score of 100 is delivered at the platform level, not left to individual site configuration. Open Graph
and Twitter Card tags are present on all five sites, meaning social share previews work correctly across LinkedIn,
Slack, and X.
- sivanaskayo.comPerf: 98 · 0.52 MB · 11 req · TTFB: 146ms
- portraittoronto.comPerf: 93 · 0.70 MB · 8 req · TTFB: 185ms
- luisgarciafoto.comPerf: 99 · 0.51 MB · 11 req · TTFB: 164ms
- andrewburnsphoto.comPerf: 100 · 0.42 MB · 6 req · TTFB: 145ms
- peterzullo.itPerf: 95 · 0.38 MB · 10 req · TTFB: 156ms
Squarespace ranks at the bottom on performance despite its sites often looking the most polished. Heavy JavaScript
payloads and render-blocking scripts force the browser to pause on every load, one site scored just 3/100 on
performance, and page weight ranged from 2.3 MB to 31 MB across the sample. All five sites share the same generic Schema
types (LocalBusiness, Organization, WebSite), which provide no image-specific context to AI crawlers. Security is consistently weak, with most headers absent across
the board. Performance scores varied between 3 and 50, reflecting significant inconsistency depending on how much
content the photographer has loaded into the template - the platform itself doesn't appear to enforce any weight
constraints.
- crop45.comPerf: 40 · 3.47 MB · 89 req · 9 render-blocking
- ivanimages.comPerf: 32 · 31.05 MB · 112 req · TTFB: 163ms
- juliettecharvet.comPerf: 3 · 2.34 MB · 61 req · 1 render-blocking
- night-fluid-demo.squarespace.comPerf: 50 · 11.52 MB · 68 req · 42 JS files
- mccurry-fluid-demo.squarespace.comPerf: 47 · 4.75 MB · 73 req · 46 JS files
Wix presents a split personality. Its CDN is fast (TTFB averaged just 55ms across the five sites, the best of any
platform in the audit) but it offsets that with an extraordinary JavaScript payload. Sites in the sample loaded between
77 and 100 JS files, totalling 131–223 HTTP requests per page, with one site weighing 33 MB. The SEO score is a strong
100 across the board, and Wix generates some Schema, though the types are generic (WebSite, LocalBusiness,
SearchAction) rather than photography-specific. Security is consistently weak at 50/100 across all five sites: HTTPS is always present
but three of the five expected headers are absent on every site.
- frebermedia.comPerf: 71 · 1.09 MB · 131 req · 77 JS files
- decmichal.comPerf: 36 · 10.87 MB · 188 req · 100 JS files
- yukaidu.comPerf: 72 · 2.56 MB · 189 req · 94 JS files
- agent485.comPerf: 73 · 8.21 MB · 132 req · 79 JS files
- andrewscrivani.comPerf: 61 · 33.01 MB · 223 req · 96 JS files
Photoshelter is the weakest performer in the audit overall, and the five-site sample leaves no ambiguity. Every site returned zero Schema types, zero Twitter Cards, and an AI readability score of exactly 21.5 - making this the most platform-deterministic result in the entire dataset. Average fully-loaded time was 4.3 seconds, driven by an average of 3 render-blocking scripts and 87 requests per page. Security scored 16.7 across four of the five sites - only HTTPS is present, every other header absent. Structure scores were effectively zero across all five sites, with no semantic HTML elements detected on any of them. Photoshelter's architecture delivers a consistent, uniformly poor signal to every kind of crawler.
- helenewiesenhaan.photoshelter.comPerf: 49 · 3.37 MB · 71 req · 2,966ms load
- portfolio.joemcnally.comPerf: 60 · 3.65 MB · 99 req · 3,828ms load
- mike-pickles.comPerf: 29 · 4.01 MB · 85 req · 3,836ms load
- gianlucacolla.euPerf: 53 · 3.93 MB · 71 req · 4,726ms load
- christianbobstphotography.comPerf: 52 · 7.51 MB · 91 req · 5,460ms load
Smugmug scores near the bottom across every dimension, and the five-site sample confirms this is a platform characteristic rather than a sampling fluke. Zero Schema across all five sites. Pages averaged 42 JavaScript files each and exceeded 3 seconds to fully load - one site weighed 15.5 MB, another 11.2 MB. Structure scores averaged 15, reflecting absent semantic HTML throughout. The platform architecture delivers a consistent, uniformly poor result regardless of whose portfolio is hosted.
- gilmoregang.comPerf: 28 · 1.85 MB · 67 req · 42 JS files
- portfolio.shoottokyo.comPerf: 37 · 0.89 MB · 64 req · 41 JS files
- vonwong.comPerf: 38 · 15.5 MB · 116 req · 42 JS files
- emily-teague.comPerf: 29 · 11.21 MB · 115 req · 43 JS files
- richardterborg.comPerf: 34 · 9.61 MB · 118 req · 42 JS files
Cargo's load numbers are acceptable relative to the field (most sites stay under 3 MB and use fewer JS files than the platform average) but the SEO fundamentals are broken across the board. Zero Schema across all five sites, zero semantic HTML, and the lowest security score of any platform (16.7 consistently). The worst single finding in the entire audit sits here: one site carried 334 images with zero alt tags, making every image invisible to screen readers and image search alike. No OG or Twitter tags across any Cargo site. One outlier weighed 16.9 MB with 65 requests, showing the platform doesn't enforce load discipline either. Cargo is optimised for visual presentation with no infrastructure for search discoverability.
- danwilton.co.uk334 images · 0 alt tags · Perf: 43
- estudioblende.comPerf: 61 · 0.65 MB · 18 req · TTFB: 310ms
- hugomapelli.comPerf: 59 · 3.23 MB · 70 req · 2,146ms load
- yeoseopyoon.comPerf: 58 · 1.88 MB · 22 req · 2,585ms load
- shashankpeshawaria.comPerf: 57 · 16.91 MB · 65 req · 5,321ms load
Photofolio ranks second overall, but the five-site sample reveals more variability than a smaller audit would suggest. Performance ranges from 29 to 84 across the sample, a 55-point spread that points to significant differences in how individual photographers configure their sites rather than a platform-level baseline. The most striking finding is asset size: two sites in the sample carried page weights of 416 MB and 517 MB respectively, the heaviest pages in the entire audit by a wide margin. Zero Schema types across all five sites, and no Twitter Card support on any. OG tag coverage is inconsistent, meaning social share previews are unreliable. Structure scores (averaging 72) are the platform's most consistent strength, and security holds at 83.3 on three of the five sites.
- toddspoth.comPerf: 66 · Structure: 65 · Security: 83.3
- priscillagragg.comPerf: 84 · Structure: 85 · Security: 83.3
- noahfecks.comPerf: 67 · Structure: 60 · Security: 83.3
- laceycriswell.comPerf: 29 · 517 MB · 41 req · 3,143ms load
- marencaruso.comPerf: 67 · 416 MB · 27 req · 1,500ms load · Security: 16.7
Pixieset occupies a comfortable middle tier. Pages are light (new sites averaged 15 requests and loaded in under 500ms)
and security is consistent at 66.7 across all five sites. The platform injects only WebSite Schema universally, which is better than nothing but far below what AI crawlers need to contextualise photography work.
Performance ranged from 35 to 65 across the sample, with the lower-scoring sites carrying heavier image sets. OG and
Twitter Card coverage is reliable across all five sites. Pixieset is a solid choice for photographers who prioritise
fast, shareable pages, as long as they accept the trade-off on structured data depth.
- irinaandnikola.comPerf: 41 · Security: 66.7 · Structure: 58
- billchenphotography.comPerf: 35 · Security: 66.7 · Structure: 62
- timioshin.comPerf: 45 · Security: 66.7 · Structure: 60
- serafincastillo.comPerf: 65 · 0.87 MB · 15 req · 218ms load
- elizabethmessina.comPerf: 55 · 0.86 MB · 15 req · 467ms load
Zenfolio's five-site sample reveals significant load-complexity variability. Request counts ranged from under 50 on lighter sites to 237 on the heaviest, and page weights hit 12 MB on one site, driven by 76 JS files. Schema coverage is patchy: only one of the five sites returned any Schema types at all, and that site's implementation appears to be user-configured rather than platform-injected. Security improved on more recently built sites (66.7) compared to older ones (38.9), suggesting Zenfolio has updated its default headers at some point but hasn't backfilled existing sites. No Twitter Card support across any of the five sites. Structure scores are a quiet strength, averaging above 75, consistent heading hierarchies and semantic HTML appear reliably across the sample.
- ericapeerenboom.comPerf: 58 · Schema: 0 · Security: 38.9
- footloosefotography.comPerf: 51 · Schema: 0 · Security: 38.9
- carolinetran.netPerf: 51 · Schema: 3 types · Security: 38.9
- intothegreenphotography.ukPerf: 35 · 7.50 MB · 107 req · 57 JS files
- amyheltphotography.comPerf: 40 · 12.06 MB · 237 req · 76 JS files
Pixpa's security is the strongest of any platform outside Bablab - all five sites scored
83.3, with CSP and HSTS both consistently present, a rare finding in this audit. But AI readability and Schema tell the
opposite story: only one of the five sites returned any Schema type at all(WebSite only), and AI readability scores averaged 42.7. Page weight varied from 3.1 MB to 7.6 MB, and request counts ranged from 55
to 102. OG and Twitter Card coverage is consistent across all five sites. Pixpa photographers benefit from a secure,
socially shareable platform that is nonetheless largely invisible to AI-driven search discovery.
- hernantorres.esPerf: 43 · Security: 83.3 · Schema: 0
- joroggemans.comPerf: 47 · Security: 83.3 · Schema: WebSite
- shotbykaryn.comPerf: 53 · Security: 83.3 · Schema: 0
- made-studio.esPerf: 63 · 3.11 MB · 77 req · 36 JS files
- ullanyeman.comPerf: 57 · 7.61 MB · 102 req · 21 JS files
Format is the most consistent platform in the sample, scores across the five sites barely move. Performance averaged
57.4, security held at 66.7 on every site, and load characteristics were predictable throughout. Only one of the five
sites returned Schema (WebSite only), and AI readability averaged 36.9 - low, but uniform. OG tags are consistently present; Twitter Cards are consistently
absent. Performance ranged from 41 to 78 depending on how image-heavy the individual site was. Format has no
catastrophic failures and no standout strengths - it delivers a reliable, middle-of-the-road result that reflects a
tightly standardised platform architecture.
- lenkaslens.comPerf: 52 · Security: 66.7 · OG: ✓
- emmazphotography.comPerf: 41 · Security: 66.7 · OG: ✓
- liebegaby.comPerf: 78 · Security: 66.7 · Schema: WebSite
- fordphoto.caPerf: 78 · 3.14 MB · 49 req · 1,235ms load
- davidvelezfotografia.comPerf: 63 · 2.11 MB · 41 req · 1,743ms load
04 / AI Readability & Structured Data
Schema.org implementation across all platforms - the data layer that AI-powered search relies on.
Generative search engines (Google SGE, ChatGPT search, Perplexity) don't read your site the way a human does. They consume structured signals: Schema.org objects that explicitly describe who you are, what your images depict, and where you work. A portfolio without these signals is effectively anonymous to AI-driven discovery.
5 of 11 platforms returned zero Schema types across all their featured sites: Photoshelter, Smugmug, Cargo, Format, and Photofolio. These platforms provide no structured data signal to AI crawlers whatsoever. In an era where AI increasingly mediates search discovery, this is a foundational gap.
Schema Types Found Per Platform
| Platform | Avg Schema Count | Types Detected |
|---|---|---|
| Bablab | 8.0 | CreativeWork, ImageGallery, ImageObject, ItemList, Person, SiteNavigationElement, WebPage, WebSite |
| Zenfolio | 3.0 (1 site only) | BreadcrumbList, ImageObject, WebPage, WebSite (+ more on carolinetran.net only) |
| Squarespace | 3.0 | LocalBusiness, Organization, WebSite (all 3 sites identical) |
| Wix | 3.3 | WebSite, LocalBusiness, SearchAction, PostalAddress (varies by site) |
| Pixieset | 1.0 | WebSite only (all 3 sites) |
| Pixpa | 0.3 | WebSite (1 of 3 sites only) |
| Format | 0.3 | WebSite (1 of 3 sites only) |
| Photofolio | 0 | None detected |
| Photoshelter | 0 | None detected |
| Smugmug | 0 | None detected |
| Cargo | 0 | None detected |
The ImageObject Schema type lets you attach metadata (caption, subject, location,
copyright) directly to each image in a machine-readable format. Person Schema ties your
name, location, and specialty to the domain. Together they give AI crawlers a rich, authoritative
signal for surfaces like Google's AI Overviews, ChatGPT Browse, and Perplexity answers. A
WebSite-only Schema (like Pixieset) tells crawlers almost nothing beyond the site's
existence.
Open Graph & Twitter Cards
OG tags control how your site appears when shared on LinkedIn, Slack, Facebook, and iMessage — custom image preview, title, description. Twitter Cards do the same for X/Twitter. These are platform-level defaults: either the platform injects them automatically or it doesn't.
| Platform | Open Graph | Twitter Cards | Notes |
|---|---|---|---|
| Bablab | ✓ 3/3 | ✓ 3/3 | Consistent across all sites |
| Cargo | ✓ 3/3 | ✓ 3/3 | Consistent across all sites |
| Format | ✓ 3/3 | ✓ 3/3 | Consistent across all sites |
| Pixieset | ✓ 3/3 | ✓ 3/3 | Consistent across all sites |
| Pixpa | ✓ 3/3 | ✓ 3/3 | Consistent across all sites |
| Smugmug | ✓ 3/3 | ✓ 3/3 | Consistent across all sites |
| Squarespace | ✓ 3/3 | ✓ 3/3 | Consistent across all sites |
| Wix | ✓ 3/3 | ✓ 3/3 | Consistent across all sites |
| Photoshelter | ✓ 3/3 | ✗ 0/3 | No Twitter Card support |
| Zenfolio | ✓ 3/3 | ✗ 0/3 | No Twitter Card support |
| Photofolio | ½ 2/3 | ✗ 0/3 | OG inconsistent; no Twitter Cards |
OG tags are now a baseline expectation, most platforms get them right. The real differentiator is Twitter Cards: Photoshelter, Zenfolio, and Photofolio don't implement them, meaning every share of your work on X renders as a plain link with no image preview. Photofolio's inconsistent OG implementation (2/3 sites) suggests it's left to the photographer rather than injected by the platform.
05 / Security Headers
HTTP security headers across all 11 platforms. Each header is a Google trust signal and a user-safety mechanism.
Security headers are set at the server level - meaning the platform controls them, not the photographer. A missing Content Security Policy (CSP) leaves your site vulnerable to cross-site scripting. Missing HSTS means browsers may not enforce HTTPS. These aren't obscure hardening details, they're baseline trust signals that affect both user safety and, increasingly, search ranking.
Bablab is the only platform to implement all six security headers consistently (CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer Policy, and HTTPS) across all three tested sites, scoring a perfect 100. Every other platform has at least one critical gap, and CSP is missing on all but Bablab, Pixpa and Pixieset. Two Squarespace sites don't even serve over HTTPS.
The matrix below shows per-platform averages. A ✓ means the header was present on all three tested sites; ½ means present on some; ✗ means absent on all.
✓ = present on all 3 sites · ½ = present on some sites · ✗ = absent on all sites. Two Squarespace showcase sites (ivanimages.com, juliettecharvet.com) were served over plain HTTP - flagged as ½ on HTTPS.
06 /How to Evaluate a Platform Before Committing
A concrete checklist based on the gaps this audit found.
The most reliable test: find the sites a platform publicly showcases and run them through PageSpeed Insights and Google's Rich Results Test. Their best sites define the ceiling of what the platform's architecture can deliver.
-
[1]
Run a featured site through PageSpeed Insights Look for a Performance score above 70 on mobile. Below 50 means structural problems with the platform itself, not just the individual site. Check "Render Blocking Resources" - more than 2 is a red flag.
-
[2]
Check for photography-specific Schema types Use Google's Rich Results Test or view-source and search for
schema.org. A platform generating onlyWebSiteSchema is doing the bare minimum. Look forImageObject,ImageGallery, andPerson- these are the types that give AI crawlers meaningful context about your work. -
[3]
Count the JavaScript files Open the browser DevTools Network tab on a featured site, filter by JS, and count. Under 20 is healthy. Over 50 means the platform is loading a significant overhead on every page view - regardless of how fast the initial TTFB feels.
-
[4]
Check alt-text coverage In PageSpeed Insights, look for "Image elements do not have [alt] attributes". If a platform's own showcase site fails this, the platform either doesn't prompt for alt text or actively strips it. This directly affects image search indexing and accessibility compliance.
-
[5]
Test security headers Run the URL through securityheaders.com. A grade of D or F means the platform hasn't implemented basic HTTP security headers. This is entirely platform-controlled - you can't fix it yourself.
-
[6]
Check for Open Graph tags View-source any featured site and search for
og:image. If it's absent, every share of your work on LinkedIn, Facebook, or Slack will render as a blank preview - no image, no formatted title.