This guide helps DAM managers, metadata specialists and integrators decide how much meaning a file name should carry once assets live in a metadata-driven DAM, and how to write a naming rule that survives operating systems, URLs, integrations and migrations. It covers characters, length, dates, sequence and version numbers, what to keep out of the name, and how to check that the rule is applied.
Key takeaways
- In a DAM, the file name is not the asset's identity. The system ID is. Treat the name as a handle that is portable, sortable and readable, not as the main store of metadata.
- Anything you put into a file name must also exist in a metadata field. Names get changed by people, tools and migrations; fields can be governed.
- Use a restricted character set: lowercase ASCII letters, digits, hyphen and underscore, one period before the extension, no spaces. This is the set that works across Windows, macOS, Linux, URLs and scripts.
- Write dates as ISO 8601 (
YYYYMMDDorYYYY-MM-DD) and zero-pad sequence and version numbers so that names sort correctly as plain text. - Keep names short. Archive and library guidance suggests about 25–35 characters, and the full path counts against operating-system limits.
- Decide what happens to the original file name at ingest. Keep it in a field even when the DAM renames the file.
- Delivery and SEO names for public renditions are a separate problem from storage names. Generate them from metadata; do not ask uploaders to type them.
- Write the convention down, validate it automatically at upload, and audit it, as you would any other part of the metadata schema.
Why it matters
Most DAM platforms search on metadata, so it is tempting to think names no longer matter. They still matter, in four places.
Outside the DAM. Files are downloaded, emailed, dropped into shared drives, attached to tickets and imported into design tools, CMSs and PIMs. Out there, the name is often the only context left. The Smithsonian's data-management guidance warns that files get moved: if they lose the folder they came from, any description held only in the folder name goes with it R4. NARA's digitization guidelines describe the same risk for files named only by sequence inside a folder. Separated from their parent directory, 001.tif from one book cannot be told apart from 001.tif from another R1.
At the system boundary. Operating systems disagree about which names are legal. Windows reserves < > : " / \ | ? *, control characters, and device names such as CON, NUL or COM1, even with an extension. Names that end with a space or a period are not supported by the Windows shell. Microsoft also tells developers not to assume case sensitivity, because some file systems treat OSCAR and oscar as different files R8. In URLs, a space or a reserved character such as #, ? or & has to be percent-encoded, so a space turns into %20 R9. The State Records Office of Western Australia advises against spaces for that reason, since they make SharePoint paths harder to read R7.
During ingest and migration. Many DAM workflows still key on the file name: duplicate checks, CSV metadata imports that match rows to assets by name, and connectors that read metadata from name segments. On the wiki, Canto can check duplicates by file name and match CSV metadata imports on file name, and Acquia DAM lists a filename-to-metadata mapping connector. A messy or non-unique naming scheme turns these helpers into a source of errors.
In public delivery. Google's image-search guidance says a short, descriptive file name (its example is my-new-black-kitten.jpg rather than IMG00023.JPG) gives "very light clues" about an image's subject. It also asks that file names be translated when images are localized R14. For assets published from a DAM or its CDN, the public name is part of the web page.
Core concepts
| Term | Meaning in this guide |
|---|---|
| File name | The string the file system or object store shows: a base name plus an extension. It can change at every copy, download or export. |
| Identifier | "An unambiguous reference to the resource within a given context," in Dublin Core's words. DCMI recommends identifiers that follow an identification system and, for persistent identifiers, HTTP URIs R13. In a DAM this is the asset ID. |
| Display name / title | A human-readable label held as metadata. The IPTC Photo Metadata Standard defines Title as a short, human-readable name for the image and notes that many people use it to store the file name R12. See IPTC Photo Metadata. |
| Descriptive vs non-descriptive name | A descriptive name carries meaning, such as a project code, subject or date. A non-descriptive name is a system-generated string or sequence that points to metadata held elsewhere. NARA suggests descriptive names for smaller projects and machine-generated names for large ones, where search relies on the database R1 R2. |
| Qualifier | A suffix that marks a role or state, such as a page number, version, or derivative type like thumbnail or print. NARA uses qualifiers so that every version and derivative stays under the same base identifier R1. |
| Embedded metadata | Fields stored inside the file, usually XMP or IPTC. These travel with the file. A file name travels with it too, but nothing governs it. |
The Library of Congress made the underlying point in its 1995 naming recommendations, which put "unique identification rather than meaningful or expressive names" first and kept location separate from the name Unverified dated document, cited for the principle only R3. The specifics, such as 8-character components, reflect systems of that time and are obsolete.
Recommended practices
1. Decide what the name is for before deciding what goes in it
NARA advises setting the naming scheme before capture starts. Its first question is whether the name has to be read by people, by machines, or by both R1. In a DAM, the usual answer is:
- Machines identify the asset by its system ID, not its name.
- People need a name that still makes sense outside the DAM: after a download, in a shared folder, in an email.
- Integrations may need a stable, predictable name pattern, for example a product SKU or a campaign code that a PIM or CMS can match.
Write these purposes down. They decide which segments the name needs and which belong only in metadata. If no integration depends on a segment and people do not need it after download, leave it out.
2. Keep identity in the DAM ID, and meaning in metadata fields
NARA recommends that any metadata embedded in a file name, such as scan date or page number, also be recorded somewhere else, "a safety net" in case the files have to be renamed when they move between systems. It also says sequence and structure for multi-part objects belong in structural metadata, not only in the name R1. When it reviews metadata quality, NARA checks that what the name says matches what the database or file header says R1.
How to apply it:
- Map every name segment to a field in your metadata schema: project code to a project field, date to a date field, SKU to a product reference.
- Fill those fields from the name at ingest, with a parsing rule or connector, and then treat the field as the source of truth.
- Never let a business process depend only on what the name says. A name like
final_approvedproves nothing about approval status.
3. Restrict the character set
The archive, library and records guidance reviewed for this guide agrees:
| Rule | Why | Sources |
|---|---|---|
Letters a–z, digits 0–9, hyphen -, underscore _ only | Every one of these is a URI "unreserved" character and none is reserved on Windows | R9 R8 R1 R2 |
| No spaces | Spaces become %20 in URLs and break unquoted scripts | R7 R9 R4 R5 |
| One period only, before the extension | Extra periods confuse extension parsing; the Windows shell does not support a trailing period | R8 R4 |
| Lowercase, or one documented casing rule | Case-insensitive systems merge names that differ only by case; NARA recommends lowercase names and extensions | R1 R8 |
No symbols such as ~ ! @ # $ % ^ & * ( ) [ ] { } ; ' " , < > ? | / \ : | They are reserved by an OS, the URI syntax or a shell | R8 R9 R5 |
| Extension that matches the real format | Tools pick a handler from the extension; the Smithsonian guidance says "no changing extensions!" | R4 R14 |
Accents and non-Latin scripts. The Smithsonian advises ASCII alphanumerics where possible R4. One reason is Unicode normalization. The same visible character can be stored as one precomposed code point or as a base letter plus a combining mark (for example Ç versus C + combining cedilla). The two forms are canonically equivalent but are different byte strings R11. A file named on one system can therefore fail to match the "same" name on another, which breaks duplicate checks, CSV matching and links. If your organisation needs names in local scripts (Google, for example, recommends translated file names for localized images R14), pick one normalization form, NFC being the common choice, and normalize names at ingest. For storage names, keep ASCII and put the language-specific label in a title field.
4. Keep names short, and count the whole path
The NARA blog suggests 25–35 characters R2. The Smithsonian suggests 25 where possible R4. Stanford advises against long names because some software handles them badly R5. Systems have hard limits as well. Windows editions before Windows 10 version 1607 limit the full path to 260 characters (MAX_PATH), and later versions need a registry or policy change to lift it R8. On the wiki, MediaValet lists 255 characters as its limit for a file name or title. The file name is only one part of the path: a download unzipped into a deep project folder can go over the limit even when every name looks reasonable.
5. Write dates in ISO 8601 and put the most significant part first
Use YYYYMMDD or YYYY-MM-DD R2 R7 R4 R5. Ordering from year to day makes text sorting match chronological order. RFC 3339, the Internet profile of ISO 8601, notes this property for timestamps written from least to most precise R10. Put the date first only if files need to sort chronologically R4. Otherwise put the identifier or project code first so that related files group together. State which date the segment means, such as capture, creation or publication, and map it to the matching field.
6. Zero-pad sequence and version numbers
Pad numbers to the largest count you expect: 001…999, or 0001 if a shoot can produce more than 999 frames R1 R2 R4. The State Records Office of Western Australia recommends two-digit version numbers (V04, not V4) so that versions stay in numeric order R7.
For versions:
- Prefer the DAM's own versioning, which keeps one asset ID and stacks versions under it, over separate files with
v01,v02suffixes. NARA's reason for qualifiers, keeping every version under one identifier, is exactly what DAM versioning does R1. - Where suffixes are unavoidable, such as for files that circulate outside the DAM, use
vplus a zero-padded number and do not start the name with it R4. - Avoid status words like
final,final2orfinal_revised. Stanford's versioning guide names these as confusing patterns R6. Status belongs in a workflow or status field. - Make sure one number cannot mean two things. NARA points out that if
001already marks pages, versions need a different marker R1.
7. Use a documented, segment-based pattern
A pattern made of fixed segments with fixed separators can be parsed, validated and taught. An illustrative pattern, not a standard:
<id-or-code>_<short-descriptor>_<YYYYMMDD>_<seq>[_v<NN>][_<role>].<ext>
prj0421_spring-hero_20260315_007_v02.jpg
prj0421_spring-hero_20260315_007_v02_web.jpg (derivative, role qualifier)
Rules that make such a pattern work:
- One separator per job. For example, use underscore between segments and hyphen inside a segment. Stanford and the Smithsonian accept underscores, hyphens or camelCase, but ask for one choice applied consistently R4 R5.
- Controlled codes, not free text, for segments such as project, brand, market or asset type. Keep the list of allowed codes with your controlled vocabularies so that names and fields use the same terms. The WA guidance asks organisations to keep an approved list of abbreviations R7.
- Derivatives inherit the master name plus a role qualifier. NARA uses short role codes such as
prfor a print version andtfor a thumbnail, and notes that derivative names only need to lead back to the master R1. - No repetition of what the folder or another segment already says R4.
- Not too clever. NARA warns against schemes so complex or long that people get them wrong when typing R1 R2.
8. Handle the original name explicitly at ingest
Decide, and document, what the DAM does with an incoming name:
| Option | When it fits | Watch out for |
|---|---|---|
| Keep it as is | Small libraries; names already follow the rule | Inconsistent legacy names spread into downloads and URLs |
| Validate, and reject or fix | A clear rule enforced at the door | Uploader frustration; batch uploads failing halfway |
| Rename to a pattern, keeping the original in a field | Large or multi-source libraries | Integrations that expected the old name |
| Leave the name alone and rely on a display name or title | Systems that separate storage name from label | Downloads may still carry the raw name |
Wiki examples of these options, with no ranking implied: Brandworkz rejects names containing characters such as /:*?<>|. MediaValet validates file names during web upload and lets users rename them in the same step. Cloudinary upload presets can name an asset with a random public ID or from the file name, and dynamic folders keep a separate display name. IntelligenceBank offers auto-sequence naming during bulk upload. Extensis Portfolio can generate keywords from the path and file name at ingest. Adobe Experience Manager Assets lists AI-assisted bulk rename. Whatever you choose, keep the original file name in a read-only field. It is often the only link back to a photographer's delivery, an agency's archive or a legacy system.
9. Generate public delivery names from metadata
For assets served to websites, the public name should be short, descriptive and translated for each market R14. Hyphens between words, as in Google's own example, keep the name readable in a URL. Do not make storage names do this job. Several DAM delivery layers build public names or links separately: Wedia lists SEO file names in its delivery module, and Brandfolder lists custom CDN links by filename. Where this is available, generate the public name from title and keyword fields so that it changes when the metadata changes. Check that a rename does not break URLs that are already published.
10. Document, validate and audit
- Publish the convention as a one-page rule with examples and the list of allowed codes. Stanford and the Smithsonian both recommend documenting it alongside the files R4 R5.
- Enforce it in software where you can: upload validation, a hot folder script, or an API pre-processor. The Smithsonian guidance points to scripting and bulk-rename tools for fixing existing sets R4.
- Audit regularly. Search for names containing spaces, non-ASCII characters, several periods or non-standard extensions, and for duplicate base names.
Common pitfalls
- Using the name as the database. Long names with ten segments, status words and free-text descriptions turn into conflicting metadata as soon as someone edits a field and not the name. Keep names thin and fields rich R1.
- Relying on name-based duplicate checks. Two different photos can share
IMG_0001.JPG, and one photo can arrive under two names. Combine name checks with content-based duplicate detection or checksums. Even hashes have limits: Canto notes that MD5 values tend to change after metadata edits. - Names that mean something only inside their folder.
001.tifin a folder calledbook-0001is fine until the file leaves the folder R1 R4. Put the identifying segment in the name itself, not only in the folder. - Case-only differences.
Logo.pngandlogo.pngmay be two files on Linux or in an object store and one file on Windows or macOS defaults R8. - Invisible character differences. Accented names copied between systems can differ in normalization form and stop matching R11.
- Renaming at migration without a crosswalk. If the new DAM renames files, embedded links, CSV imports and downstream systems that keyed on the old name stop working. Export an old-name to new-ID map and keep the original name in a field. For metadata mapping in general, see metadata schema & governance.
- Separate rules per team. Agencies, photographers and internal teams each invent a scheme. Put the convention in supplier briefs and check deliveries at ingest.
- "Final" in the name. A name cannot record approval. Use workflow status R6.
Checklist
Copy and adapt:
How DAM platforms support this
The wiki's solution pages document naming-related features in their Ingestion & storage, Metadata & taxonomy and Distribution & delivery sections. The pointers below are examples, not a ranking. Check each product's current documentation through its sources page.
| Need | Where to look on the wiki |
|---|---|
| Name validation or rejection at upload | Brandworkz features, MediaValet features |
| Automatic naming or renaming at upload | Cloudinary features, IntelligenceBank features, Adobe Experience Manager Assets features |
| Metadata derived from file names or paths | Acquia DAM features, Extensis Portfolio features |
| Name-keyed bulk metadata import and duplicate checks | Canto features |
| Name-based versioning and its constraints | MediaValet features (its desktop uploader cannot be used when "Filename Versioning" is enabled) |
| Storage name kept separate from display name or delivery URL | Cloudinary features |
| SEO or custom file names for delivery | Wedia features, Brandfolder features |
Use the glossary for shared terms, and the comparison table for platform-level facts.
Further reading
- The "Storage" chapter covers file naming, directory structure, versioning and derivative names, and the metadata QC section covers checking names against records. Old, but the reasoning still holds.
- Best Practices for File NamingFree accessA one-page summary of NARA's rules on characters, length, dates and zero-padding.
- Concrete good and bad examples, padding rules and folder-versus-name trade-offs.
- Data best practices: Name filesFree access
- Document Naming ConventionsFree accessA records-management view with version padding, approved abbreviations and SharePoint URL effects.
- Naming Files, Paths, and NamespacesFree accessThe authoritative list of reserved characters, device names and path limits on Windows.
- RFC 3986 — URI Generic Syntax, section 2Free accessWhy the unreserved character set is the safe choice for anything that becomes a URL.
- UAX #15 — Unicode Normalization FormsFree accessBackground for teams that allow accented or non-Latin file names.
- Image SEO best practicesFree accessWhat public image file names do, and do not do, for search.
- Take control of your digital assets with file-naming conventionsFree accessVendor publicationA DAM practitioner's view of coded segments and delimiters; supporting reading only.
Sources
| Id | Title | URL | Type | Accessed | Notes |
|---|---|---|---|---|---|
| R1 | NARA — Technical Guidelines for Digitizing Archival Materials for Electronic Access: Creation of Production Master Files – Raster Images | archives.gov | Official | 2026-10-01 | June 2004, S. Puglia, J. Reed, E. Rhodes. Ch. VI Storage (pp. 60–61: file naming, directory structure, versioning, derivatives); metadata QC (pp. 64–65). National archive guidance; dated but still cited for its principles |
| R2 | NARA Records Express — Best Practices for File Naming | records-express.blogs.archives.gov | Official | 2026-10-01 | 2017-08-22 (updated 2017-08-31). 25–35 characters, ISO dates, leading zeros, descriptive vs non-descriptive |
| R3 | Library of Congress — Naming Conventions for Digital Resources | loc.gov | Official | 2026-10-01 | 1995; Unverified historical. Cited only for the principle of unique, location-independent identification |
| R4 | Smithsonian Data Management Best Practices — Naming and Organizing Files | archives.gov | Official | 2026-10-01 | Smithsonian Libraries, 2018-02-27, hosted by NARA. ASCII, 25 characters, YYYYMMDD, padding, matching extensions, examples |
| R5 | Stanford Libraries — Data best practices: Name files | guides.library.stanford.edu | Third-party | 2026-10-01 | Characters to avoid, no spaces, dates, leading zeros, length |
| R6 | Stanford Libraries — Data best practices: Version files | guides.library.stanford.edu | Third-party | 2026-10-01 | Version numbers; avoid "final2" and similar |
| R7 | State Records Office of Western Australia — Document Naming Conventions | wa.gov.au | Official | 2026-10-01 | First published 2019-09-01, updated 2025-09-22. ISO 8601 dates, two-digit versions, spaces become %20 in SharePoint URLs, approved abbreviations |
| R8 | Microsoft Learn — Naming Files, Paths, and Namespaces | learn.microsoft.com | Official | 2026-10-01 | ms.date 2024-08-28. Reserved characters and names, trailing space/period, case sensitivity, MAX_PATH 260 |
| R9 | RFC 3986 — Uniform Resource Identifier (URI): Generic Syntax | rfc-editor.org | Official | 2026-10-01 | IETF STD 66, 2005. §2.1 percent-encoding, §2.2 reserved, §2.3 unreserved characters |
| R10 | RFC 3339 — Date and Time on the Internet: Timestamps | rfc-editor.org | Official | 2026-10-01 | IETF, July 2002. ISO 8601 profile; §5.1 ordering property. The ISO 8601 text itself is paid, and iso.org returned 403 on the access date |
| R11 | Unicode Standard Annex #15 — Unicode Normalization Forms | unicode.org | Official | 2026-10-01 | Revision 58 (2026-08-12). Canonical equivalence, NFC/NFD |
| R12 | IPTC Photo Metadata Standard 2025.1 | iptc.org | Official | 2026-10-01 | Rev 1, 2025-11-26. Title user note: commonly used to store the file name |
| R13 | DCMI Metadata Terms — identifier | dublincore.org | Official | 2026-10-01 | Definition and recommended practice |
| R14 | Google Search Central — Image SEO best practices | developers.google.com | Official | 2026-10-01 | Last updated 2026-03-02. Descriptive, translated file names; "very light clues" |
| R15 | Bynder — Take control of your digital assets with file-naming conventions | bynder.com | Vendor | 2026-10-01 | Vendor publication, 2017-10-20 (modified 2025-12-10); Further reading only, not a basis for any recommendation |