Icono del sitio Binario 0

Redirección Completa AMP/NoAMP: Evitando errores tras eliminar plugins AMP

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

En muchas ocasiones, los administradores de sitios WordPress deciden eliminar plugins AMP (Accelerated Mobile Pages) para simplificar la gestión del sitio o mejorar el rendimiento. Sin embargo, esta eliminación puede generar errores 404 o enlaces rotos, ya que las URLs generadas por AMP (/amp, ?amp=1 o variantes similares) siguen existiendo en motores de búsqueda o enlaces externos.

El plugin "Redirección Completa AMP/NoAMP" surge como una solución sencilla para estos casos: redirige automáticamente cualquier URL que contenga parámetros o rutas AMP hacia la URL principal correspondiente, evitando errores y mejorando la experiencia de usuario y SEO.

Descripción del plugin

El plugin realiza las siguientes funciones:

El código principal es el siguiente:

<?php
/*
Plugin Name: Redirección Completa AMP/NoAMP
Description: Redirige URLs con /amp, ?amp=1, amp?amp=1 o ?noamp=mobile hacia la URL principal sin esos parámetros.
Version: 1.2
Author: Juan Jose Fernandez Duran 
*/

add_action('template_redirect', 'redirigir_amp_noamp');

function redirigir_amp_noamp() {
    if (is_admin()) return; // No tocar admin

    $request_uri = $_SERVER['REQUEST_URI'];

    // Detecta /amp al final o parámetros amp/noamp
    if (preg_match('#(/amp/?$)|(\?|&)amp=1\b|amp\?amp=1\b|(\?|&)noamp=mobile\b#', $request_uri)) {

        $url_path = parse_url($request_uri, PHP_URL_PATH); // ruta de la URL
        $url_query = parse_url($request_uri, PHP_URL_QUERY); // query de la URL

        // Elimina /amp al final
        $url_path = preg_replace('#/amp/?$#', '', $url_path);

        // Procesa query parameters y elimina amp/noamp
        $new_query = '';
        if ($url_query) {
            parse_str($url_query, $query_params);
            unset($query_params['amp'], $query_params['noamp']);
            if (!empty($query_params)) {
                $new_query = '?' . http_build_query($query_params);
            }
        }

        // Construye la URL final
        $redirect_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http')
            . '://' . $_SERVER['HTTP_HOST'] . $url_path . $new_query;

        wp_redirect($redirect_url, 301);
        exit;
    }
}

Instalación

Para instalar correctamente este plugin y garantizar que funcione sin problemas, siga estos pasos:

  1. Crear carpeta del plugin Acceda a su instalación de WordPress y cree la siguiente carpeta:

    wp-content/plugins/redireccion-completa-amp-noamp
  2. Guardar el archivo PHP Copie el código del plugin anterior en un archivo llamado:

    redireccion-completa-amp-noamp.php

    y guárdelo dentro de la carpeta creada.
  3. Configurar permisos Asegúrese de que WordPress pueda leer y ejecutar el plugin. Normalmente, los permisos adecuados son:

    Carpeta: 755
    Archivo PHP: 644

    Esto garantiza que el servidor web pueda acceder y ejecutar el plugin sin problemas de permisos.
  4. Activar el plugin Desde el panel de administración de WordPress, vaya a Plugins > Plugins instalados, busque "Redirección Completa AMP/NoAMP" y haga clic en Activar.

Beneficios

Salir de la versión móvil