View Issue Details

IDProjectCategoryView StatusLast Update
0006362OXID eShop (all versions)1.01. Products (product, categories, manufacturer, promotions etc.)public2024-03-13 10:18
ReporterSpritje Assigned To 
PriorityhighSeverityminorReproducibilityalways
Status acknowledgedResolutionopen 
Product Version4.9.7 / 5.2.7 
Summary0006362: If article is set to inactive and seo will be called you get 302 FOUND and redirect=1
Descriptionif 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 ReproduceGo to demoshop
1. http://demoshop.oxid-esales.com/EnEd/
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
http://demoshop.oxid-esales.com/EnEd/Kiteboarding/Trapeze/Trapez-ION-SOL-KITE-2011.html
4. You get a status 302 Found with redirected=1 Status 200 Ok.
Additional InformationIndexed seo url's will be complained by Google.
TagsSEO, SEO Rewrite
ThemeNot defined
BrowserNot defined
PHP VersionNot defined
Database VersionNot defined

Relationships

has duplicate 0006943 closedQA expired SEO URL's not redirected with 301 
has duplicate 0007514 confirmedHR Shop frontend does not respect inactive state correctly on products, categories and manufacturers 
related to 0006370 acknowledgedflorian.auer hard to debug redirects to start page for different reasons 

Activities

florian.auer

2016-04-05 11:24

reporter   ~0011511

What is the expected result?

Spritje

2016-04-05 11:51

developer   ~0011512

maybe Status 404 Not Found, but never redirected=1 with status 200 Ok.

florian.auer

2016-04-05 13:11

reporter   ~0011513

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.

florian.auer

2016-04-05 13:24

reporter   ~0011514

See also https://moz.com/learn/seo/http-status-codes

florian.auer

2016-04-05 13:27

reporter   ~0011515

Marking as feature request, as status code 302 is sent in this context. which is correct. See https://en.wikipedia.org/wiki/HTTP_302

matths

2016-04-07 14:21

reporter   ~0011523

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.

Best regards,
Matthias

marco_steinhaeuser

2017-06-15 23:51

reporter   ~0012122

Last edited: 2017-06-15 23:53

@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.

FYI:
* 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.

Sven Brunk

2024-03-13 10:18

administrator   ~0016402

I meanwhile confirmed 0007514. This is why we keep this open, but the issue will be handled there.