Buenos días
Espero que bien todos tras las merecidas vacaciones.
Entiendo que quizás sobre esto habéis comentado muchísimo, pero no encuentro la forma de lo que necesitaría, y como desde el Area de Cliente, nos indican lo siguiente:
- El plugin redirection analiza todo el tráfico de tu sitio web y hace un logueo excesivo en la base de datos. Te recomiendo que realices las redirecciones desde el .htaccess: https://www.webempresa.com/blog/redirecciona-urls-de-forma-correcta-usando-cpanel-y-htaccess.html
Bien, como estamos borrando mas de 7.000 productos por estar descatalogados, no sabemos exactamente el comando o línea que hemos de indicar en dicho fichero.
A su vez, quisiéramos hacer una página indicando que dicho producto ha sido eliminado por estar descatalogado y que tras unos segundos (he visto varias webs que así lo tienen), y de forma automática vuelva a la "tienda"
Gracias como siempre.
Contenido solo visible a usuarios registrados
Hola Antonio.
Para crear una redirección en el archivo .htaccess tienes que hacerlo producto por producto:
Redirect 301 /old-product-url https://www.yoursite.com/new-destination
/old-product-url
: La URL del producto descatalogado. https://www.yoursite.com/new-destination
: La URL a la que deseas redirigir a los usuarios.
El tema de que redirija a la tienda después de unos segundos es un poco más complicado ya que necesitas algo de JavaScript para poder implementarlo.
Una opción es redirigir todos los productos con Stock 0 a una página de producto descatalogado y después de un tiempo redirigir a la tienda.
.- Crea una página de producto descatalogado, por ejemplo con el nombre " producto descatalogado "
.- Añade las siguientes en el archivo functions.php o si utilizas algún plugin para añadir código como puede ser Code Snippets
Esta función es la que redirige a la página de producto descatalogado, tienes que modificar " $discontinued_page_url = ' https://tusitio.com/producto-descatalogado/ '; " por la URL de la página que creaste.
function redirect_discontinued_products() {
if (is_product()) {
global $post;
$product = wc_get_product($post->ID);
// Verificar si el producto está descatalogado (sin stock)
if ($product && !$product->is_in_stock()) {
// URL de la página de "Producto Descatalogado"
$discontinued_page_url = 'https://tusitio.com/producto-descatalogado/';
// Realizar la redirección a la página de "Producto Descatalogado"
wp_safe_redirect($discontinued_page_url);
exit;
}
}
}
add_action('template_redirect', 'redirect_discontinued_products');
Esta última función crea un ShortCode que para redireccionar a la página de la tienda después de 5 segundo
function redirect_after_delay_shortcode($atts) {
// Obtener la URL de la página de la tienda de WooCommerce
$shop_page_url = get_permalink( wc_get_page_id( 'shop' ) );
// Establecer el tiempo de redirección y la URL, utilizando la página de la tienda por defecto
$a = shortcode_atts(array(
'url' => $shop_page_url, // Redirigir a la página de la tienda por defecto
'seconds' => '5' // Tiempo de redirección en segundos
), $atts);
return '<meta http-equiv="refresh" content="' . esc_attr($a['seconds']) . ';url=' . esc_url($a['url']) . '">';
}
add_shortcode('redirect_meta', 'redirect_after_delay_shortcode');
.- Edita la página producto descatalogado y añade un módulo ShortCode con el siguiente ShortCode:
[redirect_meta seconds="5"]
Si quieres que todos los productos 404 sean redirigidos a la página de producto descatalogado y después a la página de la tienda puedes utilizar lo siguiente:
function redirect_404_products_to_discontinued_page() {
if (is_404()) {
// URL de la página de "Producto Descatalogado"
$discontinued_page_url = 'https://tusitio.com/producto-descatalogado/';
// Verificar si la URL pertenece a un producto
global $wp_query;
if (isset($wp_query->query_vars['name']) && post_type_exists('product')) {
wp_safe_redirect($discontinued_page_url);
exit;
}
}
}
add_action('template_redirect', 'redirect_404_products_to_discontinued_page');
En este caso en vez utilizar un ShortCode vamos a utilizar una Meta Etiqueta en la Página de "Producto Descatalogado"
.- Añade un módulo HTML y añade lo siguiente
<meta http-equiv="refresh" content="5;url= https://tusitio.com/tiend a">
Un Saludo
@pepesoler, buenas tardes
Redirect 301 /old-product-url https://www.yoursite.com/new-destination
Entiendo que habría que crear una línea con cada producto descatalogado.
Bueno, sería posible con los 3.000 que quedan por eliminar y siguientes aunque sería un marrón de trabajo; pero que hacemos con los que ya hemos eliminado?
Obviamente, si no redirigimos, San Google nos va a penalizar, creo.
Lo otro que me indicas, iré haciendo pruebas a ver si me salen en el clon que tengo de la web.
Gracias.
Hola Antonio.
Entiendo que habría que crear una línea con cada producto descatalogado.
Si, aunque 3000 redirecciones me parece una barbaridad y se va resentir
Obviamente, si no redirigimos, San Google nos va a penalizar, creo.
Si es solo por lo de Google puedes instalar un plugin para que redireccione todos los 404 a la pagina que tu le indiques, por ejemplo:
-> https://es.wordpress.org/plugins/redirect-404-error-page-to-homepage-or-custom-page/
Un Saludo
@pepesoler, actualmente tenemos instalado "All 404 Redirect to Homepage"; entiendo entonces que no es el más adecuado o lo seguimos manteniendo?
Hola Antonio,
Como te indico Pepe, si es solo por Google puedes dejar la redirección 404 a homepage, de esta forma no penalizará:
https://developers.google.com/search/blog/2011/05/do-404s-hurt-my-site?hl=es
Un saludo 🖐️
Hola Antonio,
Nos comentas si podemos cerrar el tema, ten en cuenta que sí tienes alguna otra duda puedes crear un nuevo tema y con gusto lo vemos.
Un saludo 🖐️
Hola Antonio,
Estupendo ya nos vas avisando luego si tienes alguna duda.
Un saludo 🖐️ 🤓