• majorAlexa

        See all notifications

        Skip to content
        Moz logo Menu open Menu close
        • Products
          • Moz Pro
          • Moz Pro Home
          • Moz Local
          • Moz Local Home
          • STAT
          • Moz API
          • Moz API Home
          • Compare SEO Products
          • Moz Data
        • Free SEO Tools
          • Domain Analysis
          • Keyword Explorer
          • Link Explorer
          • Competitive Research
          • MozBar
          • More Free SEO Tools
        • Learn SEO
          • Beginner's Guide to SEO
          • SEO Learning Center
          • Moz Academy
          • MozCon
          • Webinars, Whitepapers, & Guides
        • Blog
        • Why Moz
          • Digital Marketers
          • Agency Solutions
          • Enterprise Solutions
          • Small Business Solutions
          • The Moz Story
          • New Releases
        • Log in
        • Log out
        • Products
          • Moz Pro

            Your all-in-one suite of SEO essentials.

          • Moz Local

            Raise your local SEO visibility with complete local SEO management.

          • STAT

            SERP tracking and analytics for enterprise SEO experts.

          • Moz API

            Power your SEO with our index of over 44 trillion links.

          • Compare SEO Products

            See which Moz SEO solution best meets your business needs.

          • Moz Data

            Power your SEO strategy & AI models with custom data solutions.

          Let your business shine with Listings AI
          Moz Local

          Let your business shine with Listings AI

          Learn more
        • Free SEO Tools
          • Domain Analysis

            Get top competitive SEO metrics like DA, top pages and more.

          • Keyword Explorer

            Find traffic-driving keywords with our 1.25 billion+ keyword index.

          • Link Explorer

            Explore over 40 trillion links for powerful backlink data.

          • Competitive Research

            Uncover valuable insights on your organic search competitors.

          • MozBar

            See top SEO metrics for free as you browse the web.

          • More Free SEO Tools

            Explore all the free SEO tools Moz has to offer.

          NEW Keyword Suggestions by Topic
          Moz Pro

          NEW Keyword Suggestions by Topic

          Learn more
        • Learn SEO
          • Beginner's Guide to SEO

            The #1 most popular introduction to SEO, trusted by millions.

          • SEO Learning Center

            Broaden your knowledge with SEO resources for all skill levels.

          • On-Demand Webinars

            Learn modern SEO best practices from industry experts.

          • How-To Guides

            Step-by-step guides to search success from the authority on SEO.

          • Moz Academy

            Upskill and get certified with on-demand courses & certifications.

          • MozCon

            Save on Early Bird tickets and join us in London or New York City

          Unlock flexible pricing & new endpoints
          Moz API

          Unlock flexible pricing & new endpoints

          Find your plan
        • Blog
        • Why Moz
          • Digital Marketers

            Simplify SEO tasks to save time and grow your traffic.

          • Small Business Solutions

            Uncover insights to make smarter marketing decisions in less time.

          • Agency Solutions

            Earn & keep valuable clients with unparalleled data & insights.

          • Enterprise Solutions

            Gain a competitive edge in the ever-changing world of search.

          • The Moz Story

            Moz was the first & remains the most trusted SEO company.

          • New Releases

            Get the scoop on the latest and greatest from Moz.

          Surface actionable competitive intel
          New Feature

          Surface actionable competitive intel

          Learn More
        • Log in
          • Moz Pro
          • Moz Local
          • Moz Local Dashboard
          • Moz API
          • Moz API Dashboard
          • Moz Academy
        • Avatar
          • Moz Home
          • Notifications
          • Account & Billing
          • Manage Users
          • Community Profile
          • My Q&A
          • My Videos
          • Log Out

        The Moz Q&A Forum

        • Forum
        • Questions
        • My Q&A
        • Users
        • Ask the Community

        Welcome to the Q&A Forum

        Browse the forum for helpful insights and fresh discussions about all things SEO.

        1. Home
        2. SEO Tactics
        3. Technical SEO
        4. How to force Wordpress to remove trailing slashes?

        Moz Q&A is closed.

        After more than 13 years, and tens of thousands of questions, Moz Q&A closed on 12th December 2024. Whilst we’re not completely removing the content - many posts will still be possible to view - we have locked both new posts and new replies. More details here.

        How to force Wordpress to remove trailing slashes?

        Technical SEO
        6
        9
        45436
        Loading More Posts
        • Watching

          Notify me of new replies.
          Show question in unread.

        • Not Watching

          Do not notify me of new replies.
          Show question in unread if category is not ignored.

        • Ignoring

          Do not notify me of new replies.
          Do not show question in unread.

        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as question
        Locked
        This topic has been deleted. Only users with question management privileges can see it.
        • james-tb
          james-tb last edited by

          I've searched around quite a bit for a solution here, but I can't find anything. I apologize if this is too technical for the forum.

          I have a Wordpress site hosted on Nginx by WP Engine. Currently it resolves requests to URLs either with or without a trailing slash.

          So, both of these URLs are functional:

          <code>mysite.com/single-post</code>
          

          and

          <code>mysite.com/single-post/</code>
          

          I would like to remove the trailing slash from all posts, forcing mysite.com/single-post/ to redirect to mysite.com/single-post. I created a redirect rule on the server:

          ^/(.*)/$ -> /$1

          and this worked well for end-users, but rendered the admin panel inaccessible. Somewhere, Wordpress is adding a trailing slash back on to the URL mysite.com/wp-admin, resulting in a redirect loop. I can't see anything obvious in .htaccess.

          Where is this rule adding a trailing slash to 'wp-admin' established?

          Thanks very much

          1 Reply Last reply Reply Quote 0
          • BlueprintMarketing
            BlueprintMarketing last edited by

            WPEis run on a base server using Apache with a Nginx proxy so you can use the WP engine  301 redirect system built-in or you can simply add a redirect to the HTAccess file. If you would like to use a tool to do this I recommend this one another alternative is to ask WP engine to make a change for you.https://www.aleydasolis.com/htaccess-redirects-generator/non-slash-vs-slash-urls/ApacheJust copy to your htaccess:```
            https://example.com/page/

            **https://example.com/page** 
            ``` 
            <label for="nonslash">**Slash to Non-Slash URLs**</label>
            
            > <ifmodule mod_rewrite.c="">RewriteEngine on
            > RewriteCond %{REQUEST_FILENAME} !-d
            > RewriteRule ^(.*)/$ /$1 [L,R=301]</ifmodule>
            
            **Non-Slash to Slash URLs**
            
            ```
            ****Apache**
            https://example.com/page**
            

            https://example.com/page/

            
            > <ifmodule mod_rewrite.c="">RewriteEngine on
            > RewriteCond %{REQUEST_FILENAME} !-f
            > RewriteRule ^(.*[^/])$ /$1/ [L,R=301]</ifmodule>
            
            

            USEING Nginx to do

            **https://example.com/page/**
            

            https://example.com/page

            
            As you see, there is one tiny difference between those two URLs, and it’s the trailing slash at the end. In order to avoid duplicate content, if you are using Nginx you can **remove the trailing slash from Nginx** URLs.
            
            Place this inside your virtual host file in the server {} block configuration:
            
            > ```
            > rewrite ^/(.*)/$ /$1 permanent;
            > ```
            
            Full example:
            
            > ```
            > server {
            > listen 80;
            > server_name www.mysite.com;
            > rewrite ^/(.*)/$ /$1 permanent;
            > }
            > ```
            
            All done, now Nginx will remove all those trailing slashes.
            
            

            USEING Nginx to do
            https://example.com/page
            https://example.com/page/

            
            Add a trailing slash by placing this inside your virtual host file in the server {} block configuration:
            
            > ```
            > rewrite ^(.*[^/])$ $1/ permanent;
            > ```
            
            Full example:
            
            > ```
            > server {
            > listen 80;
            > server_name www.mysite.com;
            > rewrite ^(.*[^/])$ $1/ permanent;
            > }
            > ```
            
            From now on, Nginx should add your trailing slash automatically to every url
            
            *   https://www.scalescale.com/tips/nginx/add-trailing-slash-nginx/
            *   https://www.scalescale.com/tips/nginx/nginx-remove-trailing-slash/
            
             I hope this helps,
            
            Tom
            1 Reply Last reply Reply Quote 0
            • ATP
              ATP last edited by

              Hi John, sorry ive been on leave so not checked back on the  forums.

              Glad it looks like its working for you. I dont think the comments do anything except signify where word press has begun writing to the .htaccess (i dont run wordpress so can't be sure). Normally comments do nothing but signify something useful to the user.

              I can try to breakdown the code a little for you, but my htaccess isn't fantastic so its by no means complete.

              Firstline:  RewriteCond%{REQUEST_FILENAME}!-d

              RewriteCond% = This says use this condition if....
              {REQUEST_FILENAME}!-d =  ... is NOT a directory

              RewriteRule^(.*)/$ /$1 [L,R=301]
              I believe this bit takes a snapshot of the url upto the final / then rewrites it to that snapshot.

              The combination of these must mean it doesn't affect your wordpress admin directory. I know this code can break if your install is within a directory (as is discussed in the stackover flow link) but they have provided a solution for that in that topic. I would say test if on your live website to make complete sure it will work as this may be slightly different to your local install. Have a back-up ready just incase it doesn't.

              Make sure you check every url including

              Homepage
              Pages
              Posts
              Category Pages
              Sub Category Pages
              Post Pages
              Any images or files

              To make sure it is working as expected on all of them.

              1 Reply Last reply Reply Quote 1
              • james-tb
                james-tb last edited by

                Thanks so much, ATP! It looks like writing the condition into .htaccess does the trick—at least for my local install. Is this because the commands located within the

                BEGIN WordPress

                END WordPress

                comments only apply to URLs outside of the WP admin area?

                Thanks again, ATP—that was a very thorough and helpful response!

                1 Reply Last reply Reply Quote 0
                • evolvingSEO
                  evolvingSEO last edited by

                  Hi John

                  Did ATP's solution help you out? Let us know if we can look into this further!

                  1 Reply Last reply Reply Quote 0
                  • ATP
                    ATP last edited by

                    Hi John,

                    I asked something similar myself something myself but im on the Magento platform. This should matter as the solution wasn't platform specific. It just involved editing htaccess file. If your up for editing your .htacccess file then it could be of some use. The topic URL is below and it contains multiple solutions for editing and removing the / and the debugging process we went through along the way. (Courtesy of Andy and Dirk) Hopefully its of some use to you

                    https://a-moz.groupbuyseo.org/community/q/cms-pages-multiple-urls

                    SUMMARY:
                    If you know how to edit your .htaccess and your ready to dive straight in this code should do it.

                    RewriteCond%{REQUEST_FILENAME}!-d
                    RewriteRule^(.*)/$ /$1 [L,R=301]

                    If you want the page with explanations and walk-through please see the original topic as editing your htaccess  badly can cause all sorts of errors.

                    Edit: I realised i was probably a tiny bit lazy and should of probably included this link which is the original link i got sent from stackoverflow with instructions on how to to edit your .htaccess file.

                    http://stackoverflow.com/questions/21417263/htaccess-add-remove-trailing-slash-from-url

                    Dirks answer later in the post offer guidance on applying it to certain parameters which should prove helpful if your still having loop problems with the admin page.

                    1 Reply Last reply Reply Quote 2
                    • james-tb
                      james-tb last edited by

                      Thanks for the replies, Donna, Martijn. I am running Yoast and considered adding the trailing slash, but:

                      -Most of the inbound links we have are to URLs with no slash

                      -The slash style seems a little dated in general-few sites use them these days.

                      I'd really love to just figure out how to solve the issue a little closer to the root.

                      1 Reply Last reply Reply Quote 0
                      • Martijn_Scheijbeler
                        Martijn_Scheijbeler last edited by

                        Hi John,

                        It seems obvious, but why not go for a adding a trailing slash to every URL instead or removing it, would solve your issues at least.

                        1 Reply Last reply Reply Quote 1
                        • DonnaDuncan
                          DonnaDuncan last edited by

                          Are you using the yoast SEO plugin? There is a setting under Advanced > Permalinks that forces a trailing slash onto URLs. I'd try looking at that first.

                          1 Reply Last reply Reply Quote 1
                          • 1 / 1
                          • First post
                            Last post

                          Browse Questions

                          Explore more categories

                          • Moz Tools

                            Chat with the community about the Moz tools.

                          • SEO Tactics

                            Discuss the SEO process with fellow marketers

                          • Community

                            Discuss industry events, jobs, and news!

                          • Digital Marketing

                            Chat about tactics outside of SEO

                          • Research & Trends

                            Dive into research and trends in the search industry.

                          • Support

                            Connect on product support and feature requests.

                          • See all categories

                          Related Questions

                          • Christian_T

                            Homepage was removed from google and got deranked

                            Hello experts I have a problem. The main page of my homepage got deranked severely and now I am not sure how to get the rank back. It started when I accidentally canonicalized the main page "https://kv16.dk" to a page that did not exist. 4 months later the page got deranked, and you were not able to see the "main page" in the search results at all, not even when searching for "kv16.dk". Then we discovered the canonicalization mistake and fixed it, and were able to get the main page back in the search results when searching for "kv16.dk". At first after we made the correction, some weeks passed by, and the ranking didn't get better.  Google search console recommended uploading a sitemap, do we did that. However in this sitemap there was a lot of "thin content sites", for all the wordpress attachments. E.g. for every image in an article. more exactly there were 91 of these attachment sites, and the rest of the page consists of only two pages "main page" and an extra landing page. After that google begun recommending the attachment urls in some searches. We tried fixing it by redirecting all the attachments to their simple form. E.g. if it was an attachment page for an image we redirected strait to the image. Google has not yet removed these attachment pages, so the question is if you think it will help to remove the attachments via google search console, or will that not help at all? For example when we search "kv16" an attachment URL named "birksø" is one of the first results

                            Technical SEO | | Christian_T
                            0
                          • simonatkinsphoto

                            Yoast and wordpress duplicate meta

                            I'm using the Yoast plugin with wordpress and have noticed in my HTML I have duplicate meta data. For example my header starts with 
                            <title>(title) </title<span><<br /><meta </span><span class="html-attribute-name">property</span><span>="</span><span class="html-attribute-value">og:site_name</span><span>" </span><span class="html-attribute-name">content</span><span>=<br /><span><meta </span><span class="html-attribute-name">property</span><span>="</span><span class="html-attribute-value">og:description</span><span>" </span><span class="html-attribute-name">content</span><span>=<br /><br /></span></span>Then I have the 'This site is optimised by Yoast" tagline followed by the same meta -<br /> <span><meta </span><span class="html-attribute-name">name</span><span>="</span><span class="html-attribute-value">description</span><span>" </span><span class="html-attribute-name">content=<br /><span> <meta </span><span class="html-attribute-name">property</span><span>="</span><span class="html-attribute-value">og:title</span><span>" content=<br /><span> <meta </span><span class="html-attribute-name">property</span><span>="</span><span class="html-attribute-value">og:description</span><span>" </span><span class="html-attribute-name">content=<br /><span> <meta </span><span class="html-attribute-name">property</span><span>="</span><span class="html-attribute-value">og:site_name</span><span>" </span><span class="html-attribute-name">content</span><span>=<br /><br /></span></span></span></span>Is this likely to cause problems with Google and is there a way to stop both wordpress and Yoast adding meta to the header. </p></title>

                            Technical SEO | | simonatkinsphoto
                            0
                          • Jseddon92

                            Should we remove category paths for better SEO?

                            We're looking to build some serious content and capitalise on long-tail keyword traffic for our sub-category pages, example for targeted keyword "designer dining tables". Example of current link: www.website.com/designer-furniture/designer-dining-tables.html Would removing the category paths help? Example result - www.website.com/designer-dining-tables More user friendly URLs and better for SEO would you suggest? The only problem is, if we removed the paths would this have a hit on our traffic? Any advice would be much appreciated. We are using Magento platform.

                            Technical SEO | | Jseddon92
                            0
                          • JohnHuynh

                            How to remove all sandbox test site link indexed by google?

                            When develop site, I have a test domain is sandbox.abc.com, this site contents are same as abc.com. But, now I search site:sandbox.abc.com and aware of content duplicate with main site abc.com My question is how to remove all this link from goolge. p/s: I have just add robots.txt to sandbox and disallow all pages. Thanks,

                            Technical SEO | | JohnHuynh
                            0
                          • ulefos

                            Remove html file extension and 301 redirects

                            Hi Recently I ask for some work done on my website from a company,  but I am not sure what they've done is right.
                            What I wanted was html file extensions to be removed like
                            /ash-logs.html to /ash-logs
                            also the index.html to www.timports.co.uk
                            I have done a crawl diagnostics and have duplicate page content and 32 page title duplicates. This is so doing my head in please help This is what is in the .htaccess file <ifmodule pagespeed_module="">ModPagespeed on
                            ModPagespeedEnableFilters extend_cache,combine_css, collapse_whitespace,move_css_to_head, remove_comments</ifmodule> <ifmodule mod_headers.c="">Header set Connection keep-alive</ifmodule> <ifmodule mod_rewrite.c="">Options +FollowSymLinks -MultiViews</ifmodule> DirectoryIndex index.html RewriteEngine On 
                             # Rewrite valid requests on .html files  RewriteCond %{REQUEST_FILENAME}.html -f RewriteRule ^ %{REQUEST_URI}.html?rw=1 [L,QSA] 
                             # Return 404 on direct requests against .html files RewriteCond %{REQUEST_URI} .html$  
                            RewriteCond %{QUERY_STRING} !rw=1 [NC]
                             RewriteRule ^ - [R=404] AddCharset UTF-8 .html # <filesmatch “.(js|css|html|htm|php|xml|swf|flv|ashx)$”="">#SetOutputFilter DEFLATE #</filesmatch> <ifmodule mod_expires.c="">ExpiresActive On
                            ExpiresByType image/gif "access plus 1 years"
                            ExpiresByType image/jpeg "access plus 1 years"
                            ExpiresByType image/png "access plus 1 years"
                            ExpiresByType image/x-icon "access plus 1 years"
                            ExpiresByType image/jpg "access plus 1 years"
                            ExpiresByType text/css "access 1 years"
                            ExpiresByType text/x-javascript "access 1 years"
                            ExpiresByType application/javascript "access 1 years"
                            ExpiresByType image/x-icon "access 1 years"</ifmodule> <files 403.shtml="">order allow,deny allow from all</files> redirect 301 /PRODUCTS http://www.timports.co.uk/kiln-dried-logs
                            redirect 301 /kindling_firewood.html http://www.timports.co.uk/kindling-firewood.html
                            redirect 301 /about_us.html http://www.timports.co.uk/about-us.html
                            redirect 301 /log_delivery.html http://www.timports.co.uk/log-delivery.html redirect 301 /oak_boards_delivery.html http://www.timports.co.uk/oak-boards-delivery.html
                            redirect 301 /un_edged_oak_boards.html http://www.timports.co.uk/un-edged-oak-boards.html
                            redirect 301 /wholesale_logs.html http://www.timports.co.uk/wholesale-logs.html redirect 301 /privacy_policy.html http://www.timports.co.uk/privacy-policy.html redirect 301 /payment_failed.html http://www.timports.co.uk/payment-failed.html redirect 301 /payment_info.html http://www.timports.co.uk/payment-info.html

                            Technical SEO | | ulefos
                            1
                          • TomLondon

                            Pages removed from Google index?

                            Hi All, I had around 2,300 pages in the google index until a week ago. The index removed a load and left me with 152 submitted, 152 indexed? I have just re-submitted my sitemap and will wait to see what happens. Any idea why it has done this? I have seen a drop in my rankings since. Thanks

                            Technical SEO | | TomLondon
                            0
                          • anand2010

                            How to remove a sub domain from Google Index!

                            Hello, I have a website having many subdomains having same copy of content i think its harming my SEO for that site since abc and xyz sub domains do have same contents. Thus i require to know i have already deleted required subdomain DNS RECORDS now how to have those pages removed from Google index as  well ? The DNS Records no more exists for those subdomains already.

                            Technical SEO | | anand2010
                            0
                          • robertdempsey

                            Duplicate canonical URLs in WordPress

                            Hi everyone, I'm driving myself insane trying to figure this one out and am hoping someone has more technical chops than I do. Here's the situation... I'm getting duplicate canonical tags on my pages and posts, one is inside of the WordPress SEO (plugin) commented section, and the other is elsewhere in the header. I am running the latest version of WordPress 3.1.3 and the Genesis framework. After doing some testing and adding the following filters to my functions.php: <code>remove_action('wp_head', 'genesis_canonical'); remove_action('wp_head', 'rel_canonical');</code> ... what I get is this: With the plugin active + NO "remove action" - duplicate canonical tags
                            With the plugin disabled + NO "remove action" - a single canonical tag
                            With the plugin disabled + A "remove action" - no canonical tag I have tried using only one of these remove_actions at a time, and then combining them both. Regardless, as long as I have the plugin active I get duplicate canonical tags. Is this a bug in the plugin, perhaps somehow enabling the canonical functionality of WordPress? Thanks for your help everyone. Robert Dempsey

                            Technical SEO | | robertdempsey
                            0

                          Get started with Moz Pro!

                          Unlock the power of advanced SEO tools and data-driven insights.

                          Start my free trial
                          Products
                          • Moz Pro
                          • Moz Local
                          • Moz API
                          • Moz Data
                          • STAT
                          • Product Updates
                          Moz Solutions
                          • SMB Solutions
                          • Agency Solutions
                          • Enterprise Solutions
                          • Digital Marketers
                          Free SEO Tools
                          • Domain Authority Checker
                          • Link Explorer
                          • Keyword Explorer
                          • Competitive Research
                          • Brand Authority Checker
                          • Local Citation Checker
                          • MozBar Extension
                          • MozCast
                          Resources
                          • Blog
                          • SEO Learning Center
                          • Help Hub
                          • Beginner's Guide to SEO
                          • How-to Guides
                          • Moz Academy
                          • API Docs
                          About Moz
                          • About
                          • Team
                          • Careers
                          • Contact
                          Why Moz
                          • Case Studies
                          • Testimonials
                          Get Involved
                          • Become an Affiliate
                          • MozCon
                          • Webinars
                          • Practical Marketer Series
                          • MozPod
                          Connect with us

                          Contact the Help team

                          Join our newsletter
                          Moz logo
                          © 2021 - 2025 SEOMoz, Inc., a Ziff Davis company. All rights reserved. Moz is a registered trademark of SEOMoz, Inc.
                          • Accessibility
                          • Terms of Use
                          • Privacy

                          Looks like your connection to Moz was lost, please wait while we try to reconnect.