howtodistribute
← Back to the index

How Unsplash got its users

HARDProgrammatic SEOscale-upb2cno ads
Visit unsplash.com

One page per photo and per keyword, supplied free by photographers in exchange for exposure.

Confirmed. The team said it publicly, or the signals leave no room for doubt.

Can you run this?
HARD

Reproducible, but it will cost you real money, real months, or a skill you may not have.

The edge you do not have: Critical mass of contributors reached before competitors

Your time
18 to 24 months
Your money
Very little
First signal
9 months
Upside
  • A traffic base that does not collapse when you stop publishing
  • Acquisition that owes nothing to any social platform
Price of entry
  • A proprietary or painful-to-assemble data source
  • A template with a reason to exist page by page
  • 6 to 12 months before it compounds

Programmatic SEO in 2026

Still alive, but the bar has moved. Thin pages get deindexed, so you need real data on every single page.

Everything on this channel →

The play

5 steps, in the order they ran them.

  1. 1

    Unsplash's license page states images can be used commercially "without permission from or attributing the photographer". Photographers upload anyway, because every accepted photo gets a permanent page carrying their name and a link to their profile. Copy the trade, not the license: write terms that make contribution free for you, then hand the contributor a page they can point at. Supply that costs you nothing is what makes page volume possible at all.

    done whenAsk someone who would supply your data what they get back. If the answer is only "exposure" and there is no page with their name on it, nobody contributes a second time.

  2. 2

    Photo URLs read /photos/gray-bungalow-house-on-mountain-near-body-of-water-3wNwnFKo0jU: a plain description of the image, then the ID. That same description is the H1. The page targets the sentence a stranger types, not a filename. Your first unit is one item, and its slug plus H1 must be built from the item's own attributes into a phrase someone would actually search. Never /item/4821.

    done whenOpen five of your item URLs. If a stranger cannot tell what the item is from the slug alone, your H1 is a label, not a query, and no page will rank.

  3. 3

    Second unit: one page per query your own users typed. sitemaps.unsplash.com/sitemaps/searches/en/searches.xml lists 38,099 URLs like /s/photos/4k-wallpaper-batman and /s/photos/1920x1080-wallpaper-cars. Those are not keyword-tool exports, they are strings typed into Unsplash's own search box and promoted to indexable pages once they return enough results. Log every internal search from day one. That log is your page list.

    done whenCan you export last month's internal site searches right now? No search box or no log means you have no page list and no honest way to invent one.

  4. 4

    The template is filtered inventory plus exits. /s/photos/1920x1080-wallpaper-black has no intro paragraph: H1 is the keyword, then the grid, then a row of related searches (/s/photos/1920x1080-wallpaper, /s/photos/dark-background). Each photo page carries a Related tags block pointing back to /s/photos/{tag}. Build that loop, query page to item page to tag to query page, and skip the generated intro text nobody reads.

    done whenTake any generated page and count links out to sibling generated pages. Fewer than five and crawlers reach a dead end after the first page.

  5. 5

    Inclusion is a decision. Photos live in a separate "searchable" sitemap from queries, so a photo has to qualify before it gets indexed. Only once English works does Unsplash repeat it: robots.txt lists searches and searchable sitemaps for de, es, fr, id, it, ja, ko and pt, with the paths localised (/fr/, /ja/). Ship one language, cut the queries that return almost nothing, then translate. Copying a thin template only makes more thin pages.

    done whenCount how many planned pages would show fewer than three real items. If that is most of them, your entity list is too big for the inventory you actually have.

Run this against your own product

In your chat

Carries the play above, and is written to tell you no when this channel is out of reach for you.

In your editor

The same twelve channels as an agent skill. It reads your repository and eliminates what you cannot run. Open source, MIT.

curl -o ~/.claude/skills/howtodistribute/SKILL.md https://howtodistribute.com/skill.md

Acquired by Getty

They ran the same play

Want this verdict on your product?

Describe it. You get back the channel I would run in your place, the 30-day plan, and the number at which you stop.