URL Redirects For SEO: A Technical Guide

Posted by

Redirects for SEO must be utilized correctly because they affect how sites are crawled and indexed by Google.

While most people think of redirects as an internet detour indication, far more is happening, and it’s surprisingly pleasurable to discover.

Keep reading for a comprehensive introduction of redirects and the proper application for technical SEO.

What Is A Redirect?

Website redirects tell web browsers and online search engine information about a URL and where to discover the webpage.

A URL redirect includes code carried out to a particular URL, or a group of URLs so that the user (or search engine) is sent to a various page to the real URL that was input or clicked.

A redirect can be set as a:

  • Temporary redirect: 302, 303, 307, 308.
  • Permanent redirect: 301.

When To Utilize Redirects

The primary reasons to utilize redirects are:

  • A specific page or entire domain has actually been moved (URL changed).
  • To allow the use of URL shorteners or ‘quite URLs.’
  • Site migration (e.g., HTTP to HTTPS).

For SEO purposes, URL redirects are very important because they:

  • Forward authority of any links pointing to a page that has actually moved or been erased.
  • Prevent 404 page not discovered mistakes (although often it is better to leave a 404).

Redirects can be executed on a group or domain-wide basis however frequently require to be set on a private basis to prevent problems.

When utilizing RegEX for group redirects, it can have unanticipated results if your logic isn’t perfect!

Kinds of Redirects

There are three main types of redirects:

  • Meta Refresh redirects are set at the page level however are typically not suggested for SEO purposes. There are 2 kinds of meta redirect: postponed which is viewed as a short-term redirect, and immediate, which is seen as a permanent redirect.
  • Javascript redirects are likewise set on the customer side’s page and can trigger SEO issues. Google has stated a choice for HTTP server-side redirects.
  • HTTP redirects are set server-side and the very best technique for SEO functions– we covered thorough listed below.

What Is A HTTP Reaction Status Code?

Internet browsers and search engine crawlers like GoogleBot are called user representatives.

When a user agent tries to access a webpage, what happens is that the user representative makes a request, and the website server concerns a response.

The action is called an HTTP response status code. It provides a status for the request for a URL.

In the situation where a user agent like GoogleBot demands a URL, the server gives an action.

For example, if the ask for a URL succeeds, the server will supply an action code of 200, which implies the request for a URL was successful.

So, when you think of a GoogleBot reaching a site and attempting to crawl it, what’s happening is a series of demands and reactions.

HTTP Redirects

An HTTP redirect is a server reaction to ask for a URL.

If the URL exists at a different URL (because it was moved), the server tells the user agent that the URL demand is being rerouted to a different URL.

The action code for an altered URL is generally in the type of a 301 or 302 action status code.

The entire 3xx series of response codes communicate much info that can optionally be acted upon by the user agent.

An example of an action that the user agent can take is to conserve a cache of the brand-new URL so that the next time the old URL is asked for, it will ask for the new URL rather.

So, a 301 and a 302 redirect is more than an internet roadway sign that states, “Go here, not there.”

3XX Series Of Status Codes

Redirects are more than simply the two status codes everybody is familiar with, the 301 and 302 action codes.

There are a total of seven official 3xx reaction status codes.

These are the various type of redirects available for use:

  • 300 Numerous Options.
  • 301 Moved Permanently.
  • 302 Found.
  • 303 See Other.
  • 304 Not Modified.
  • 305 Usage Proxy.
  • 306 (Unused).
  • 307 Short-lived Redirect.
  • 308 Irreversible Redirect.

A few of the above status codes have not been around as long and might not be used. So, prior to utilizing any redirect code other than 301 or 302, make sure that the intended user representative can translate it.

Due to the fact that GoogleBot uses the current variation of Chrome (called a headless browser), it’s easy to examine if a status code is compatible by checking if Chrome recognizes the status code with a web browser compatibility list.

For SEO, one ought to adhere to using the 301 and 302 response codes unless there is a specific factor to utilize one of the other codes.

301: Moved Permanently

The 301 status code is routinely referenced as the 301 redirects. But the official name is 301 Moved Permanently.

The 301 redirect suggests to a user agent that the URL (in some cases described as a target resource or just resource) was altered to another area and that it need to utilize the brand-new URL for future demands.

As pointed out previously, there is more info also.

The 301 status code likewise suggests to the user representative:

  • Future requests for the URL should be made with the brand-new URL.
  • Whoever is making the request ought to upgrade their links to the brand-new URL.
  • Subsequent requests can be altered from GET to POST.

That last point is a technical issue. According to the official requirements for the 301 status code:

“Note: For historical factors, a user representative MAY alter the request approach from POST to GET for the subsequent request. If this behavior is undesirable, the 308 (Long-term Redirect) status code can be utilized instead.”

For SEO, when search engines see a 301 redirect, they pass the old page’s ranking to the brand-new one.

Prior to making a modification, you must take care when utilizing a 301 redirect. The 301 redirects need to only be used when the change to a new URL is long-term.

The 301 status code should not be utilized when the change is temporary.

In addition, if you alter your mind later and return to the old URL, the old URL might not rank any longer and may take time to restore the rankings.

So, the main point to keep in mind is that a 301 status code will be used when the modification is long-term.

302: Found

The main point to understand about the 302 status code is that it’s useful for circumstances where a URL is briefly changed.

The meaning of this response code is that the URL is momentarily at a various URL, and it is recommended to utilize the old URL for future demands.

The 302 redirect status code likewise includes a technical caution associated to GET and Post:

“Note: For historic reasons, a user representative MAY change the request technique from POST to GET for the subsequent request. If this habits is undesired, the 307 (Short-lived Redirect) status code can be utilized instead.”

The referral to “historic reasons” may refer to old or buggy user representatives that may alter the demand method.

307: Temporary Redirect

A 307 redirect suggests the asked for URL is briefly moved, and the user representative need to use the original URL for future requests.

The only difference in between a 302 and a 307 status code is that a user representative must request the new URL with the same HTTP demand utilized to ask for the original URL.

That suggests if the user agent requests the page with a GET request, then the user representative need to utilize a GET ask for the brand-new short-lived URL and can not utilize the POST request.

The Mozilla documentation of the 307 status code describes it more clearly than the official documents.

“The server sends this action to direct the client to get the asked for resource at another URI with same approach that was utilized in the previous request.

This has the very same semantics as the 302 Found HTTP response code, with the exception that the user agent must not alter the HTTP technique utilized: if a POST was used in the first request, a POST must be used in the second request.”

Besides the 307 status code requiring subsequent requests to be of the same kind (POST or GET) and that the 302 can go either way, whatever else is the very same in between the 302 and the 307 status codes.

302 Vs. 307

You may deal with a redirect through server config files.htaccess on Apache, example.conf file on Nginx or through plugins if you are utilizing WordPress.

In all instances, they have the exact same syntax for composing redirect rules. They differ only with commands utilized in configuration files. For example, a redirect on Apache will look like this:

Choices +FollowSymlinks RewriteEngine on RedirectMatch 301 ^/ oldfolder// newfolder/

(You can read about symlinks here.)

On Nginx servers, it will appear like this:

rewrite ^/ oldfolder// newfolder/ irreversible;

The commands utilized to inform the server’s status code of redirect and the action command differ.

For example:

  • Servers status code of redirect: “301 ″ vs. “long-term.”
  • Action command: “RedirectMatch” vs. “rewrite.”

However the redirect syntax (^/ oldfolder// newfolder/) is the same for both.

On Apache, make sure that mod_rewrite and mod_alias modules (responsible for managing redirects) are allowed on your server.

Given that the most extensively spread server type is Apache, here are examples for.htaccess apache files.

Make sure that the.htaccess file has these 2 lines above the redirect rules and put the rules listed below them:

Alternatives +FollowSymlinks RewriteEngine on

Read the main documentation to get more information about the RewriteEngine.

To understand the examples listed below, you might refer to the table listed below on RegExp essentials.

* no or more times
+ One or more times
. any single character
? Zero or one time
^ Start of the string
$ End of the string
| b OR operadn” |” a or b
(z) keeps in mind the match to be used when calling $1

How To Create Redirects

How To Create A Redirect For A Single URL

The most typical and extensively used kind of redirect is when deleting pages or altering URLs.

For example, say you changed the URL from/ old-page/ to/ new-page/. The redirect rule would be:

RewriteRule ^ old-page(/? |/. *)$/ new-page/ [R=301, L] Or RedirectMatch 301 ^/ old-page(/? |/. *)$/ new-page/

The only difference in between the two approaches is that the very first utilizes the Apache mod_rewrite module, and the second usages mod_alias. It can be done utilizing both techniques.

The routine expression “^” suggests the URL must start with “/ old-page” while (/? |/. *)$ suggests that anything that follows “/ old-page/” with a slash “/” or without an exact match should be redirected to/ new-page/.

We could also use (. *), i.e., ^/ old-page(. *), however the problem is, if you have another page with a comparable URL like/ old-page-other/, it will also be rerouted when we only want to reroute/ old-page/.

The following URLs will match and be directed to a new page:

/ old-page/ / new-page/
/ old-page / new-page/
/ old-page/? utm_source=facebook.com / new-page/? utm_source=facebook.com
/ old-page/child-page/ / new-page/

It will reroute any variation of the page URL to a new one. If we use reroute in the following type:

Redirect 301/ old-page// new-page/

Without regular expressions, all URLs with UTM query string, e.g.,/ old-page? utm_source=facebook.com (which is common because URLs are used to be shared over a social network), would end up as 404s.

Even/ old-page without a trailing slash “/” would end up as a 404.

Redirect All Other than

Let’s say we have a lot of URLs like/ category/old-subcategory -1/,/ category/old-subcategory -2/,/ category/final-subcategory/ and want to combine all subcategories into/ category/final-subcategory/. We need the “all other than” guideline here.

RewriteCond % !/ category/final-subcategory/ RewriteCond % REQUEST_FILENAME!-f RewriteRule ^(classification/)./ category/final-subcategory/ [R=301, L] Here, we want to reroute all under/ classification/ on the third line other than if it is/ category/final-subcategory/ on the 4th line. We also have the “!-f” rule on the second line, neglecting any file like images, CSS, or JavaScript files.

Otherwise, if we have some properties like “/ category/image. jpg,” it will likewise be rerouted to “/ final-subcategory/” and cause an image break.

Directory site Change

You can use the rule below if you did a classification restructuring and want to move whatever from the old directory site to the brand-new one.

RewriteRule ^ old-directory$/ new-directory/ [R=301, NC, L] RewriteRule ^ old-directory/(. *)$/ new-directory/$1 [R=301, NC, L] I utilized $1 in the target to inform the server that it need to remember whatever in the URL that follows/ old-directory/ (i.e.,/ old-directory/subdirectory/) and pass it (i.e., “/ subdirectory/”) onto the location. As an outcome, it will be redirected to/ new-directory/subdirectory/.

I utilized 2 rules: one case with no routing slash at the end and the other one with a routing slash.

I could combine them into one guideline utilizing (/? |. *)$ RegExp at the end, however it would cause issues and include a “//” slash to the end of the URL when the asked for URL with no trailing slash has a query string (i.e., “/ old-directory? utm_source=facebook” would be redirected to “/ new-directory//? utm_source=facebook”).

Eliminate A Word From URL

Let’s state you have 100 URLs on your website with the city name “Chicago” and wish to eliminate them.

For the URL http://yourwebiste.com/example-chicago-event/, the redirect guideline would be:

RewriteRule ^(. *)-chicago-(. *) http://% SERVER_NAME/$1-$2 [NC, R=301, L] If the example URL remains in the kind http://yourwebiste.com/example/chicago/event/, then the redirect would be: RewriteRule ^(. *)/ chicago/(. *) http://% /$1/$2 [NC, R=301, L] Set A Canonical URL

Having canonical URLs is the most important part of SEO.

If missing out on, you might endanger your site with duplicate content issues since online search engine treat URLs with “www” and “non-www” variations as different pages with the same material.

Therefore, you need to guarantee you run the site only with one variation you pick.

If you want to run your site with the “www” variation, utilize this guideline:

RewriteCond % HTTP_HOST ^ yourwebsite.com [NC] RewriteRule ^(. *)$ http://www.yourwebsite.com/$1 [L, R=301] For a “non-www” variation: RewriteCond % HTTP_HOST ^ www.yourwebsite.com [NC] RewriteRule ^(. *)$ http://yourwebsite.com/$1 [L, R=301] Trailing slash is likewise part of canonicalization because URLs with a slash at the end or without are likewise dealt with differently. RewriteCond % !-f RewriteRule ^(. * [^/]$/$1/ [L, R=301] This will make sure the/ example-page is rerouted to/ example-page/. You may pick to remove the slash instead of adding then you will need the other guideline below: RewriteCond % REQUEST_FILENAME!-d RewriteRule ^(. *)/$/$1 [L, R=301]HTTP To HTTPS Redirect

After Google’s effort to motivate website owners to use SSL, migrating to HTTPS is one of the frequently used redirects that nearly every site has.

The reword guideline listed below can be used to force HTTPS on every site.

RewriteCond % ^ yourwebsite.com [NC, OR] RewriteCond % ^ www.yourwebsite.com [NC] RewriteRule ^(. *)$ https://www.yourwebsite.com/$1 [L, R=301, NC] Utilizing this, you can combine a www or non-www version reroute into one HTTPS redirect guideline.

Redirect From Old Domain To New

This is likewise among the most secondhand redirects when you choose to rebrand and require to alter your domain. The guideline below redirects old-domain. com to new-domain. com.

RewriteCond % HTTP_HOST ^ old-domain. com$ [OR] RewriteCond % ^ www.old-domain.com$ RewriteRule (. *)$ http://www.new-domain.com/$1 [R=301, L] It utilizes 2 cases: one with the “www” version of URLs and another “non-www” because any page for historic reasons might have incoming links to both variations.

Many site owners use WordPress and may not need a.htaccess declare redirects however use a plugin instead.

Managing redirects utilizing plugins may be a little different from what we discussed above. You may need to read their paperwork to handle RegExp correctly for the specific plugin.

From the existing ones, I would recommend a totally free plugin called Redirection, which has numerous parameters to control redirect guidelines and many helpful docs.

Reroute Finest Practices

1. Do not Reroute All 404 Broken URLs To The Homepage

This case frequently happens when you are too lazy to investigate your 404 URLs and map them to the appropriate landing page.

According to Google, they are still all dealt with as 404s.

If you have a lot of pages like this, you need to consider creating beautiful 404 pages and engaging users to search more or find something aside from what they were trying to find by displaying a search choice.

It is strongly recommended by Google that redirected page material should be equivalent to the old page. Otherwise, such a redirect may be considered a soft 404, and you will lose the rank of that page.

2. Get Mobile Page-Specific Reroutes Right

If you have various URLs for desktop and mobile sites (i.e., “example.com” for desktop and “m.example.com” for mobile), you should ensure to reroute users to the appropriate page of the mobile variation.

Correct: “example.com/sport/” to “m.example.com/sport/”
Wrong: “example.com/sport/” to “m.example.com”

Likewise, you need to guarantee that if one page is 404 on the desktop, it should likewise be 404 on mobile.

If you have no mobile version for a page, you can prevent redirecting to the mobile variation and keep them on the desktop page.

3. How To Use Meta Refresh

It is possible to do a redirect utilizing a meta revitalize tag like the example listed below:

If you place this tag in/ old-page/, it will redirect the user right away to/ new-page/.

Google does not forbid this redirect, however it doesn’t recommend utilizing it.

According to John Mueller, online search engine might not be able to recognize that kind of redirect correctly. The exact same is also true about JavaScript reroutes.

4. Avoid Redirect Chains

This message shows when you have a wrong routine expression setup and winds up in a limitless loop.

Screenshot by author, December 2022 Generally, this takes place when you have a redirect chain. Let’s say you redirected page 1 to page 2 a long time ago. You may have forgotten that

page 1 is rerouted and decided to redirect page 2 to page 1 again. As an outcome, you will wind up with a rule like this: RewriteRule ^ page1/ page2 [R

=301, NC, L] RewriteRule ^ page2/ page1 [R=301, NC, L] This will create a limitless loop and produce the error shown above. Conclusion Knowing what

redirects are and which scenario needs a specific status code is fundamental to


websites correctly. It’s a core part of comprehending SEO. Many situations need precise knowledge of redirects, such as migrating a site to a new domain or producing a momentary holding page URL for a web page that will return under its typical URL. While so much is possible with a plugin, plugins can be misused without properly understanding when and why to use a specific

type of redirect. More Resources: Included Image: