View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0006362||OXID eShop (all versions)||1.01. Products (product, categories, manufacturer, promotions etc.)||public||2016-04-05 11:09||2019-01-25 17:56|
|Product Version||4.9.7 / 5.2.7|
|Target Version||Fixed in Version|
|Summary||0006362: If article is set to inactive and seo will be called you get 302 FOUND and redirect=1|
|Description||if article in backend is set to inactive and seo url is called (e.g indexed by Google) you get a redirect=1 with Status 200 Ok.|
|Steps To Reproduce||Go to demoshop |
2. In frontend you see in "Frisch eingetroffen" the article
"Trapez ION SOL KITE 2011"
3. Set this article in backend to inactive and open the article details
4. You get a status 302 Found with redirected=1 Status 200 Ok.
|Additional Information||Indexed seo url's will be complained by Google.|
|PHP Version||Not defined|
|MySQL Version||Not defined|
||What is the expected result?|
||maybe Status 404 Not Found, but never redirected=1 with status 200 Ok.|
The initial status is 302 (moved temporarily), which forwards to the home page. So the status 200 results from the redirect.
I've had different input regarding this and the expected result from others:
1) Do not show inactive products in overview, but keep the product's detail page reachable via deep link (and probably show a message/hint that it is inactive).
2) Use status code 303. According to RFC 7231, which obsoletes RFC 2616, "A 303 response to a GET request indicates that the origin server does not have a representation of the target resource that can be transferred by the server over HTTP. However, the Location field value refers to a resource that is descriptive of the target resource, such that making a retrieval request on that other resource might result in a representation that is useful to recipients without implying that it represents the original target resource." (See https://en.wikipedia.org/wiki/HTTP_303)
3) Use 404 (Not found). This however would result in the detail page being removed from the search engine's index, and it might take more effort to bring it back there again.
So I assume that the definition of the expected result depends on the SEO consultant you ask.
From my point of view it should be up to the shop owner do decide whether to allow deep links for inactive products, or to use status 303, or to use status 404.
Thus, the solution is a new feature.
||See also https://moz.com/learn/seo/http-status-codes|
||Marking as feature request, as status code 302 is sent in this context. which is correct. See https://en.wikipedia.org/wiki/HTTP_302|
Hi Florian, how are you? ;)
Well, technically 302 Temporary moved might be a correct status code, but from a Google perspective as well as from a user perspective, it's not.
Google webmaster tools calls 302 redirects to the homepage a "Soft 404" and penalizes the website for these things. Google suggests to use a 404 Not found or 410 Gone. https://support.google.com/webmasters/answer/2409443?ctx=MCE&ctx=S4
From a user perspective it doesn't make a difference whether he want's to reach a non existing page or a formerly existing page of a now inactive article. It's something, that is not found. From a user perspective going to the homepage without any message why he ends up there, doesn't make sense.
A much more user-friendly solution (with a much higher conversion, maybe) would be to redirect to some relevant content (e.g. the products category page) and a flash message which inform about the no longer visible article.
@matts is definitely right: in a matter of fact, the option "If out of stock, offline: The product is not displayed if it is sold out." means that this product will not hit the market any more, you will never ever sell it again. Google, please don't come along again for this URI and remove it from your index. This should be documented, at least in the help_lang files.
In this case, a custom 404 or even better, a custom 410 page shall come up providing several options like <go to the home page>, <search for another product> or <show up similar products>.
Displaying a HTTP header 302 (temporarily redirected), redirecting to the home page is completely wrong and will end up as a so called "soft 404" for SEOs <-- bad! And this is not only bad for one out of five SEO experts, but also for those who are into _real_ projects.
* 302 would mean that the _content_ on your web page temporarily moved to another URI. This is not the case when redirecting from a product detail page to the home page of a shop. Also, it seems that there's no code (yet) to generate a 302 HTTP header and redirect to the home page of a shop. Certainly, it looks like it _automatically_ happens, at least on Apache web servers.
* Even if you changed it to 301 (moved permanently), it would be incorrect as the content of the (former) product details page would always be different to the content of the home page, isn't it? ^^
Please talk to me before changing anything.