Platform Audit | 11 platforms · 55 sites · April–May 2026
SEO & Performance Audit

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.

55 sites audited
11 platforms tested
5 scoring dimensions
1 platform with full security headers

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:

⚡ Performance & Load

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.

🏗 Structural Integrity

Presence of a single H1, logical heading hierarchy (H1→H2→H3), semantic HTML elements (<main>, <nav>, <footer>), and alt-text coverage across all images.

🤖 AI Readability & Schema

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.

🔒 Security Headers

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.

Why this matters for AI discovery

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
96.7
84.3
100.0 86.7 0.6 MB 0.7 126 ms 92.0
Photofolio
71.7
69.0
83.3 71.7 12.8 MB 2.3 378 ms 75.4
Wix
59.7
68.3
50.0 59.8 4.8 MB 90.3 86 ms 56.2
Squarespace
25.0
68.0
27.8 68.5 12.3 MB 27.3 162 ms 48.0
Zenfolio
53.3
57.8
38.9 61.7 1.7 MB 22.3 670 ms 51.7
Pixieset
41.3
57.5
66.7 59.1 0.89 MB 6.7 11 ms 63.5
Pixpa
47.7
46.3
83.3 55.2 6.3 MB 29.3 159 ms 51.7
Format
48.7
37.6
66.7 38.4 1.1 MB 15.0 119 ms 49.5
Smugmug
34.3
34.2
33.3 18.3 6.1 MB 41.7 276 ms 32.5
Cargo
54.3
30.4
16.7 21.7 1.9 MB 4.3 310 ms 42.6
Photoshelter
46.0
25.0
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 Total Score: 87.4 / 100
97.0Performance
8Schema Types
10Avg Requests
0.6 MBPage Weight

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 Total Score: 49.7 / 100
34.4Performance
3Schema Types
87.3Avg Requests
12.3 MBPage Weight

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 Total Score: 56.1 / 100
62.6Performance
3.3Schema Types
90.3Avg JS Files
55 msAvg TTFB

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 Total Score: 26.4 / 100
48.6Performance
0Schema Types
87Avg Requests
4,281 msAvg Fully Loaded

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 Total Score: 27.8 / 100
33.2Performance
0Schema Types
42.4Avg JS Files
3,048 msAvg Fully Loaded

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 Total Score: 45.5 / 100
55.6Performance
0Schema Types
334Max Missing Alt
16.7Security

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 Total Score: 67.6 / 100
62.2Performance
0Schema Types
27Avg Requests
70.0Security

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 Total Score: 63.0 / 100
48.8Performance
1Schema Types
15Avg Requests (new)
66.7Security

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 Total Score: 50.0 / 100
47.0Performance
3Schema (1 site only)
172Avg Requests (new)
66.7Security (new)

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 Total Score: 51.7 / 100
52.6Performance
0.3Avg Schema Types
90Avg Requests (new)
83.3Security

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 Total Score: 49.9 / 100
57.4Performance
0.3Avg Schema Types
45Avg Requests (new)
66.7Security

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.

⚠ Critical Finding

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
What ImageObject and Person Schema actually do

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
What this means in practice

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.

Key Finding

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.

Platform
HTTPS
CSP
HSTS
X-Frame
X-Content
Referrer
Bablab
Photofolio
Pixpa
Pixieset
Format
½
½
½
½
Wix
Zenfolio
½
½
Squarespace
½
½
Smugmug
Photoshelter
½
½
Cargo

✓ = 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 only WebSite Schema is doing the bare minimum. Look for ImageObject, ImageGallery, and Person - 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.
All data collected April 2026. Sites audited are those publicly listed as case studies or featured examples by each platform at time of testing. Scores are averages across five sites per platform. PageSpeed Insights data reflects mobile Lighthouse scores.