Configuration Settings
Casing
Separator
File Extensions
Preserve File Extensions
Raw Input - Paste File Names (one per line) 0 lines
Standardized File Name Output 0 lines
0
Total Lines Processed
0
Invalid Characters Removed
0
Diacritics Converted
Copied!
Key Terms Explained
Slug
The URL-safe portion of a web address identifying a page or file. Lowercase letters, numbers, and hyphens only. Example: "my-image.png".
URL-Safe
A string containing only characters that can appear in a URL without percent-encoding. Letters (a-z), digits (0-9), hyphens, underscores, periods, and tildes are safe by definition.
Unicode Normalization
A process that converts Unicode text into a standard form. This tool uses NFD (Normalization Form D), which splits accented letters into a base letter and a separate combining accent so the accent can be removed cleanly.
Regex (Regular Expression)
A pattern-matching language used to search and replace text. This tool uses regex to identify and strip all non-alphanumeric characters after Unicode normalization, leaving only clean, safe characters.
File Extension
The suffix at the end of a file name that identifies its format, for example ".pdf", ".jpg", or ".docx". Preserving extensions ensures renamed files remain openable by their native applications.
Diacritic
An accent mark added to a letter to change its pronunciation, such as the acute accent in "e", the tilde in "n", or the umlaut in "o". This tool converts them to their plain ASCII base letter automatically.
White Space
Spaces, tabs, and other invisible characters between words. White space must be replaced in file names and URLs because it either breaks paths or requires percent-encoding (%20).
SEO-Friendly URL
A URL structured to include relevant keywords, use lowercase letters, separate words with hyphens, and avoid special characters. Search engines use URL structure as a ranking signal for page relevance.

The Complete Guide to Safe, SEO-Friendly File Naming

Whether you are uploading assets to a web server, organizing a local design library, or committing files to a version-controlled repository, naming your files correctly from the start saves you from broken links, failed scripts, and wasted debugging time. This guide explains exactly why file name standards exist and how to apply them at scale.

How to Use This Batch Standardizer

Paste any list of raw file names or blog post titles into the left panel, one entry per line. The tool processes every line in real time and outputs a cleaned slug directly opposite in the right panel, so you can verify the 1-to-1 conversion at a glance. The counter at the bottom tracks how many lines were processed and how many invalid characters or diacritics were stripped.

  • Choose Lowercase for web servers and SEO (the default and strongly recommended).
  • Choose Hyphen as your separator for all public-facing files and URLs. Switch to Underscore for Python variables or database identifiers.
  • Enable "Preserve File Extensions" to keep ".pdf", ".jpg", and ".docx" intact while slugifying only the base name.
  • Use "Copy All Slugs" to paste the results directly into a rename script, CMS, or spreadsheet. Use "Download .txt" to save the output as a reference file.

Why File Names Matter More Than You Think

A file named "My Case Study Report (FINAL v2).PDF" creates three separate problems before it is ever opened by a user. First, the spaces require percent-encoding in any URL, producing the unreadable string "My%20Case%20Study%20Report%20(FINAL%20v2).PDF". Second, the parentheses are not valid URL characters and will break on some servers without encoding. Third, the uppercase ".PDF" extension will cause a 404 error on Linux servers if the link references ".pdf" in lowercase. Renaming it "my-case-study-report-final-v2.pdf" eliminates all three problems at once.

Unicode and Diacritic Handling: The Technical Picture

Accented characters such as "e" with an acute accent, "n" with a tilde, or "o" with an umlaut are stored in Unicode as composed glyphs. Running String.prototype.normalize('NFD') decomposes each glyph into its base letter plus a separate Unicode combining mark. A regex targeting the Unicode category "Mn" (Mark, Nonspacing) then removes only the combining marks, leaving the base letter untouched. This means "Cafe Brasserie" becomes "cafe-brasserie" rather than "caf-brasserie", and "Munchen" with an umlaut becomes "munchen" rather than "mnchen". No data ever leaves your browser during this process.

Hyphens vs. Underscores: Choosing the Right Separator

Google's own documentation recommends hyphens as word separators in URLs because Google's indexer treats a hyphen as a space between words. An underscore, by contrast, has historically been treated as a joining character, so "file_name" might be indexed as the single keyword "filename". For any file that will be served over the web, the hyphen setting is the correct choice. The underscore option exists for developers who follow Python naming conventions (PEP 8), database column naming standards, or internal build systems that forbid hyphens.

Bulk Renaming in Practice

Once you have your standardized list of slugs, you can apply them in batch using a shell loop. For example, on macOS or Linux, you can pair the input and output lists line by line and call mv on each pair. On Windows, PowerShell's Rename-Item cmdlet handles the same task. Most CMS platforms such as WordPress and Webflow also accept bulk file name imports through their media library or asset manager, making this tool a natural first step in any large-scale asset migration workflow.

Frequently Asked Questions

A URL slug is the human-readable part of a web address that identifies a specific page, for example the "best-running-shoes" portion of "https://example.com/best-running-shoes". Slugs matter for SEO because Google reads them to understand page content. A clean, keyword-rich slug signals relevance, earns higher click-through rates in search results, and creates links that are easy to share and remember. Short, descriptive, lowercase slugs separated by hyphens are the universally accepted best practice.
Google officially treats hyphens as word separators but historically treated underscores as joining characters, meaning "file_name" was read as one word "filename" while "file-name" was read as two words. Using hyphens means search engines correctly index both "file" and "name" as individual keywords. For developer contexts such as Python variable naming, underscores are standard, so this tool lets you choose whichever separator fits your workflow.
This tool uses Unicode Normalization Form D (NFD), which decomposes accented letters into their base character plus a separate combining accent mark. A regular expression then strips only the accent marks while keeping the base letter. For example, the French "e" with an acute accent becomes a plain "e", the Spanish "n" with a tilde becomes "n", and the German "o" with an umlaut becomes "o". Characters with no ASCII equivalent, such as Chinese or Arabic script, are removed entirely. This conversion happens entirely in your browser with no data ever sent to a server.
Spaces are not valid in URLs without encoding. A browser or command-line tool must replace each space with "%20", turning "My Resume.pdf" into "My%20Resume.pdf". While browsers often handle this automatically, many server environments, shell scripts, and APIs do not, causing broken links, failed uploads, and script errors. Replacing spaces with hyphens or underscores at the source eliminates these problems completely and keeps file paths clean across every system.
On Linux and Unix servers, file names are case-sensitive, meaning "Image.PNG", "image.png", and "IMAGE.PNG" are three different files. A link to "image.png" will return a 404 error if the file was saved as "Image.PNG". Lowercase-only file names eliminate this class of bug entirely. They also improve SEO consistency, since Google treats URLs as case-sensitive. The lowercase setting is the recommended default for any file destined for a web server or version-controlled repository.

This tool processes all text locally in your browser. No file names, titles, or any other input data are transmitted to external servers. The slugified output is for renaming reference only - always verify results before executing bulk rename operations on production files.