web-dev-qa-db-fra.com

Pour Google, devez-vous indiquer une erreur pour les pages qui existeront à l'avenir ou les rediriger vers une page d'erreur?

J'ai une vue du produit qui montre un produit s'il existe à un lien tel que:

www.example.com/products/product-name

Si le produit n'existe pas, une page d'erreur est affichée à la place du serveur émettant une redirection vers une erreur telle que /404

Si un produit est créé après que Googlebot l’a vu comme une erreur, Google la répertorie comme une page d’erreur car elle a déjà été vue comme une erreur. Est-il donc préférable de rediriger la page vers un 404? Ou Google finira-t-il par mettre à jour et arrêter de le voir comme une erreur?

Mon code actuel est comme ça (pas exactement mais ça marche comme ça)

Controllers/Router/Map::('/products/[*:name]', function($productName) {
    $p = Controllers/Products/Loader::getProductByName(implode(' ', explode('-', $productName));
    require_once(_DIR_ . ($p->isProduct() ? 'views/product.php' : 'views/error.php'));
});

Devrais-je demander la vue d'erreur ou rediriger le serveur vers le lien 404?

3
Kyle Thomas

Pour résoudre ce problème, changez votre code afin que:

(a) les produits qui n'ont pas de page de produit associée ne reçoivent pas d'hyperlien et ne peuvent donc pas être cliqués, de sorte que les utilisateurs et les moteurs de recherche ne se retrouvent pas sur des pages d'erreur sans page; ou

(b) pour empêcher les moteurs de recherche d'indexer vos pages d'erreur, assurez-vous que l'en-tête HTTP de votre page d'erreur 404 est défini comme suit avant la sortie de tout contenu HTML:

<?php
header('HTTP/1.0 404 Not Found');
1
richhallstoke