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:
- Detecta URLs que contengan:
/ampal final de la ruta.- Parámetros de query como
?amp=1,amp?amp=1o?noamp=mobile.
- Redirige dichas URLs a la versión principal de la página, eliminando los parámetros AMP o NoAMP.
- Emite una redirección 301 permanente, lo que indica a los motores de búsqueda que la URL antigua ha sido reemplazada.
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:
- Crear carpeta del plugin Acceda a su instalación de WordPress y cree la siguiente carpeta:
wp-content/plugins/redireccion-completa-amp-noamp - 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. - Configurar permisos Asegúrese de que WordPress pueda leer y ejecutar el plugin. Normalmente, los permisos adecuados son:
Carpeta: 755Archivo PHP: 644
Esto garantiza que el servidor web pueda acceder y ejecutar el plugin sin problemas de permisos. - 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
- Evita errores 404 generados tras la desinstalación de plugins AMP.
- Mejora la experiencia de usuario, redirigiendo a la URL principal.
- Favorece el SEO al mantener los enlaces antiguos funcionales mediante redirección 301.
- Fácil de instalar y mantener, sin depender de otros plugins.


