1

Assume that you have a product page with a friendly URL like https://example.com/opel-corsa-70000km-P1023 and a category page that lists all similar products of the same brand: https://example.com/opel.

The .htaccess file manages the friendly URLs:

RewriteRule ^opel-corsa-70000km-P1023$ index.php?cmd=product&product_id=245
(...)
RewriteRule ^opel$ index.php?cmd=category&cat_id=7 [L]
(...)
RewriteRule ^(.*)P1023$ /shop/index.php?cmd=products&product_id=245

When the product has been sold, its page is depublished, its RewriteRules are removed from the .htaccess, and the product friendly URL is removed from the sitemap. However, its URL remains known from search engines.

If someone tries to reach the depublished page of a sold product, it will land to the page listing similar products, rather than the home page or a 404 one, which basically seems a good thing from a visitors perspective. It comes from the fact that the second RewriteRule enters the game.

In the previous example, a user interested in the Opel Corsa with 70000 km would land on the page listing cars from the Opel brand, because of the second friendly URLs rule.

A side effect is that the past but still valid URL of the removed page becomes a duplicate of the still existing category page who catches it.

In Google search console, the "Remove Outdated Content Tool" would in theory be the one to use to remove the outdated page. However it refuses removing the product page URL because, from its eyes the page still exists (as the category page is reached). It is nonsense that this tool ignores instructions given by the page owner.

How can I make Google and its Search console durably "forget" the depublished page in this situation?

Should I add a 302 redirection to the home page or a 404 page?

The duplicates pollutes records in the search console.

Thank you for your help.

1
  • I think a 303 redirection is the way to go. For details, see the answer to my own question.
    – OuzoPower
    Jul 9, 2023 at 10:37

2 Answers 2

1

From a conceptual perspective, a "303 see other" redirect is the proper way to handle redirection to a different but similar page.

Description of "303 see other" in the HTTP/1.1 protocol: https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-p2-semantics-21#section-7.4.4

As very well explained in Rankingcoach's blog article « What Does The Status Code 303 Mean? »:

« The 301 and 302 redirects are taking the user to this new page by telling them or Google you want this page but he's now been moved to here. The 303 status codes on other hand are responding to the request by saying you are asking for this page or element but we don’t have this but here is something similar or linked ».

The 303 code is unpopular for two reasons:

  • little known and consequently little documented
  • not transfering "link juice" like 301 redirections.

Although popular from a SEO perspective, a 301 redirection is unsuitable from a conceptual point of view when the target of the redirection is not the redirected page itself.

Contrary to common belief, 303 redirections are not only usable in answer to POST requests.

So, I won't mind loosing some "link juice" in exchange for cleanly implemented 303 redirection.


Some useful readings:

0

What about adding noindex meta tags to the page. This page will then be just a relic that catches any future visitors exposed to the direct link.

However it refuses removing the product page URL because, from its eyes the page still exists

This seems to make sense. Your system ensures the page does exist, the proper response is to delist. Essentially you are trying to tell it incorrect information. Instead of telling it, "stop showing this".

1
  • The page does not exist indeed (unpublished), but instead of redirecting the visitor to the home page, the website redirects him to the most suitable page for his needs. I dislike shopping sites that show "Out of stock" pages ; they are frustrating. The category page must be indexed (as allowing to compare products). What I could possibly do is add "noindex" if the URL contains the identifier of a non-existing product.
    – OuzoPower
    Jul 9, 2023 at 9:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.