On this page
WordPress logo, the inscription "example.com/" with a slash through it.

Remove trailing slashes in WordPress using htaccess

Control trailing slashes in WordPress permalinks using htaccess for improved SEO and user experience. Learn how to remove trailing slashes easily.

To remove trailing slashes from all WordPress URLs using .htaccess, you should add a specific rule before the WordPress rewrite rules. This ensures that the rule is processed before WordPress’s own rewrite rules, which are crucial for the site’s functionality.

If you just want to remove the trailing slashes from posts, proceed to Step 2: Update Permalinks.

Step 1: Update the .htaccess with a configuration block for Apache

Follow these steps:

  1. Open your .htaccess file located in the root directory of your WordPress installation.
  2. Add the following code before the # BEGIN WordPress line:

    Remove trailing slashes from all WordPress URLs
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} ^index\.php$ [NC]
    RewriteCond %{QUERY_STRING} ^rest_route.* [NC]
    RewriteRule ^(.*)/$ /$1 [L,R=301]

After adding this code, save and upload your .htaccess file and test your site to ensure that the trailing slashes are removed from all URLs as expected. This method is effective and straightforward, ensuring that your WordPress site’s URLs are clean and consistent without trailing slashes.

Remember that changing the .htaccess file may affect your site’s availability, so backup the file before making changes. If you find any issues, you can restore the backup version.

Here’s a breakdown of the code snippet:

  • <IfModule mod_rewrite.c>: This line checks if the mod_rewrite module is enabled on the server. If it is, the code within this block will be executed. This is a safeguard to prevent errors if the module is not available.
  • RewriteEngine On: This directive enables the rewrite engine, which is necessary for the rewrite rules to be processed.
  • RewriteBase /: The RewriteBase directive specifies the URL prefix to be used for per-directory (htaccess) RewriteRule directives that substitute a relative path. In this case, it’s set to the root directory (/), which means that the rewrite rules will be applied relative to the root of the website.
  • RewriteCond %{REQUEST_FILENAME} !-d: This line is a condition that checks if the requested filename is not a directory (!-d). The RewriteCond directive is used to specify conditions under which the following RewriteRule should be applied.
  • RewriteCond %{REQUEST_URI} ^index\.php$ [NC]: This condition checks if the requested URI is exactly index.php. The ^ symbol indicates the start of the string, and the $ symbol indicates the end of the string. The [NC] flag makes the comparison case-insensitive, meaning it will match index.php, Index.php, etc. This condition ensures that the rule only applies when the request is specifically for index.php.
  • RewriteCond %{QUERY_STRING} ^rest_route.* [NC]: This condition checks if the query string of the request starts with rest_route (WordPress Rest API). The .* part means it can be followed by any characters. The [NC] flag again makes the comparison case-insensitive. This condition ensures that the rule only applies when the request includes a query string starting with rest_route
  • RewriteRule ^(.*)/$ /$1 [L,R=301]: This is the actual rewrite rule. It matches any request that ends with a slash (^(.*)/$) and redirects it to the same path without the trailing slash (/$1). The [L,R=301] flags indicate that this is the last rule to be processed (L) and that the redirect should be permanent (R=301).
  • </IfModule>: This line marks the end of the IfModule block.
Trailing slashes from all WordPress URLs can be beneficial for SEO and consistency in URL structure. The use of R=301 makes the redirection permanent, which is good for SEO as it helps to avoid duplicate content issues.

You need to update your Permalinks (Settings, then Permalinks) to Custom Structure and remove the trailing slash there. It removes the trailing slash from all your posts.

WordPress admin panel, menu Settings, Permalinks and highlighted Custom Structure input form field

Benefits of removing trailing slashes from website URLs

Removing trailing slashes from website URLs can simplify URL structures while potentially increasing user experience. While there are various opinions on the significance of trailing slashes for SEO, the key benefits of removing trailing slashes include:

  • Cleaner URLs: Removing trailing slashes can make URLs appear cleaner and more concise, improving the overall aesthetics of the website and possibly increasing click-through rates in search results.
  • Avoiding redirects: Trailing slashes can cause unnecessary redirects, slowing website loading times and negatively affecting user experience. Removing trailing slashes reduces the need for these redirection and streamlines the user experience.
  • Consistency: Maintaining a consistent URL format without trailing slashes can make website management easier and reduce the risk of duplicate content issues. URL consistency can also help search engines understand and index a website more effectively. From an SEO perspective, search engines may treat URLs with and without trailing slashes as separate entities. This can lead to issues with duplicate content if both versions of a URL are accessible and serve different content.
  • Improved page load time: For URLs that point to files, removing the trailing slash can improve page load time. This is because the server can more efficiently locate and serve the file without the need to search for a directory. This efficiency can enhance the user experience by reducing load times.
  • Avoiding potential misinterpretation: Trailing slashes can sometimes lead to confusion or misinterpretation by users or search engines. For example, a URL with a trailing slash might be mistaken for a directory, while a URL without a trailing slash might be seen as a file. By standardizing your URL structure, you can avoid such misunderstandings and ensure that your site’s content is accurately represented.

Related posts


Leave a Reply

Real-user monitoring for Accessibility, Performance, Security, SEO & Errors (SiteLint)