Home / Journal

Adobe Stock Keywords Guide: Complete Metadata, Titles & Categories

12 min read

Adobe stock keyword rules and submission requirements for stock contributors
/* 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 · 12 min read

Titles, keywords, and categories form one system. This hub shows how adobe stock keywords work and where each fix lives.

TL;DR: Adobe Stock finds files through plain titles plus ordered keywords plus one best category. Before: vague titles, pasted keywords, guesswork categories. After: title names visible facts in under 70 chars, first 10 keywords carry specific terms, category matches use case. Use the index below to fix one area at a time.

Introduction

Buyers never see your shoot notes. They see a title, a set of keywords, and a category in search. Adobe Stock ranks files by fit between those words and the query plus past buyer behavior. This hub keeps the whole method in one place so you fix titles, keyword count and order, categories, file hygiene, and old files without hopping across posts.

Truth Box

SignalInsight
Title leadsPlain titles that name visible facts win clicks. Clever titles lose them.
Order countsAdobe weights early keywords. Put the 10 most specific first on every file.
Category supportsOne closest category aids filtering. Keywords do the heavy lifting.
Hygiene protectsClean file names, no marks, valid releases keep files sellable after words work.
Upkeep compoundsRekeywording unsold files on a cycle lifts the whole portfolio rate.

What Elements Does Microstock Metadata Include?

Metadata is title plus keywords plus category plus supporting facts like releases. Title tells what shows. Keywords cover subject, action, setting, style, and use. Category places the file in the right shelf. Releases and marks decide if the file can sell at all. Fix in that order when a file stalls.

How search reads your words

Search matches query terms to your title first, then to early keywords, then to later ones. Buyer clicks and licenses then confirm fit. Weak titles with broad praise words match nothing exact. Pasted keyword sets dilute order and push your best terms down. See Adobe: titles, keywords, and categories and quality and technical issues.

Title plus order plus shelf

Write the title for humans. Order keywords for the system. Pick the category for filters. That split keeps each field doing its own job.

FieldJobPass rule
TitleWin the clickUnder 70 chars. Names visible facts only
Keywords 1 to 10Win the rankMost specific true terms first
Keywords 11 to 35Cover usesTrue variants, settings, buyer uses
CategoryFilter rightSingle closest use case

Core definitions

Use the same terms across your workflow so checks stay fast. These six cover most faults.

TermWhat it meansExample
TitlePlain sentence that names what shows in the frameBusiness team reviewing charts in modern office
KeywordSingle search term tied to a visible fact or useteam meeting, office charts, business review
Keyword orderRank of terms where early terms weigh moreLead with team meeting, not happy or nice
CategoryOne shelf that matches buyer intentBusiness for office work scenes
ReleaseSigned form for clear faces and private propertyModel release per person with date
RekeywordingUpdating title and order on live unsold filesSwap loose terms for exact buyer terms

The end to end system

Run files through five gates before upload, then review live files on a cycle. Each gate links to a focused guide in the index below.

Gate 1: titleGate 2: keywordsGate 3: categoryGate 4: hygieneGate 5: upkeep
Open the gate checklist
GateCheckFix guide
1Title under 70 chars, names factstitle vs description and copy titles posts
220 to 35 true terms, top 10 specifickeyword count and composition posts
3Single closest categorycategory guide
4Clean marks, releases, file nameshygiene, risk flags, rejection posts
5Rekeyword unsold on schedulerekeywording and seasonal posts

Full guide index

Start with your weakest gate. Each link below covers one fix in depth.

FixGuideUse when
Counthow many keywords adobe stockYou add too few or paste too many
Title fieldstitle vs description adobe stockTitle and description repeat or blur
Compositioncomposition keywords adobe stockYou miss terms tied to layout and use
Reusecopy titles across marketplacesYou sell the same file on more than one site
Categoryadobe stock category guideYou guess the shelf each time
Hygienestock photo filename hygieneFile names and versions get messy
Refusalsadobe stock rejection reasonsReviews send files back
Riskadobe stock risk flagsYou need a preflight for marks and releases
Upkeeprekeywording unsold assetsOld files sit with zero views
Seasonseasonal keywords stockHoliday and event demand peaks pass you by
Cross siteshutterstock keywords vs adobe stockYou adapt terms between buyer pools
Freepikfreepik tag rulesYou place files on Freepik too
Releasesistock getty metadata releasesYou manage releases across agencies
Speedai metadata generator stock photosManual drafting slows uploads
Pay mathhow many stock sales replace day jobYou plan income from volume
Workflowsidepanel vs csv keywordingYou pick between in page and sheet edits

Mistakes that bury good photos

Pasting one set across a shoot flattens order and invites similar flags. Naming brands in titles adds legal risk without buyer value. Stuffing seasons year round dates files fast. Skipping releases blocks sales after words worked. Adding 40 loose terms pushes exact terms down where search weighs them less.

Where to start based on your issue

Low views point to keywords and order. Low clicks point to titles. Wrong buyers point to categories. Refusals point to hygiene and risk flags. Stale files point to rekeywording and seasonal updates. Pick one row in the index, fix ten files, compare views for two weeks, then move to the next row.

Common Misconceptions

More keywords always rank higher. No. True ordered terms rank. Loose extras dilute them.
Title and description do the same job. No. Title wins clicks. Description adds context where the marketplace shows it.
One single set fits all sites. No. Each buyer pool searches a bit differently. Adapt lead terms per site.

FAQ

What are adobe stock keywords?

Search terms attached to each file that help buyers find it. Adobe reads order, so the first 10 terms carry the most weight.

How many keywords should I add on Adobe Stock?

Add 5 at minimum. Most strong files use 20 to 35 true terms. Put the most specific visible terms first.

How long should an Adobe Stock title be?

Keep titles under 200 characters but aim under 70 for clarity. Name only what shows using plain nouns.

Do categories affect search?

Categories help placement and filtering but keywords drive most discovery. Pick the closest single category per file.

How often should I rekeyword old files?

Review unsold files every 6 to 12 months. Fix order, drop loose terms, align titles with current buyer language.

Conclusion

Plain title, ordered true keywords, one best category, clean legal facts, steady upkeep. Work the gates in order and use the index for depth on each one.

Quick recap and next step.

Title for clicks, first 10 keywords for rank, category for filters, hygiene for clearance. Start with the definitions table then open your weakest row in the full index. Next read: contributor metadata pillar and how many sales replace day job pay. If drafting per file terms slows you down, StockPilot can draft Adobe ready titles and keywords in the sidepanel.

Back to the indexNo 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.