{"id":5102,"date":"2025-02-22T13:14:03","date_gmt":"2025-02-22T13:14:03","guid":{"rendered":"https:\/\/s-o-s.net\/rename-media-files-improve-your-wordpress-seo\/"},"modified":"2025-02-22T13:14:03","modified_gmt":"2025-02-22T13:14:03","slug":"rename-media-files-improve-your-wordpress-seo","status":"publish","type":"post","link":"https:\/\/s-o-s.net\/en_gb\/rename-media-files-improve-your-wordpress-seo\/","title":{"rendered":"Rename Media Files: Improve Your WordPress SEO"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<article id=\"post-24361\" class=\"alignwide post-24361 plugin type-plugin status-publish hentry plugin_tags-characters plugin_tags-media plugin_tags-rename plugin_tags-renaming plugin_tags-seo plugin_category-media plugin_contributors-algoritmika plugin_contributors-anbinder plugin_contributors-karzin plugin_contributors-kousikmukherjeeli plugin_contributors-omardabbas plugin_contributors-wpcodefactory plugin_business_model-commercial plugin_committers-algoritmika plugin_committers-karzin plugin_committers-wpcodefactory plugin_support_reps-tahaamin\">\n<div class=\"plugin-banner\" id=\"plugin-banner-file-renaming-on-upload\"><\/div>\n<header class=\"plugin-header\">\n<div class=\"entry-heading-container\">\n<div>\n<div class=\"entry-thumbnail\">\n\t\t\t\t\t<img decoding=\"async\" class=\"plugin-icon\" src=\"https:\/\/ps.w.org\/file-renaming-on-upload\/assets\/icon.svg?rev=2971495\" alt=\"\">\t\t\t\t<\/div>\n<div>\n<h1 class=\"plugin-title\">Rename Media Files: Improve Your WordPress SEO<\/h1>\n<p>\t\t\t\t\t<span class=\"byline\">By <span class=\"author vcard\"><a target=\"_blank\" class=\"url fn n\" href=\"https:\/\/profiles.wordpress.org\/wpcodefactory\/\" rel=\"noopener\">WPFactory<\/a><\/span><\/span>\n\t\t\t\t<\/div>\n<\/p><\/div>\n<div class=\"plugin-actions\">\n<div class=\"wp-block-button is-small plugin-download download-button\"><a target=\"_blank\" class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/downloads.wordpress.org\/plugin\/file-renaming-on-upload.2.6.4.zip\" rel=\"noopener\">Download<\/a><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/header>\n<p><!-- .entry-header --><\/p>\n<p>\t<span id=\"description\"><\/span><br \/>\n\t<span id=\"reviews\"><\/span><br \/>\n\t<span id=\"installation\"><\/span><br \/>\n\t<span id=\"developers\"><\/span><br \/>\n\t<span id=\"advanced\" class=\"\"><\/span><br \/>\n\t<span id=\"section-links\"><\/p>\n<ul class=\"tabs clear\">\n<li id=\"tablink-description\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/file-renaming-on-upload\/#description\" rel=\"noopener\">Details<\/a><\/li>\n<li id=\"tablink-reviews\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/file-renaming-on-upload\/#reviews\" rel=\"noopener\">Reviews<\/a><\/li>\n<li id=\"tablink-installation\">\n\t\t\t\t<a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/file-renaming-on-upload\/#installation\" rel=\"noopener\">Installation<\/a>\n\t\t\t<\/li>\n<li id=\"tablink-developers\"><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/file-renaming-on-upload\/#developers\" rel=\"noopener\">Development<\/a><\/li>\n<\/ul>\n<div id=\"link-support\">\n\t\t\t<a target=\"_blank\" href=\"https:\/\/wordpress.org\/support\/plugin\/file-renaming-on-upload\/\" rel=\"noopener\">Support<\/a>\n\t\t<\/div>\n<p>\t<\/span><br \/>\n\t<script type=\"text\/javascript\">if ( '#changelog' == window.location.hash ) { window.setTimeout( function() { window.location.hash=\"#developers\"; }, 10 ); }<\/script><\/p>\n<div class=\"entry-content\">\n<div id=\"tab-description\" class=\"plugin-description section\">\n<h2 id=\"description-header\">Description<\/h2>\n<blockquote>\n<p>\u201cOne of the most important plugins on our site: Perfect plugin for our free stock photo website picjumbo. We\u2019re using it for years to automatically rename our P001120.jpg photos to SEO-focused names like business-woman-using-a-computer-free-photo.jpg. This plugin really works! Thanks!\u201d \u2013 \u2b50\u2b50\u2b50\u2b50\u2b50  <a target=\"_blank\" href=\"https:\/\/wordpress.org\/support\/topic\/one-of-the-most-important-plugins-on-our-site\/\" rel=\"ugc noopener\">viktorhanacek<\/a><\/p>\n<\/blockquote>\n<p><a target=\"_blank\" href=\"https:\/\/wpfactory.com\/item\/file-renaming-on-upload-wordpress-plugin\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" title=\"Main Page\" rel=\"nofollow ugc noopener\">Main Page<\/a> | <a target=\"_blank\" href=\"https:\/\/wpfactory.com\/support\/item\/file-renaming-on-upload-wordpress-plugin\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" title=\"Support Forum\" rel=\"nofollow ugc noopener\">Support Forum<\/a> | <a target=\"_blank\" href=\"https:\/\/wpfactory.com\/docs\/file-renaming-on-upload-wordpress-plugin\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" title=\"Documentation &amp; How to\" rel=\"nofollow ugc noopener\" class=\"broken_link\">Documentation &amp; How to<\/a><\/p>\n<p>The \u201cRename Media Files: Improve Your WordPress SEO\u201d plugin will simplify the process of managing media file names (images, PDFs, etc) and metadata, ensuring a tidy and search engine-friendly media repository.<\/p>\n<p>If you\u2019re an SEO guru and would like to make a better website for search engines by focusing on Image SEO, or someone who enjoys their files to be perfectly organized, this plugin will turn your dreams into reality.<\/p>\n<p>The plugin comes with several features, like the ability to remove accents and special characters from filenames upon upload, rename files based on post titles, Site URL, or current date, and update file permalinks accordingly.<\/p>\n<p>The Pro version goes much further, with features like manual filename and permalink editing, updating old media references in post content, and automatic alt tag generation, the possibilities for optimizing your media library are endless<\/p>\n<h3>\ud83d\ude80 Main Features: FREE Version<\/h3>\n<h3>\ud83d\ude80 Remove Accents &amp; Special Characters from Filenames on Upload<\/h3>\n<p>Ensure clean and SEO-friendly filenames by automatically removing accents and special characters upon upload, this is very useful when you share these files on social media, so you have standard URL without non-friendly characters.<\/p>\n<p><strong>Example 1:<\/strong><br \/>\nA file named \u201ccaf\u00e9.jpg\u201d would be renamed to \u201ccafe.jpg\u201d.<\/p>\n<p><strong>Example 2:<\/strong><br \/>\nA file named \u201cr\u00e9sum\u00e9.pdf\u201d would be renamed to \u201cresume.pdf\u201d.<\/p>\n<h3>\ud83d\ude80 Rename Media on Upload Based on The Site URL<\/h3>\n<p>Automatically rename uploaded files based on your site URL (domain name) to maintain consistency and relevance between your domain name, content, and media.<\/p>\n<p><strong>Example 1:<\/strong><br \/>\nIf your site URL is \u201cexample.com,\u201d and you uploaded an image named camera.jpg, you can automatically rename it to \u201cexample-com-camera.jpg\u201d.<\/p>\n<p><strong>Example 2:<\/strong><br \/>\nYou can append the site URL to other variables, like post name and\/or file name, so for a site URL like \u201cmywebsite.com\u201d uploaded to a post named \u201chow to create a site\u201d, a file might be renamed to \u201cmywebsite-com-how-to-create-a-site.jpg\u201d.<\/p>\n<h3>\ud83d\ude80 Rename Media on Upload Based on Post Title<\/h3>\n<p>Automatically rename uploaded files based on the post title it was uploaded to, this helps in keeping your media &amp; content aligned &amp; consistent.<\/p>\n<p><strong>Example 1:<\/strong><br \/>\nIf you upload an image for a post titled \u201cExploring the Great Outdoors,\u201d the file could be renamed to \u201cexploring-the-great-outdoors.jpg\u201d.<\/p>\n<p><strong>Example 2:<\/strong><br \/>\nWhen images with identical names are uploaded to the same post, media name will be appended by a number, so in example 1 it will become \u201cexploring-the-great-outdoors-1.jpg\u201d, and this can be customized as well.<\/p>\n<h3>\ud83d\ude80 Rename Media on Upload Based on The Current Date<\/h3>\n<p>Instead of the default categorization of media by WordPress (year &amp; month), you can fully control what part of the date you want to include in your media names.<\/p>\n<p><strong>Example 1:<\/strong><br \/>\nAn image named \u201claptop-at-night.webp\u201d uploaded on April 15, 2024, could be renamed to \u201claptop-at-night-2024-04-15.jpg\u201d.<\/p>\n<p><strong>Example 2:<\/strong><br \/>\nYou can go further and utilize other rules as well, so you can include site name, post title, file name, and finish it with a date, so you can have a file named \u201cdog.jpg\u201d, uploaded to a post title \u201cNice Dogs\u201d, on a website named \u201cDogs for Life\u201d and uploaded on May 28, 2024, the result file name could be \u201cdogs-for-life-com-nice-dogs-dog-2024-05-28.jpg\u201d.<\/p>\n<h3>\ud83d\ude80 Update Media Permalink Based on Media Rename<\/h3>\n<p>Media file names might change, but permalinks don\u2019t (probably that\u2019s why they called so?), with this plugin you can maintain consistency between filenames and permalinks by automatically updating file permalinks based on media renaming actions.<\/p>\n<h3>\ud83d\ude80 Convert Filename Characters to Lowercase<\/h3>\n<p>Standardize all media &amp; files characters on your website to lowercase for consistency, to ensure uniformity across your media library &amp; reduce the risk of errors (if redirects weren\u2019t properly handled).<\/p>\n<h3>\ud83d\ude80 Advanced File Filtering Options<\/h3>\n<p>Customize file renaming behavior with advanced filtering options. Choose to ignore files with no extensions, specific file extensions, or filenames containing certain strings.<\/p>\n<blockquote>\n<p>\u201cDoes the trick!: We needed a plugin to change the file name of images being uploaded to our site to a 100% predicable URL based on post slug and custom fields. This super simple plugin does the trick! The developer is super responsive and helpful too. We\u2019re glad to have got the pro version.\u201d \u2013 \u2b50\u2b50\u2b50\u2b50\u2b50 <a target=\"_blank\" href=\"https:\/\/wordpress.org\/support\/topic\/does-the-trick-86\/\" rel=\"ugc noopener\">russs95<\/a><\/p>\n<p>\u201cVery handy: Install the plugin, check some simple settings, forget about it because the job will now be done. Thank you very much! \ud83d\ude42\u201d \u2013 \u2b50\u2b50\u2b50\u2b50\u2b50 <a target=\"_blank\" href=\"https:\/\/wordpress.org\/support\/topic\/very-handy-210\/\" rel=\"ugc noopener\">wpguillaume<\/a><\/p>\n<\/blockquote>\n<h3>\ud83c\udfc6 Do More: PRO Version<\/h3>\n<p>For those who would like to go further and beyond, we have a premium version of <a target=\"_blank\" href=\"https:\/\/wpfactory.com\/item\/file-renaming-on-upload-wordpress-plugin\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" rel=\"nofollow ugc noopener\">Rename Media Files: Improve Your WordPress SEO<\/a> plugin.<\/p>\n<h3>\ud83c\udfc6 Rename Media on Upload Based on ANYTHING<\/h3>\n<p>Other than the above options, the plugin allows you to include any of these values in media file renaming rules:<\/p>\n<ul>\n<li>Datetime<\/li>\n<li>Upload date<\/li>\n<li>Custom string<\/li>\n<li>Post Slug<\/li>\n<li>User ID<\/li>\n<li>User Role<\/li>\n<li>Username<\/li>\n<li>Product SKU<\/li>\n<li>Post ID<\/li>\n<\/ul>\n<h3>\ud83c\udfc6 Edit Media Filenames &amp; Permalinks Manually<\/h3>\n<p>Take full control over your media library by manually editing filenames and permalinks to match your specific requirements.<\/p>\n<h3>\ud83c\udfc6 Update Old\/Previously Uploaded Media<\/h3>\n<p>You liked how the plugin works and want to apply it for all previous files? Easily update all your media library by updating outdated media files with new filenames and permalinks.<\/p>\n<h3>\ud83c\udfc6 Update Media Reference in post content on file renaming<\/h3>\n<p>Ensure a seamless integration between media files and post content with this option, so when a media file is renamed, this feature automatically updates all references to that file within post content and  prevents broken links or missing media elements in your website.<\/p>\n<h3>\ud83c\udfc6 Rename (convert) Media Images Extension from JPEG to JPG<\/h3>\n<p>As \u201cjpg\u201d is the standard file extension for JPEG images, this feature automates converting images with  JPEG extension to the more widely recognized JPG format.<\/p>\n<h3>\ud83c\udfc6 Update Filename on Post Update<\/h3>\n<p>Automatically synchronize media file names with post updates, so that you ensure media files remain aligned with their corresponding content.<\/p>\n<h3>\ud83c\udfc6 Restrict Media File Renaming by User Role<\/h3>\n<p>Control access to media file renaming options &amp; rules based on user roles of your website, so you guarantee that only authorized users have access to modification tools.<\/p>\n<h3>\ud83c\udfc6 Restrict Media File Renaming by Custom Post Type<\/h3>\n<p>For those who want to have more control on media update based on the post type, the plugin allows media file renaming options to specific custom post types, such as: post, page, attachment, revision, nav_menu_item, product, product_variation, shop_order, shop_refund, and more!<\/p>\n<h3>\ud83c\udfc6 Images SEO: ALT Texts &amp; Media Titles Naming Automation<\/h3>\n<p>Take your Image SEO optimization to new levels by automatically generating ALT texts &amp; images titles for images.<\/p>\n<p>When uploading media files, the plugin offers options to auto-fill both ALT text and image title based on predefined settings or the original filename. For example, if you upload an image named \u201csunset.jpg,\u201d the ALT tag and media title can be auto-filled with \u201cSunset Image,\u201d ensuring that both are descriptive and optimized for accessibility and search engine visibility.<\/p>\n<h3>\ud83c\udfc6 Compatibility with 3rd Party Plugins<\/h3>\n<ul>\n<li><a target=\"_blank\" href=\"https:\/\/www.buddyboss.com\/platform\/\" title=\"Buddyboss\" rel=\"nofollow ugc noopener\"><strong>Buddyboss<\/strong><\/a>: Disables profile upload renaming<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/www.buddyboss.com\/platform\/\" title=\"Gravity forms\" rel=\"nofollow ugc noopener\"><strong>Gravity forms<\/strong><\/a>: Handles issues with Gravity Forms entry exports<\/li>\n<li><a target=\"_blank\" href=\"https:\/\/wpforms.com\/\" title=\"WPForms\" rel=\"nofollow ugc noopener\"><strong>WPForms<\/strong><\/a>: Handles issues with WPForms file upload<\/li>\n<\/ul>\n<h3>\u2764\ufe0f User Testimonials: See What Others Are Saying!<\/h3>\n<blockquote>\n<p>\u201cPerfect plugin for our free stock photo website picjumbo. We\u2019re using it for years to automatically rename our P001120.jpg photos to SEO-focused names like business-woman-using-a-computer-free-photo.jpg. This plugin really works! Thanks!\u201d \u2013 \u2b50\u2b50\u2b50\u2b50\u2b50 <a target=\"_blank\" href=\"https:\/\/wpfactory.com\/item\/file-renaming-on-upload-wordpress-plugin\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" rel=\"nofollow ugc noopener\">viktorhanacek<\/a><\/p>\n<p>\u201cThis is really well done. No more telling clients to sanitize file names upfront.<br \/>\n  It also creates the correct two-letter form of the German umlauts \u00e4\u00f6\u00fc\u00df -&gt; ae oe ue ss.<br \/>\n  Perfect!\u201d \u2013 \u2b50\u2b50\u2b50\u2b50\u2b50 <a target=\"_blank\" href=\"https:\/\/wpfactory.com\/item\/file-renaming-on-upload-wordpress-plugin\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" rel=\"nofollow ugc noopener\">DuchschererM<\/a><\/p>\n<p>\u201csuperb plugin, fantastic support.\u201d \u2013 \u2b50\u2b50\u2b50\u2b50\u2b50 <a target=\"_blank\" href=\"https:\/\/wpfactory.com\/item\/file-renaming-on-upload-wordpress-plugin\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" rel=\"nofollow ugc noopener\">amanrajveer<\/a><\/p>\n<p>\u201cMust have plugin!: As WP-Expert i can tell you that this became one of my must have plugins! Wish i discovered this great plugin earlier! Perfect for converting customers weird filenames and improving search engine results.\u201d \u2013 \u2b50\u2b50\u2b50\u2b50\u2b50 <a target=\"_blank\" href=\"https:\/\/wordpress.org\/support\/topic\/must-have-plugin-231\/\" rel=\"ugc noopener\">nicmare<\/a><\/p>\n<\/blockquote>\n<h3>\ud83d\udcaf Why WPFactory?<\/h3>\n<ul>\n<li><strong>Experience You Can Trust:<\/strong> Over a decade in the business<\/li>\n<li><strong>Wide Plugin Selection:<\/strong> Offering 65+ unique and powerful plugins<\/li>\n<li><strong>Highly-Rated Support:<\/strong> Backed by hundreds of 5-star reviews<\/li>\n<li><strong>Expert Team:<\/strong> Dedicated developers and technical support at your service<\/li>\n<\/ul>\n<h3>What\u2019s Next? Discover More Plugins by WPFactory<\/h3>\n<p>WPFactory has a diverse range of plugins tailored to enhance your experience:<\/p>\n<ul>\n<li>\n<p><a target=\"_blank\" href=\"https:\/\/wpfactory.com\/item\/download-plugins-and-themes-from-dashboard-wordpress-plugin\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" title=\"**Download Plugins and Themes from WordPress**\" rel=\"nofollow ugc noopener\"><strong>Download Plugins and Themes from WordPress<\/strong><\/a>: Download installed plugins and themes in ZIP files directly from your WordPress admin dashboard, download any or all plugins &amp; themes without FTP or cPanel access (<strong><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/download-plugins-dashboard\/\" title=\"Free version\" rel=\"ugc noopener\">Free version<\/a><\/strong>)<\/p>\n<\/li>\n<li>\n<p><a target=\"_blank\" href=\"https:\/\/wpfactory.com\/item\/slugs-manager-wordpress-plugin\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" title=\"**Slugs Manager: Delete Old Permalinks from WordPress Database**\" rel=\"nofollow ugc noopener\"><strong>Slugs Manager: Delete Old Permalinks from WordPress Database<\/strong><\/a>: Scan &amp; remove old or outdated slugs (permalinks) in WordPress, keep your database optimized &amp; your URLs SEO-friendly (<strong><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/remove-old-slugspermalinks\/\" title=\"Free version\" rel=\"ugc noopener\">Free version<\/a><\/strong>)<\/p>\n<\/li>\n<li>\n<p><a target=\"_blank\" href=\"https:\/\/wpfactory.com\/item\/back-button-widget-wordpress-plugin\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" title=\"** Back Button Widget**\" rel=\"nofollow ugc noopener\"><strong>Back Button Widget<\/strong><\/a>: A simple &amp; customizable back button, add it to any WordPress page using shortcode or widget for enhanced user navigation experience and site accessibility. (<strong><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/back-button-widget\/\" title=\"Free version\" rel=\"ugc noopener\">Free version<\/a><\/strong>)<\/p>\n<\/li>\n<li>\n<p><a target=\"_blank\" href=\"https:\/\/wpfactory.com\/item\/order-status-rules-for-woocommerce\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" title=\"**Automated Order Status Controller for WooCommerce**\" rel=\"nofollow ugc noopener\"><strong>Automated Order Status Controller for WooCommerce<\/strong><\/a>: Change order statuses programmatically based on a wide range of conditions, like time intervals, user roles and more! (<strong><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/order-status-rules-for-woocommerce\/\" title=\"Free version\" rel=\"ugc noopener\">Free version<\/a><\/strong>)<\/p>\n<\/li>\n<li>\n<p><a target=\"_blank\" href=\"https:\/\/wpfactory.com\/item\/order-status-for-woocommerce\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" title=\"**Custom Order Status for WooCommerce**\" rel=\"nofollow ugc noopener\"><strong>Custom Order Status for WooCommerce<\/strong><\/a>: Create &amp; manage unlimited number of custom statuses, to reflect your business desires &amp; needs. (<strong><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/order-status-for-woocommerce\/\" title=\"Free version\" rel=\"ugc noopener\">Free version<\/a><\/strong>)<\/p>\n<\/li>\n<li>\n<p><a target=\"_blank\" href=\"https:\/\/wpfactory.com\/item\/amount-left-free-shipping-woocommerce\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" title=\"**Free Shipping Over Amount for WooCommerce**\" rel=\"nofollow ugc noopener\"><strong>Free Shipping Over Amount for WooCommerce<\/strong><\/a>: Encourage higher spending by offering free shipping based on amount, with a progress bar for customers (<strong><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/amount-left-free-shipping-woocommerce\/\" title=\"Free version\" rel=\"ugc noopener\">Free version<\/a><\/strong>)<\/p>\n<\/li>\n<li>\n<p><a target=\"_blank\" href=\"https:\/\/wpfactory.com\/item\/product-price-by-quantity-for-woocommerce\/?utm_source=wporg&amp;utm_medium=organic&amp;utm_campaign=readme\" title=\"**Dynamic Pricing &amp; Bulk Quantity Discounts**\" rel=\"nofollow ugc noopener\"><strong>Dynamic Pricing &amp; Bulk Quantity Discounts<\/strong><\/a>: Advanced dynamic pricing and discount rules for WooCommerce, encouraging bulk purchases and driving more sales (<strong><a target=\"_blank\" href=\"https:\/\/wordpress.org\/plugins\/wholesale-pricing-woocommerce\/\" title=\"Free version\" rel=\"ugc noopener\">Free version<\/a><\/strong>)<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<div id=\"screenshots\" class=\"plugin-screenshots section\">\n<h2 id=\"screenshots-header\">Screenshots<\/h2>\n<ul class=\"plugin-screenshots\">\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/file-renaming-on-upload\/assets\/screenshot-1.png?rev=1847446\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/file-renaming-on-upload\/assets\/screenshot-1.png?rev=1847446\" alt=\"\"><\/a><figcaption>An exemple of a sanitized filename in Media Library<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/file-renaming-on-upload\/assets\/screenshot-2.png?rev=1847446\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/file-renaming-on-upload\/assets\/screenshot-2.png?rev=1847446\" alt=\"\"><\/a><figcaption>On general settings, setup how your filename will be, using the filename structure option where you have some rules at your disposal<\/figcaption><\/figure>\n<\/li>\n<li>\n<figure><a target=\"_blank\" href=\"https:\/\/ps.w.org\/file-renaming-on-upload\/assets\/screenshot-3.png?rev=1847446\" rel=\"nofollow noopener\"><img decoding=\"async\" class=\"screenshot\" src=\"https:\/\/ps.w.org\/file-renaming-on-upload\/assets\/screenshot-3.png?rev=1847446\" alt=\"\"><\/a><figcaption>Setup how the rules will work on your filename<\/figcaption><\/figure>\n<\/li>\n<\/ul>\n<\/div>\n<div id=\"tab-installation\" class=\"plugin-installation section\">\n<h2 id=\"installation-header\">Installation<\/h2>\n<ol>\n<li>Upload the entire \u2018file-renaming-on-upload\u2019 folder to the \u2018\/wp-content\/plugins\/\u2019 directory<\/li>\n<li>Activate the plugin through the \u2018Plugins\u2019 menu in WordPress<\/li>\n<li>Start by visiting plugin settings at Settings &gt; File Renaming<\/li>\n<\/ol>\n<\/div>\n<div id=\"faq\" class=\"plugin-faq section\">\n<h2 id=\"faq-header\">FAQ<\/h2>\n<dl>\n<dt id=\"what%20are%20the%20available%20options%20provided%20by%20this%20plugin%3F\">\n<h3>What are the available options provided by this plugin?<\/h3>\n<\/dt>\n<dd>\n<p><strong>For now, you can choose these options:<\/strong><\/p>\n<ul>\n<li>\n<p><strong>Add Site url:<\/strong> Inserts \u201cyoursite.com\u201d at the beggining of the file name. Ex: yoursite.com_filename.jpg. It is good for your SEO<\/p>\n<\/li>\n<li>\n<p><strong>Post title:<\/strong> If you are on a post edit page called \u201cSpiderman will leave Marvel\u201d and you upload a jpg it will be called spiderman-will-leave-marvel-my-file.jpg. This option allows you to replace filename by post title or add the post title.<\/p>\n<\/li>\n<li>\n<p><strong>Remove characters:<\/strong> Remove any characters you want from filename<\/p>\n<\/li>\n<li>\n<p><strong>Datetime:<\/strong> You can add or replace filename by Datetime in any format you want<\/p>\n<\/li>\n<li>\n<p><strong>Lowercase:<\/strong> Converts all characters to lowercase<\/p>\n<\/li>\n<li>\n<p><strong>Remove accents<\/strong><\/p>\n<\/li>\n<li>\n<p><strong>Update permalink:<\/strong> When the filename is changed, you can also change its permalink if you want<\/p>\n<\/li>\n<\/ul>\n<\/dd>\n<dt id=\"how%20does%20this%20plugin%20work%3F\">\n<h3>How does this plugin work?<\/h3>\n<\/dt>\n<dd>\n<p>It renames files on upload using the available rules. More specifically, it uses some filters provided by WordPress to handle file name sanitizing, like <strong>sanitize_file_name<\/strong>, <strong>sanitize_file_name_chars<\/strong> or actions like <strong>add_attachment<\/strong><\/p>\n<\/dd>\n<dt id=\"what%20are%20rules%3F\">\n<h3>What are rules?<\/h3>\n<\/dt>\n<dd>\n<p>Rules are options to control how your filename will be. Rules are enabled on the rules tab and have to be placed on the filename scructure option<\/p>\n<\/dd>\n<dt id=\"what%20is%20filename%20structure%20option%20for%3F\">\n<h3>What is filename structure option for?<\/h3>\n<\/dt>\n<dd>\n<p>It\u2019s the option where you can put your rules or any other characters you want to set how your filename will be<\/p>\n<\/dd>\n<dt id=\"are%20there%20any%20hooks%20available%3F\">\n<h3>Are there any hooks available?<\/h3>\n<\/dt>\n<dd>\n<ul>\n<li><strong>frou_sanitize_file_name<\/strong> Creates custom rules. Take a look on (Can I create a custom rule?)<\/li>\n<li><strong>frou_ignored_extensions<\/strong> Ignores extensions. Take a look on (How to ignore extensions programmatically?)<\/li>\n<\/ul>\n<\/dd>\n<dt id=\"how%20to%20ignore%20extensions%20programmatically%3F\">\n<h3>How to ignore extensions programmatically?<\/h3>\n<\/dt>\n<dd>\n<p>You can use the <strong>\u2018frou_ignored_extensions\u2019<\/strong> filter to ignore extensions programmatically.<br \/>\nFor example, if you\u2019d like to ignore txt, js and zip extensions:<\/p>\n<pre><code>add_filter( 'frou_ignored_extensions', function ( $extensions ) {\n    $extensions = array_merge( $extensions, array(\n        'txt',\n        'js',\n        'zip',\n    ) );\n    return $extensions;\n} );\n<\/code><\/pre>\n<\/dd>\n<dt id=\"can%20i%20create%20a%20custom%20rule%3F\">\n<h3>Can I create a custom rule?<\/h3>\n<\/dt>\n<dd>\n<p>Yes. It\u2019s easy.<\/p>\n<p>First, you have to create a custom rule in the <strong>filename structure<\/strong> option using curly braces, like <strong>{my_custom_rule}<\/strong>. You just have to write it, in any position you want.<\/p>\n<p>Now you can use the filter <strong>frou_sanitize_file_name<\/strong> to create a custom function. For example, if you want to put the user id it would be something like this:<\/p>\n<pre><code>add_filter( 'frou_sanitize_file_name', function($filename_infs){\n    $filename_infs['structure']['translation']['my_custom_rule'] = get_current_user_id();\n    return $filename_infs;\n}, 20 );\n<\/code><\/pre>\n<\/dd>\n<dt id=\"how%20can%20i%20contribute%20with%20code%20development%3F\">\n<h3>How can i contribute with code development?<\/h3>\n<\/dt>\n<dd>\n<p>Head over to the <a target=\"_blank\" href=\"https:\/\/github.com\/pablo-sg-pacheco\/file-renaming-on-upload\" rel=\"nofollow ugc noopener\">File Renaming on Upload plugin GitHub Repository<\/a> to find out how you can pitch in<\/p>\n<\/dd>\n<\/dl>\n<\/div>\n<div id=\"tab-reviews\" class=\"plugin-reviews section\">\n<h2 id=\"reviews-header\">Reviews<\/h2>\n<div class=\"plugin-reviews\">\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/507957412cb2f34b76488a1075b74bd8fd0b3f63f97be180508c67582c0dde99?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/507957412cb2f34b76488a1075b74bd8fd0b3f63f97be180508c67582c0dde99?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"1 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"1\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url broken_link\" href=\"https:\/\/wordpress.org\/support\/topic\/this-broke-my-site-i-wasnt-able-to-upload-files-with-this-activated\/\" rel=\"noopener\">This broke my site. I wasn\u2019t able to upload files with this activated.<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/a4jpcom\/\" title=\"Posts by a4jp\" rel=\"author noopener\">a4jp<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">November 29, 2024<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"review-replies\">1 reply<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I can manually rename files but though this plugin would solve a few problems rather than create new ones.<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/3132b849bdce3ca18090661a338fba597f4dd8b6a16ba5e0334a2096fff05281?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/3132b849bdce3ca18090661a338fba597f4dd8b6a16ba5e0334a2096fff05281?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"1 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"1\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url broken_link\" href=\"https:\/\/wordpress.org\/support\/topic\/not-work-333\/\" rel=\"noopener\">not work<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/skscomp\/\" title=\"Posts by skscomp\" rel=\"author noopener\">skscomp<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">October 5, 2024<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"review-replies\">2 replies<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">not work in woocommerce<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/b0afdf9aa058b4a4f10fa2a5de0f26542602d994bc9753fc6e24da62c62e9e9b?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/b0afdf9aa058b4a4f10fa2a5de0f26542602d994bc9753fc6e24da62c62e9e9b?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/empty-file-name-on-add-media\/\" rel=\"noopener\">empty file name on add media<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/x24help\/\" title=\"Posts by x24help\" rel=\"author noopener\">x24help<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">September 23, 2024<\/span><br \/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"review-replies\">7 replies<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">Hi<\/p>\n<p>there is empty file name on upload:Media -&gt; Add new<\/p>\n<p>Maybe the original file name is work when no post title found \ud83d\ude09<\/p><\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/6094ad8a8fcaca6a1c93c5408a0aada5434ce82aeef08f58bd3a3e32ca7c3660?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/6094ad8a8fcaca6a1c93c5408a0aada5434ce82aeef08f58bd3a3e32ca7c3660?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/very-good-and-sufficient-for-our-school-website-3\/\" rel=\"noopener\">Very good and sufficient for our school website<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/koehlersmichael\/\" title=\"Posts by koehlersmichael\" rel=\"author noopener\">koehlersmichael<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">December 23, 2023<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">For basic functions in the free version it\u2019s completely sufficient for us and does what it\u2019s supposed to do. Thanks!<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/b7ec85c51365c8cd138ffa769ad15c790f3f1de8bfdce25c139cff02cf84191b?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/b7ec85c51365c8cd138ffa769ad15c790f3f1de8bfdce25c139cff02cf84191b?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"4 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"4\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-empty\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/renames-plugin-files\/\" rel=\"noopener\">Renames Plugin Files<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/devlopero\/\" title=\"Posts by Dev O\" rel=\"author noopener\">Dev O<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">February 24, 2023<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">This is a nice plugin, but I encountered issues on my theme as it broke parts of my site after it renamed some of my theme and plugin files automatically. Took me time to realize it was the culprit \ud83d\ude42 .<\/div>\n<\/p><\/div>\n<\/article>\n<article class=\"plugin-review\">\n<div class=\"review-avatar\">\n\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/acfa83864497f8e8ad07f29e8ee26514942300c61e3b01094fbf9543b7e90b5c?s=60&amp;d=retro&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/acfa83864497f8e8ad07f29e8ee26514942300c61e3b01094fbf9543b7e90b5c?s=120&amp;d=retro&amp;r=g 2x\" class=\"avatar avatar-60 photo\" height=\"60\" width=\"60\">\t\t\t\t\t<\/div>\n<div class=\"review\">\n<header>\n<div class=\"header-top\">\n<div class=\"wporg-ratings\" aria-label=\"5 out of 5 stars\" data-title-template=\"%s out of 5 stars\" data-rating=\"5\" style=\"color:#ffb900;\"><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><span class=\"dashicons dashicons-star-filled\"><\/span><\/div>\n<h3 class=\"review-title\"><a target=\"_blank\" class=\"url\" href=\"https:\/\/wordpress.org\/support\/topic\/very-useful-plugin-1341\/\" rel=\"noopener\">Very useful plugin!<\/a><\/h3>\n<\/p><\/div>\n<div class=\"header-bottom\">\n\t\t\t\t\t\t\t\t<span class=\"review-author author vcard\"><a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/fabiop18\/\" title=\"Posts by Jensen\" rel=\"author noopener\">Jensen<\/a><\/span><br \/>\n\t\t\t\t\t\t\t\t<span class=\"review-date\">July 20, 2022<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n<\/header>\n<div class=\"review-content\">I just wish there was an option to put all words with the first letter in uppercase.<\/div>\n<\/p><\/div>\n<\/article><\/div>\n<p>\t\t<a target=\"_blank\" class=\"reviews-link\" href=\"https:\/\/wordpress.org\/support\/plugin\/file-renaming-on-upload\/reviews\/\" rel=\"noopener\"><br \/>\n\t\t\tRead all 42 reviews\t\t<\/a><\/div>\n<div id=\"tab-developers\" class=\"plugin-developers section\">\n<h2 id=\"developers-header\">Contributors &amp; Developers<\/h2>\n<div class=\"plugin-contributors\">\n<p>\u201cRename Media Files: Improve Your WordPress SEO\u201d is open source software. The following people have contributed to this plugin.<\/p>\n<p><span class=\"screen-reader-text\">Contributors<\/span><\/p>\n<ul id=\"contributors-list\" class=\"contributors-list\">\n<li>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/74c2eb4a4e6f02874c2d774d27f5a97d6b80bbe8a21c03363071bbc780790091?s=32&amp;d=mm&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/74c2eb4a4e6f02874c2d774d27f5a97d6b80bbe8a21c03363071bbc780790091?s=64&amp;d=mm&amp;r=g 2x\" class=\"avatar avatar-32 photo\" height=\"32\" width=\"32\">\t\t\t\t<a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/wpcodefactory\/\" rel=\"noopener\"><br \/>\n\t\t\t\t\tWPFactory\t\t\t\t<\/a>\n\t\t\t<\/li>\n<li>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/65348723be4b970a3e6342f217399e8ddb365f2aca62534c1e8ddaa8d8b5ce66?s=32&amp;d=mm&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/65348723be4b970a3e6342f217399e8ddb365f2aca62534c1e8ddaa8d8b5ce66?s=64&amp;d=mm&amp;r=g 2x\" class=\"avatar avatar-32 photo\" height=\"32\" width=\"32\">\t\t\t\t<a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/omardabbas\/\" rel=\"noopener\"><br \/>\n\t\t\t\t\tOmar AlDabbas\t\t\t\t<\/a>\n\t\t\t<\/li>\n<li>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/0b4b75988e6d015150217b3b9730d2341eae639521e0d6de0578b48b94f35d11?s=32&amp;d=mm&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/0b4b75988e6d015150217b3b9730d2341eae639521e0d6de0578b48b94f35d11?s=64&amp;d=mm&amp;r=g 2x\" class=\"avatar avatar-32 photo\" height=\"32\" width=\"32\">\t\t\t\t<a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/karzin\/\" rel=\"noopener\"><br \/>\n\t\t\t\t\tPablo Pacheco\t\t\t\t<\/a>\n\t\t\t<\/li>\n<li>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/23d6c3fbeb6b734b98686072018b894f985b20f5c0422a5660130d5a12a6e3f9?s=32&amp;d=mm&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/23d6c3fbeb6b734b98686072018b894f985b20f5c0422a5660130d5a12a6e3f9?s=64&amp;d=mm&amp;r=g 2x\" class=\"avatar avatar-32 photo\" height=\"32\" width=\"32\">\t\t\t\t<a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/anbinder\/\" rel=\"noopener\"><br \/>\n\t\t\t\t\tTom Anbinder\t\t\t\t<\/a>\n\t\t\t<\/li>\n<li>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/5617c0f0874cb1f58082f73ab291061eb60f976538f2fbfa0ca60d853eeaba46?s=32&amp;d=mm&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/5617c0f0874cb1f58082f73ab291061eb60f976538f2fbfa0ca60d853eeaba46?s=64&amp;d=mm&amp;r=g 2x\" class=\"avatar avatar-32 photo\" height=\"32\" width=\"32\">\t\t\t\t<a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/algoritmika\/\" rel=\"noopener\"><br \/>\n\t\t\t\t\tAlgoritmika\t\t\t\t<\/a>\n\t\t\t<\/li>\n<li>\n\t\t\t\t<img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/secure.gravatar.com\/avatar\/60bb1aae5bff99be3e5d3c0c58130689e80716e2b873e9ade73177cd275c1780?s=32&amp;d=mm&amp;r=g\" srcset=\"https:\/\/secure.gravatar.com\/avatar\/60bb1aae5bff99be3e5d3c0c58130689e80716e2b873e9ade73177cd275c1780?s=64&amp;d=mm&amp;r=g 2x\" class=\"avatar avatar-32 photo\" height=\"32\" width=\"32\">\t\t\t\t<a target=\"_blank\" href=\"https:\/\/profiles.wordpress.org\/kousikmukherjeeli\/\" rel=\"noopener\"><br \/>\n\t\t\t\t\tKousik Mukherjee\t\t\t\t<\/a>\n\t\t\t<\/li>\n<\/ul><\/div>\n<div class=\"plugin-development\">\n<p>\u201cRename Media Files: Improve Your WordPress SEO\u201d has been translated into 2 locales. Thank you to <a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/file-renaming-on-upload\/contributors\" rel=\"noopener\">the translators<\/a> for their contributions.<\/p>\n<p><a target=\"_blank\" href=\"https:\/\/translate.wordpress.org\/projects\/wp-plugins\/file-renaming-on-upload\" rel=\"noopener\">Translate \u201cRename Media Files: Improve Your WordPress SEO\u201d into your language.<\/a><\/p>\n<h3>Interested in development?<\/h3>\n<p><a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/browser\/file-renaming-on-upload\/\" rel=\"noopener\" class=\"broken_link\">Browse the code<\/a>, check out the <a target=\"_blank\" href=\"https:\/\/plugins.svn.wordpress.org\/file-renaming-on-upload\/\" rel=\"noopener\">SVN repository<\/a>, or subscribe to the <a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/log\/file-renaming-on-upload\/\" rel=\"noopener\" class=\"broken_link\">development log<\/a> by <a target=\"_blank\" href=\"https:\/\/plugins.trac.wordpress.org\/log\/file-renaming-on-upload\/?limit=100&amp;mode=stop_on_copy&amp;format=rss\" rel=\"noopener\" class=\"broken_link\">RSS<\/a>.<\/p>\n<\/div>\n<\/div>\n<div id=\"tab-changelog\" class=\"plugin-changelog section\">\n<h2 id=\"changelog-header\">Changelog<\/h2>\n<h4>2.6.4 \u2013 2025\/02\/15<\/h4>\n<ul>\n<li>Fix \u2013 Improve settings.<\/li>\n<\/ul>\n<h4>2.6.3 \u2013 2025\/01\/30<\/h4>\n<ul>\n<li>Fix \u2013 Fixed current media post detection.<\/li>\n<\/ul>\n<h4>2.6.2 \u2013 2025\/01\/27<\/h4>\n<ul>\n<li>Fix \u2013 Fixed empty settings page.<\/li>\n<\/ul>\n<h4>2.6.1 \u2013 2025\/01\/24<\/h4>\n<ul>\n<li>Dev \u2013 Improved post id detection.<\/li>\n<li>Dev \u2013 Add Cross-selling library.<\/li>\n<li>Dev \u2013 Move settings to WPFactory menu.<\/li>\n<li>Fix \u2013 Fixed copyright.<\/li>\n<\/ul>\n<h4>2.6.0 \u2013 2024\/09\/24<\/h4>\n<ul>\n<li>Dev \u2013 Rules \u2013 Post title \u2013 New option added to use the <code>{filename}<\/code> if the post title is empty.<\/li>\n<\/ul>\n<h4>2.5.9 \u2013 2024\/08\/07<\/h4>\n<ul>\n<li>Fix \u2013 Fixed slow query on admin pages.<\/li>\n<li>Fix \u2013 Fixed multicheck settings.<\/li>\n<li>Tested up to: 6.6.<\/li>\n<\/ul>\n<h4>2.5.8 \u2013 2024\/05\/16<\/h4>\n<ul>\n<li>readme.txt content update.<\/li>\n<\/ul>\n<h4>2.5.7 \u2013 2024\/04\/25<\/h4>\n<ul>\n<li>Tested up to: 6.5.<\/li>\n<\/ul>\n<h4>2.5.6 \u2013 2023\/09\/26<\/h4>\n<ul>\n<li>Tested up to: 6.3.<\/li>\n<li>Update plugin icon, banner.<\/li>\n<\/ul>\n<h4>2.5.5 \u2013 2023\/06\/30<\/h4>\n<ul>\n<li>Fix \u2013 Sanitize multiselect fields properly.<\/li>\n<\/ul>\n<h4>2.5.4 \u2013 2023\/06\/20<\/h4>\n<ul>\n<li>Dev \u2013 New filter: <code>frou_get_parent_post_title<\/code>.<\/li>\n<\/ul>\n<h4>2.5.3 \u2013 2023\/05\/18<\/h4>\n<ul>\n<li>Fix \u2013 PHP warning: Trying to access array offset on value of type int.<\/li>\n<\/ul>\n<h4>2.5.2 \u2013 2023\/05\/18<\/h4>\n<ul>\n<li>Fix \u2013 Fields are not getting sanitized properly.<\/li>\n<li>Dev \u2013 Improve separator logic.<\/li>\n<li>Tested up to: 6.2.<\/li>\n<\/ul>\n<h4>2.5.1 \u2013 2023\/02\/01<\/h4>\n<ul>\n<li>Tested up to: 6.1.<\/li>\n<li>Move to WPFactory.<\/li>\n<\/ul>\n<h4>2.5.0 \u2013 2022\/08\/12<\/h4>\n<ul>\n<li>Tested up to: 6.0.<\/li>\n<\/ul>\n<h4>2.4.9 \u2013 2022\/02\/21<\/h4>\n<ul>\n<li>Improve \u201cConvert characters to dash\u201d option.<\/li>\n<li>Tested up to: 5.9.<\/li>\n<\/ul>\n<h4>2.4.8 \u2013 2021\/10\/14<\/h4>\n<ul>\n<li>Add \u201cMax length\u201d option for \u201cFilename structure\u201d.<\/li>\n<\/ul>\n<h4>2.4.7 \u2013 2021\/09\/20<\/h4>\n<ul>\n<li>Fix \u2013 Both plugins can\u2019t be active at the same time.<\/li>\n<li>Improve composer setup.<\/li>\n<li>Improve readme.<\/li>\n<li>Tested up to: 5.8.<\/li>\n<\/ul>\n<h4>2.4.6 \u2013 2021\/07\/02<\/h4>\n<ul>\n<li>Fix timezone warning from datetime rule.<\/li>\n<li>Add <code>frou_current_media_id<\/code> filter.<\/li>\n<li>Add <code>get_current_media_id()<\/code> function.<\/li>\n<\/ul>\n<h4>2.4.5 \u2013 2021\/06\/07<\/h4>\n<ul>\n<li>Save original filename on new attachment.<\/li>\n<li>Update promoting notice.<\/li>\n<li>Improve coding standards.<\/li>\n<\/ul>\n<h4>2.4.4 \u2013 2021\/05\/24<\/h4>\n<ul>\n<li>Fix truncate option when used along with post title conversion.<\/li>\n<li>Change deploy script.<\/li>\n<\/ul>\n<h4>2.4.3 \u2013 2021\/03\/15<\/h4>\n<ul>\n<li>Fix truncate option by removing max limit.<\/li>\n<li>Tested up to: 5.7.<\/li>\n<\/ul>\n<h4>2.4.2 \u2013 2021\/02\/25<\/h4>\n<ul>\n<li>Add \u201cAccents conversion method\u201d option.<\/li>\n<li>Add <code>transliterator_transliterate<\/code> function as an option to convert characters.<\/li>\n<\/ul>\n<h4>2.4.1 \u2013 2021\/02\/21<\/h4>\n<ul>\n<li>Tested up to: 5.6.<\/li>\n<li>Add Gutenberg title fix option.<\/li>\n<li>Fix composer autoload call.<\/li>\n<li>Update readme.<\/li>\n<\/ul>\n<h4>2.4.0 \u2013 2020\/12\/07<\/h4>\n<ul>\n<li>Prevent dots from extension being converted to dash in \u201cRules &gt; Filename &gt; Convert\u201d.<\/li>\n<li>Add <code>new_extension<\/code> parameter on <code>frou_sanitize_file_name<\/code> hook.<\/li>\n<li>Add multiselect field on admin.<\/li>\n<li>Tested up to: 5.5.<\/li>\n<li>Add log to ignored file extensions.<\/li>\n<\/ul>\n<h4>2.3.9 \u2013 2020\/06\/18<\/h4>\n<ul>\n<li>Disable renaming when using WooCommerce Export Products.<\/li>\n<li>Create \u2018frou_renaming_validation\u2019 filter.<\/li>\n<li>Fix blocking by extension.<\/li>\n<li>Fix wrong string<\/li>\n<li>Improve datetime option<\/li>\n<li>Tested up to: 5.4<\/li>\n<\/ul>\n<h4>2.3.8 \u2013 2019\/11\/26<\/h4>\n<ul>\n<li>Fix posttitle rule removing spaces from titles<\/li>\n<\/ul>\n<h4>2.3.7 \u2013 2019\/11\/17<\/h4>\n<ul>\n<li>Fix \u2018posttitle\u2019 rule when title is formed with non latin characters.<\/li>\n<\/ul>\n<h4>2.3.6 \u2013 2019\/11\/15<\/h4>\n<ul>\n<li>Fix \u2018posttitle\u2019 rule after WordPress 5.3<\/li>\n<\/ul>\n<h4>2.3.5 \u2013 2019\/11\/13<\/h4>\n<ul>\n<li>Fix \u2018Parameter must be an array or an object that implements Countable\u2019<\/li>\n<li>Tested up to: 5.3<\/li>\n<\/ul>\n<h4>2.3.4 \u2013 2019\/04\/12<\/h4>\n<ul>\n<li>Fix warning on \u2018upgrader_process_complete\u2019 hook where $options[\u2018plugins\u2019] are not always present<\/li>\n<\/ul>\n<h4>2.3.3 \u2013 2019\/04\/11<\/h4>\n<ul>\n<li>Tested up to: 5.1<\/li>\n<\/ul>\n<h4>2.3.2 \u2013 2019\/02\/10<\/h4>\n<ul>\n<li>Improve Ignored Messages field<\/li>\n<li>Add sounds section on settings<\/li>\n<li>Improve premium notices on admin<\/li>\n<li>Add default ignored messages preventing empty popups<\/li>\n<li>Improve readme<\/li>\n<\/ul>\n<h4>2.3.1 \u2013 2019\/01\/23<\/h4>\n<ul>\n<li>Add filter \u2018frou_filename_allowed\u2019<\/li>\n<li>Tested up to: 5.0<\/li>\n<\/ul>\n<h4>2.3.0 \u2013 2018\/11\/02<\/h4>\n<ul>\n<li>Add more names to ignore filenames option regarding visual composer<\/li>\n<li>Add \u2018frou_after_sanitize_file_name\u2019 filter<\/li>\n<li>Add option to not rename files without extension trying to prevent third party compatibility<\/li>\n<\/ul>\n<h4>2.2.9 \u2013 2018\/07\/27<\/h4>\n<ul>\n<li>Check if rules exist before convert filename<\/li>\n<li>Add more names to ignore filenames option regarding visual composer<\/li>\n<\/ul>\n<h4>2.2.8 \u2013 2018\/04\/20<\/h4>\n<ul>\n<li>Check if permalink option is enabled on add_attachment function<\/li>\n<\/ul>\n<h4>2.2.7 \u2013 2018\/03\/30<\/h4>\n<ul>\n<li>Make it compatible with Nextgen gallery plugin<\/li>\n<\/ul>\n<h4>2.2.6 \u2013 2018\/03\/26<\/h4>\n<ul>\n<li>Update translation file<\/li>\n<li>Add persian translation<\/li>\n<li>Config auto deploy with travis<\/li>\n<li>Add wp.org assets on github<\/li>\n<\/ul>\n<h4>2.2.5 \u2013 2018\/01\/30<\/h4>\n<ul>\n<li>Fix empty function<\/li>\n<\/ul>\n<h4>2.2.4 \u2013 2018\/01\/26<\/h4>\n<ul>\n<li>Add translation to some missing strings<\/li>\n<li>Add option to truncate filename<\/li>\n<\/ul>\n<h4>2.2.3 \u2013 2017\/11\/27<\/h4>\n<ul>\n<li>Fix notice checking<\/li>\n<li>Replace \u201cinstall_plugins\u201d permission by \u201cedit_users\u201d<\/li>\n<li>Tested up to WordPress 4.9<\/li>\n<\/ul>\n<h4>2.2.2<\/h4>\n<ul>\n<li>Update pot file<\/li>\n<li>Add strings to translation<\/li>\n<\/ul>\n<h4>2.2.1<\/h4>\n<ul>\n<li>Set transient on update<\/li>\n<\/ul>\n<h4>2.2.0<\/h4>\n<ul>\n<li>Open tab if hash is present<\/li>\n<li>Improve settings api<\/li>\n<li>Create notice asking for review<\/li>\n<li>Create notice talking about the pro version<\/li>\n<li>Improve plugin\u2019s description<\/li>\n<\/ul>\n<h4>2.1.9<\/h4>\n<ul>\n<li>Create a filter to get the parent post id (frou_parent_post_id)<\/li>\n<\/ul>\n<h4>2.1.8<\/h4>\n<ul>\n<li>Create a filter to ignore filename extensions (frou_ignored_extensions)<\/li>\n<\/ul>\n<h4>2.1.7<\/h4>\n<ul>\n<li>Improve function to get post title, even with unsaved posts<\/li>\n<\/ul>\n<h4>2.1.6<\/h4>\n<ul>\n<li>Add new filter \u2018frou_admin_sections\u2019 to filter admin sections<\/li>\n<li>Improve settings api<\/li>\n<li>Update tested up to<\/li>\n<li>Restrict settings to administrators only<\/li>\n<\/ul>\n<h4>2.1.5<\/h4>\n<ul>\n<li>Add new option to convert characters to dash<\/li>\n<\/ul>\n<h4>2.1.4<\/h4>\n<ul>\n<li>Fix conflict on WeDevs settings API libraries<\/li>\n<\/ul>\n<h4>2.1.3<\/h4>\n<ul>\n<li>Update Settings API class<\/li>\n<\/ul>\n<h4>2.1.2<\/h4>\n<ul>\n<li>Start the plugin after plugins_loaded hook<\/li>\n<li>Fix github link<\/li>\n<li>Improve readme<\/li>\n<\/ul>\n<h4>2.1.1<\/h4>\n<ul>\n<li>Add new option to ignore filenames<\/li>\n<li>Fix conflict with sitemap.xml generated by All in one SEO pack<\/li>\n<\/ul>\n<h4>2.1.0<\/h4>\n<ul>\n<li>Add new option to remove non ASCII characters<\/li>\n<\/ul>\n<h4>2.0.8<\/h4>\n<ul>\n<li>Solve more conflicts with github updater plugin<\/li>\n<\/ul>\n<h4>2.0.7<\/h4>\n<ul>\n<li>Fix datetime option fatal error on update() boolean<\/li>\n<\/ul>\n<h4>2.0.6<\/h4>\n<ul>\n<li>Solves more conflicts with github updater plugin<\/li>\n<\/ul>\n<h4>2.0.5<\/h4>\n<ul>\n<li>Ignores more basenames (\u2018option_page\u2019, \u2018action\u2019, \u2018wpnonce\u2019, \u2018wp_http_referer\u2019, \u2018github_updater_repo\u2019, \u2018github_updater_branch\u2019, \u2018github_updater_api\u2019, \u2018github_access_token\u2019, \u2018bitbucket_username\u2019, \u2018bitbucket_password\u2019, \u2018gitlab_access_token\u2019, \u2018submit\u2019, \u2018db_version\u2019, \u2018github_updater_install_repo\u2019) when there is no extension provided to solve more conflicts with github-updater plugin<\/li>\n<\/ul>\n<h4>2.0.4<\/h4>\n<ul>\n<li>Ignores some basenames (\u2018path\u2019, \u2018scheme\u2019, \u2018host\u2019, \u2018owner\u2019, \u2018repo\u2019, \u2018owner_repo\u2019, \u2018base_uri\u2019, \u2018uri\u2019) when there is no extension provided. It solves conflicts with github-updater plugin<\/li>\n<\/ul>\n<h4>2.0.3<\/h4>\n<ul>\n<li>Improve description<\/li>\n<li>Add option to ignore renaming for some filename extensions<\/li>\n<li>Add new screenshot<\/li>\n<li>Remove portuguese and german translation packs from languages folder<\/li>\n<\/ul>\n<h4>2.0.2<\/h4>\n<ul>\n<li>Improve Portuguese translation<\/li>\n<li>Add German translation<\/li>\n<\/ul>\n<h4>2.0.1<\/h4>\n<ul>\n<li>Fix autoloader bug on linux environments<\/li>\n<\/ul>\n<h4>2.0.0<\/h4>\n<ul>\n<li>Recreate the plugin with some new options<\/li>\n<\/ul>\n<h4>1.3<\/h4>\n<ul>\n<li>Fix bug where site url should be home url instead<\/li>\n<\/ul>\n<h4>1.2<\/h4>\n<ul>\n<li>Added an option to renames files based on post title<\/li>\n<li>Fixed a bug where some strings were not properly removed from site url<\/li>\n<\/ul>\n<h4>1.1<\/h4>\n<ul>\n<li>Added an option to remove string parts from url<\/li>\n<\/ul>\n<h4>1.0.1<\/h4>\n<ul>\n<li>Admin page class renamed<\/li>\n<\/ul>\n<h4>1.0<\/h4>\n<ul>\n<li>Initial release<\/li>\n<\/ul>\n<\/div><\/div>\n<p><!-- .entry-content --><\/p>\n<p>\t<!-- .entry-meta --><br \/>\n<\/article>\n<p><br \/>\n<br \/><a href=\"https:\/\/wordpress.org\/plugins\/file-renaming-on-upload\/\" target=\"_blank\" rel=\"noopener\">Source link <\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Rename Media Files: Improve Your WordPress SEO By WPFactory Download Details Reviews Installation Development Support Description \u201cOne of the most important plugins on our site: Perfect plugin for our free stock photo website picjumbo. We\u2019re using it for years to automatically rename our P001120.jpg photos to SEO-focused names like business-woman-using-a-computer-free-photo.jpg. This plugin really works! Thanks!\u201d [&hellip;]<\/p>","protected":false},"author":208,"featured_media":5103,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"give_campaign_id":0,"footnotes":""},"categories":[43,39,40],"tags":[3188,3189,2497,3187,1950,1955],"class_list":["post-5102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-commercial-plugin","category-lite-version","category-wp-plugin-solution","tag-files","tag-improve","tag-media","tag-rename","tag-seo","tag-wordpress"],"acf":[],"fifu_image_url":"https:\/\/ps.w.org\/file-renaming-on-upload\/assets\/banner-772x250.png?rev=2971495","_links":{"self":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts\/5102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/users\/208"}],"replies":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/comments?post=5102"}],"version-history":[{"count":0,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/posts\/5102\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/media\/5103"}],"wp:attachment":[{"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/media?parent=5102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/categories?post=5102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/s-o-s.net\/en_gb\/wp-json\/wp\/v2\/tags?post=5102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}