Slugified File Name Batch Standardizer
Paste any list of file names or titles. Instantly convert them to URL-safe, SEO-friendly slugs with full Unicode diacritic support and live output.
Related: URL Slug Generator - optimize blog post titles for SEOThe 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
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.