301 Redirect shortcode

¿Has oído hablar de 301 redirect? Si estás gestionando un sitio de WordPress, puedes implementarlo como un shortcode, y voy a resumir cómo hacerlo utilizando el 301 redirect shortcode.

¿Qué es el 301 Redirect Shortcode?

Al operar un sitio web, a veces puede suceder que un usuario intente abrir una página específica, pero esa página ya no existe. Desde la perspectiva de los motores de búsqueda, si esto ocurre con frecuencia, puede disminuir la confianza en tu sitio.

En este caso, al utilizar una 301 redirección, puedes guiar automáticamente a los visitantes a otra página. La 301 redirección significa que informas a los visitantes (motores de búsqueda) que el contenido de la URL que intentan visitar ha sido movido a otra URL, y los conectas a la página de la URL cambiada. Esto puede mejorar la experiencia del usuario y también ayudar en la optimización para motores de búsqueda (SEO).

¿Por qué es necesario el 301 Redirect Shortcode?

¿Profundicemos en la necesidad del 301 redirect shortcode? Los administradores de sitios web configuran redirecciones por las siguientes razones:

  • Eliminación de páginas: Cuando se elimina una página que ya no se utiliza, puedes guiar a los usuarios a la página de inicio o a otra página útil.
  • Cambio de URL: Cuando cambias la estructura del sitio web o la URL, permite que los usuarios que acceden a la URL anterior sean redirigidos automáticamente a la nueva URL.
  • SEO optimización: Previene el error 404 que puede ocurrir cuando los usuarios buscan una página que ya no existe, aumentando la confianza en el sitio y mejorando la puntuación SEO.

Cómo escribir un 301 Redirect Shortcode

Ahora, ¿qué tal si escribimos un shortcode que implemente la 301 redirección? El siguiente código es un ejemplo:


add_action( 'template_redirect', function () {
    $request_uri = parse_url( $_SERVER['REQUEST_URI'], PHP_URL_PATH );
    $request_uri = trim( $request_uri, '/' );

    $blocked_paths = [
        'login',
        'sample-page',
    ];

    if ( in_array( $request_uri, $blocked_paths, true ) ) {
        wp_redirect( home_url( '/' ), 301 );
        exit;
    }
} );

Explicación del código

Este código es muy simple. Verifica el URI solicitado por el usuario y, si ese URI es uno de los caminos bloqueados (registrados en $blocked_path), redirige al usuario a la página de inicio con una 301 redirección. Es recomendable agregar comentarios a las rutas añadidas a la variable ‘blocked_paths’ para gestionarlas más fácilmente más tarde.

template_redirect

La función comienza con add_action( ‘template_redirect‘, function () {..}.

  • template_redirect es un hook de acción que se ejecuta justo antes de que WordPress cargue el archivo de plantilla. Los ‘hooks de acción’ están ocultos en el código fuente de WordPress para su extensibilidad, y los desarrolladores de sitios web pueden utilizarlos para añadir funcionalidades necesarias.
  • Es decir, cuando un usuario accede a una URL, WordPress determina la plantilla adecuada (single.php, page.php, archive.php, 404.php, etc.) y ocurre justo antes de cargar ese archivo.
  • En este punto, la función escrita en function() { … } se ejecuta.
  • El momento en que se ejecuta el hook template_redirect en la lista de funciones que WordPress realiza internamente para abrir una página se puede mostrar de la siguiente manera.
index.php
  -> wp-blog-header.php
    -> wp-load.php
      -> wp-config.php
        ...
          -> wp()
            -> $wp->main()
              -> parse_request()
              -> query_posts()
              -> handle_404()
              -> template_redirect() //← justo aquí!
              -> load_template()

También puedes separar la función de callback que usas en add_action() y escribir el código de la siguiente manera.

function my_custom_redirect_logic() {
    // Lógica de redirección
}
add_action( 'template_redirect', 'my_custom_redirect_logic' );

Detalles de la función

  • Obtiene la ruta solicitada desde $_SERVER['REQUEST_URI'], elimina la barra (/) y la verifica.
  • Si intentas acceder a una página llamada ‘login’ o ‘sample-page’, este shortcode redirige automáticamente al usuario a la página de inicio. Esto proporciona una mejor experiencia al usuario y aumenta la utilidad del sitio web.
  • El hook template_redirect es adecuado para interceptar el procesamiento de la página porque se activa justo antes de cargar la plantilla del tema.

Cómo utilizarlo

  • Agrega el código anterior directamente en el functions.php de la carpeta del tema que estás utilizando actualmente.
  • Cambia o añade las partes ‘login’, ‘sample-page’ a las URL que realmente necesitas.

Notas

  • Si deseas tratar las URLs sin distinguir entre mayúsculas y minúsculas, puedes utilizar strtolower().
  • Ignora la cadena de consulta y solo reconoce la ruta (por ejemplo: /login?redirect=true/).
  • También puedes usar wp_safe_redirect(), pero tiene la restricción de que solo puede redirigir al mismo dominio, por lo que wp_redirect() es más adecuado aquí.
  • wp_redirect() es la función básica proporcionada por WordPress para realizar redirecciones.

Casos de uso reales

Hay diversas situaciones en las que se puede utilizar este 301 redirect shortcode. Por ejemplo, a veces se renueva un sitio web o se interrumpe un servicio específico, lo que hace que las páginas que se usaban anteriormente ya no estén disponibles. En este caso, si configuras una 301 redirección, los usuarios no se perderán al hacer clic en una página incorrecta y podrán obtener otra información útil.

Conclusión

El 301 redirect shortcode juega un papel importante en la mejora de la experiencia del usuario y tiene un impacto positivo en el SEO. Los administradores de sitios web pueden gestionar las páginas de manera más sistemática a través de estos shortcodes y evitar errores 404 innecesarios, por lo que definitivamente recomiendo que lo utilicen.

Si estás utilizando un plugin de SEO como Rank Math, también puedes aprovecharlo. (Voy a resumir la información relacionada por separado)

 


[SEO] : Optimización para motores de búsqueda, el proceso de aumentar la visibilidad de un sitio web en los motores de búsqueda.
[wp_redirect] : Función de WordPress que guía a los usuarios a una URL específica, manejando la redirección.

Updated : April 8, 2025
{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}
This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.