Home / Journal

Shutterstock Keywords vs Adobe Stock: Limits and Rules Compared

10 min read

Shutterstock keyword limits and metadata rules compared to Adobe Stock
/* Dark post theme. Tokens mirror the live blog so post bodies read as native site chrome on #0A0A0F. Blue #3080FF stays the accent for rules, rings and ghost text; the primary button fill deepens to #2A6DE8 so white label text clears 4.5 to 1 (white on #3080FF is only 3.71 to 1). */ :root{ –bg:#0A0A0F; –surface:#131722; –surface-2:#0F141D; –surface-3:#1A2130; –line:rgba(255,255,255,0.08); –line-2:rgba(255,255,255,0.14); –accent:#3080FF; –accent-fill:#2A6DE8; –accent-soft:rgba(48,128,255,0.12); –accent-soft-2:rgba(48,128,255,0.22); –link:#3B82F6; –link-hi:#60A5FA; –h1:#F8FAFC; –ink-strong:#E2E8F0; –ink:#CBD5E1; –muted:#94A3B8; –r-btn:10px; –r-card:18px; –sans-head:”General Sans”,”Inter Tight”,Inter,system-ui,-apple-system,”Segoe UI”,Roboto,sans-serif; –sans:Inter,system-ui,-apple-system,”Segoe UI”,Roboto,sans-serif; color-scheme:dark; } *{box-sizing:border-box} html{background:var(–bg)} body{font-family:var(–sans);color:var(–ink);background:var(–bg);line-height:1.7;margin:0;padding:0;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility} .wrap{max-width:700px;margin:0 auto;padding:24px 20px 64px} a{color:var(–link);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px} a:hover{color:var(–link-hi)} .sub{color:var(–muted);font-size:17px;margin:6px 0 12px} .cta-row{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 4px} .btn{display:inline-block;padding:10px 16px;border-radius:var(–r-btn);text-decoration:none;font-weight:600;font-size:15px;line-height:1.4;border:1px solid var(–accent);transition:background-color .18s ease,border-color .18s ease,color .18s ease} .btn-primary{background:var(–accent-fill);color:#fff;border-color:var(–accent-fill)} .btn-primary:hover{background:#2560D6;border-color:#2560D6;color:#fff} .btn-ghost{color:var(–accent);background:transparent} .btn-ghost:hover{background:var(–accent-soft);border-color:var(–line-2);color:var(–link-hi)} .tldr{border-left:4px solid var(–accent);background:var(–surface);padding:18px 20px;border-radius:0 var(–r-card) var(–r-card) 0;margin:24px 0;color:var(–ink);box-shadow:inset 1px 0 0 rgba(255,255,255,0.04)} .tldr strong{color:var(–ink-strong)} .truth{border:1px solid var(–line);border-radius:var(–r-card);overflow:hidden;margin:24px 0;background:var(–surface)} .check{border:1px solid var(–line);border-radius:var(–r-card);overflow:hidden;margin:24px 0;background:var(–surface)} .check>:first-child{border-radius:var(–r-card)} .truth table,.check table{width:100%;border-collapse:collapse;font-size:15px;color:var(–ink)} .truth th,.truth td,.check th,.check td{padding:11px 14px;border-top:1px solid var(–line);text-align:left;vertical-align:top} .truth tr:first-child th,.truth tr:first-child td,.check tr:first-child th,.check tr:first-child td{border-top:0} .truth th,.check th{background:var(–surface-2);color:var(–ink-strong);font-weight:600;letter-spacing:.01em} .truth td,.check td{color:var(–ink)} .truth tbody tr:nth-child(even) td,.check tbody tr:nth-child(even) td{background:rgba(255,255,255,0.02)} .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch} .toc{background:var(–surface);border:1px solid var(–line);border-radius:var(–r-card);padding:16px 20px;margin:24px 0;color:var(–ink)} .toc strong{color:var(–ink-strong)} .toc a{color:var(–ink);text-decoration:none;display:inline-block;padding:3px 0;transition:color .16s ease} .toc a:hover{color:var(–link-hi)} h1{font-family:var(–sans-head);font-size:34px;line-height:1.22;letter-spacing:-0.02em;color:var(–h1);margin:8px 0;font-weight:700} h2{font-family:var(–sans-head);font-size:24px;line-height:1.3;letter-spacing:-0.015em;color:var(–ink-strong);margin:40px 0 10px;font-weight:700} h3{font-family:var(–sans-head);font-size:18px;line-height:1.4;color:var(–ink-strong);margin:26px 0 8px;font-weight:650} h2[id],h3[id]{scroll-margin-top:24px} strong{color:var(–ink-strong);font-weight:650} img{max-width:100%;height:auto;border-radius:var(–r-card);border:1px solid var(–line);display:block} .faq{display:grid;gap:12px;margin:20px 0} .faq details{border:1px solid var(–line);border-radius:var(–r-card);padding:16px 18px;margin:0;background:var(–surface);transition:border-color .18s ease,background-color .18s ease} .faq details:hover{border-color:var(–line-2)} .faq details[open]{background:var(–surface-2);border-color:var(–line-2)} .faq summary{font-weight:650;color:var(–ink-strong);cursor:pointer;line-height:1.5;list-style-position:outside} .faq summary:hover{color:var(–link-hi)} .faq summary::marker{color:var(–muted)} .faq details p{margin:10px 0 2px;color:var(–ink)} details{border:1px solid var(–line);border-radius:var(–r-card);padding:16px 18px;margin:24px 0;background:var(–surface);color:var(–ink)} summary{font-weight:650;color:var(–ink-strong);cursor:pointer;line-height:1.5} summary::marker{color:var(–muted)} summary:hover{color:var(–link-hi)} details p{margin:10px 0 2px;color:var(–ink)} .cta{border:1px solid var(–line);border-radius:var(–r-card);background:var(–surface);padding:20px;margin:28px 0;box-shadow:inset 0 1px 0 rgba(255,255,255,0.03)} .cta>strong:first-child{color:var(–ink-strong);display:block;margin-bottom:4px} .cta p{color:var(–ink)} .meta{color:var(–muted) !important;font-size:14px} .group{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0} .pill{border:1px solid var(–line);border-radius:var(–r-pill);padding:6px 13px;background:var(–surface);color:var(–ink);font-size:14px} /* Theme-safe overrides. StockPilot renders post body in .entry-content and the post title in h1.wp-block-post-title, so scope to both. !important needed to beat the theme’s cross-origin striped-row and pale-text rules. */ h1.wp-block-post-title{color:var(–h1) !important;font-family:var(–sans-head) !important} .entry-content,div.entry-content p,div.entry-content li,div.entry-content td,div.entry-content th,div.entry-content summary,div.entry-content figcaption{color:var(–ink) !important} div.entry-content{background:var(–bg) !important} div.entry-content strong,div.entry-content h1,div.entry-content h2,div.entry-content h3{color:var(–ink-strong) !important} h1.wp-block-post-title,div.entry-content h1{color:var(–h1) !important} div.entry-content table{background:var(–surface) !important;color:var(–ink) !important} div.entry-content table th,div.entry-content table thead th{background:var(–surface-2) !important;color:var(–ink-strong) !important} div.entry-content table td,div.entry-content table tbody tr,div.entry-content table thead tr,div.entry-content table tbody tr:nth-child(even){background:transparent !important;color:var(–ink) !important} div.entry-content table tbody tr:nth-child(even){background:var(–surface) !important} div.entry-content table td,div.entry-content table th{border-color:var(–line) !important} div.entry-content .tldr,div.entry-content .toc,div.entry-content .cta,div.entry-content .faq details,div.entry-content details{background:var(–surface) !important;color:var(–ink) !important;border-color:var(–line) !important} div.entry-content .sub,div.entry-content .meta,div.entry-content figcaption{color:var(–muted) !important} div.entry-content a{color:var(–link) !important} div.entry-content .btn-primary{background:var(–accent-fill) !important;color:#fff !important;border-color:var(–accent-fill) !important} div.entry-content .btn-ghost{background:transparent !important;color:var(–accent) !important} div.entry-content .pill{background:var(–surface) !important;color:var(–ink) !important;border-color:var(–line) !important} div.entry-content summary{color:var(–ink-strong) !important} div.entry-content summary::marker{color:var(–muted) !important} div.entry-content img{border-color:var(–line) !important} div.entry-content hr{border:0;border-top:1px solid var(–line)} div.entry-content code{background:var(–surface-2);color:var(–ink-strong);border:1px solid var(–line);border-radius:6px;padding:1px 5px} @media(max-width:480px){h1{font-size:27px}h2{font-size:21px}.wrap{padding:18px 14px 48px}.btn{width:100%;text-align:center}.cta-row{gap:8px}} a:focus-visible,.btn:focus-visible,summary:focus-visible{outline:2px solid var(–accent);outline-offset:2px;border-radius:4px} @media(prefers-reduced-motion:reduce){*{transition-duration:.01ms !important;animation-duration:.01ms !important}}

Stock contributors · Adobe Stock · 8 min read

Shutterstock keywords vs Adobe Stock differ on caps, title length, and review focus. Master one true set, then trim per site without adding false terms.

TL;DR: Before: one pasted set on both sites, stuffed to each cap, order ignored. After: one plain title under 70 characters, one true master set of 20 to 30 terms, most specific 10 first, trim per cap by deleting weak terms.

Introduction

Many contributors sell the same photo on Adobe Stock and Shutterstock. Each site runs its own caps and review checks, so one pasted block rarely fits both. Adobe-first habits transfer well: plain titles, visible terms only, specific order first. Learn the caps, learn the review focus, then keep one master set you trim per site. See Adobe: titles and keywords overview.

Truth Box

SignalInsight
Caps differ by siteAdobe Stock accepts 5 to 49 terms. Plan a master set near 25 so trims stay painless.
Order matters most on AdobeFirst 10 carry extra weight on Adobe Stock. Keep specific nouns first on both sites.
Core bans matchBrands, praise, gear talk, and off frame facts fail on both. Delete them once in the master.
Titles need one plain baseOne title under 70 characters fits both. Adjust only when a cap forces shorter text.
Trim by deletingFit the lower cap by removing weak terms. Never invent new guesses to fill space.

How Do Limits Compare Side by Side?

Use this table as a planning base. Always confirm current caps on each help page before a large batch, since sites update wording.

FieldAdobe Stock habitSecond site habit
Keyword count5 to 49 allowed, 20 to 35 typical for photosLower cap common, keep master near 25 to trim fast
Title lengthPlain title under 70 charactersShort plain base fits both, cut filler first
Order weightFirst 10 weighted mostSame specific first order, broad terms last
ReleasesSigned release per clear face and private propertySame proof needed, keep forms ready per file
Similar reviewCrowded angles flagged as similarCull twins before upload on both

Which Rules Differ Most Between Shutterstock and Adobe Stock?

Three gaps cause most cross site faults. First, count caps: a full 49 term Adobe set will not paste cleanly elsewhere. Second, title phrasing: extra adjectives that pass one review can read as stuffing on the other. Third, category and editorial flags differ, so files marked editorial in one queue need matching flags and honest captions in both. Keep the master plain and factual and both queues stay calm.

One file two sites workflow

Finish Adobe Stock first, then derive the second listing from that master. Never draft two sets from scratch.

StepActionPass rule
1Write one plain titleUnder 70 characters, only what shows
2Build master set near 25Every term visible, 10 most specific first
3Pass Adobe checksNo brands, no praise, no gear talk, releases attached
4Trim for second capDelete weak broad terms, keep order intact
5Recheck twinsKeep best two angles, change title per angle
Master near 25 true termsSpecific 10 firstTrim by deleting

Mistakes when copying between sites

Pasting the full 49 term set into a lower cap field truncates mid thought and leaves weak terms. Swapping in fresh guesses to fill the second form adds false terms. Translating brand names into generic praise keeps the risk while losing meaning. Keeping year dates and site codes in titles ages files and looks like stuffing. Fix the master once, then trim.

Common Misconceptions

Each site needs wholly different terms. No. One true set fits both when trimmed by deleting weak terms.
More terms on one site help the other. No. Extra loose terms dilute the strong ones in both places.
Editorial flags transfer alone. No. Match flags with honest captions and proof on each site.

FAQ

What is the main gap in shutterstock keywords vs adobe stock?

Adobe Stock caps at 49 terms with extra weight on the first 10. Other sites cap lower and sort terms. Write for Adobe order, then trim for the second site.

Can I use the same title on both sites?

Start from one plain title under 70 characters. Adjust only for each cap. Never stuff site-specific codes or redundant adjectives.

Do banned words match on both sites?

Core bans match: no brands, no praise, no gear talk, nothing not visible. Check each help page before upload since wording differs.

Should order change per site?

Keep the same specific first order on both. Most specific visible subject first works on both. Move broad support terms to the end.

How do I keep one file safe on two sites?

Master one true set of 20 to 30 terms. Edit per cap. Delete false terms rather than swapping in new guesses for the second site.

Conclusion

Compare caps, keep one plain title, master about 25 true terms with specific order first, and trim by deleting. That habit keeps one photo clean and findable on both Adobe Stock and Shutterstock.

Quick recap and next step.

One plain title, master near 25 true terms, specific 10 first, trim per cap by deleting. Next read: contributor metadata pillar and tag rules on the next site.

Read the pillar guideNo credit card required · 50 free tags

The Weekly Acceptance Rate

Every Tuesday: algorithmic acceptance benchmarks, rejection mitigations, and keyword heuristics from 50,000+ commercial reviews. No spam, ever.

Zero promotional spam. Unsubscribe with 1 click at any time.