Programación

Cómo deshabilitar la página de adjuntos de WordPress

Por defecto WordPress crea una página en el frontal, con su URL propia, para todas las imágenes y cualquier otro fichero que subas a la librería multimedia de tu sitio.

La verdad que no he visto nunca ningún sitio que pueda sacarle utilidad a esto, pero bueno, están ahí y si las usas, puedes dejarlas activas. Si no, serán URLs que envías a los buscadores sin ningún valor y como tal… mejor quitarlas.

Qué es una página de adjuntos en WordPress

En WordPress cuando subes por la librería multimedia una imagen ,un vídeo, un documentao PDF o cualquier otro fichero, aparte de subirse el fichero como tal a la carpeta que corresponda en uploads, se crea un registro en la base de datos, de tipos post, con sus metadatos en postmeta.

Por ejemplo en una imagen se guardan sus dimensiones y se relacionan todas las miniaturas que se generan. Este tipo de dato que guarda esta información en la tabla post, es público, así que es un contenido más al que acceder aunque en la mayor parte de los casos no tenga el menor sentido.

Es posible que no sepas esto porque la mayoría de los temas no muestran archivos adjuntos en el frontend, pero si vas a tu biblioteca de medios puedes ver fácilmente cualquiera de los puestos haciendo clic en el enlace «Ver» que hay bajo cada elemento.

Por qué deberías eliminar la página de adjuntos

El problema con las páginas adjuntas de WordPress es que para casi nadie son útiles y por lo general tienen poco o ningún contenido, se muestra la imagen o documento y ya está.

Y encima en la mayor parte de los casos una web tiene más imágenes añadidas a su sitio que entradas o páginas, lo que empeora aún más las cosas. Una cuenta rápida: si tienes 500 artículos y 4 imágenes por artículo, tendrás 2.000 páginas de adjuntos derivadas de estas imágenes, una por cada imagen subida. De 2.500 URLs solo 500 serán de calidad.

Como la idea es posicionar solo URLs que sean de calidad la solución es eliminar estas páginas. Vamos a ver dos métodos diferentes, uno usando Yoast y otro con código a medida.

Redirigir páginas de adjuntos con Yoast SEO

La primera opción es usar el plugin Yoast SEO y a priori su limitación es que te obliga a usarlo. Pero claro, es bastante popular así que bueno, es la opción más sencilla para todos los que lo usamos.

Si tienes instalado el plugin ya tienes el trabajo hecho: por defecto Yoast «desactiva» las páginas adjuntas redirigiéndolas a la propia imagen o medio, nada más instalarse.

Pero bueno, si tienes dudas de si está marcada la opción correspondiente tienes que ir a:re

  • Dentro del escritorio WordPress accedes a Yoast SEO
  • Opción «Ajustes»

En la pantalla que aparece, a la izquierda eliges «Avanzado» y en el submenú que se abre «Páginas de medios» y te aseguras que lo tienes así como aparece aquí:

Redirigir usando código

Aquí tenemos toda la libertad del mundo para hacer lo que queramos, pero de todas las opciones que hay: redirigir al contenido donde aparece la imagen, redirigir al fichero como tal, redirigir a la portada… la que más me gusta es redirigir a donde aparece la imagen, el documento… lo que sea, para así dirigir al potencial usuario que va a visualizar el contenido, a que lo visualice en su contexto.

En vuestro plugin de funciones, functions.php del tema hijo o con el método que queráis, pero que no sea con un plugin de snippets por favor, solo tenéis que agregar esto.

add_action( 'template_redirect', function(){   
    if ( is_attachment() ) {
        global $post;
        if ( is_a( $post, 'WP_Post' ) && ! empty( $post->post_parent ) ) {
            $redirect = esc_url( get_permalink( $post->post_parent ) );
        } else {
            $redirect = esc_url( home_url( '/' ) );
        }
        if ( wp_safe_redirect( $redirect, 301 ) ) {
            exit;
        }
    }
});

Básicamente lo que hace es ver si es un adjunto, una vista de adjunto y en tal caso trata de buscar el contenido donde aparece, si no lo encuentra, te lleva a la portada. Y así de sencillo.

Nota: Hay una valoración incrustada en esta entrada, por favor, visita esta entrada para valorarla.

Almacenamos las IPs desde la que se envían las valoraciones para evitar fraudes

Francisco Javier Carazo Gil

Entradas recientes

RedSys para Contact Form 7 ahora acepta preautorizaciones

RedSys aparte de los pagos normales, llamados autorizaciones, acepta una variedad de operaciones: desde autorizaciones…

hace % días

Ordenar productos de forma diferente por cada categoría en WooCommerce

WooCommerce permite ordenar los productos de una forma nativa, para poder presentar primero los que…

hace % días

Evitar que se instalen los temas por defecto de WordPress cada vez que actualizas el núcleo

Cada vez que hay una actualización grande del núcleo WordPress, por defecto WordPress te instala…

hace % días

Pantalla LCD: ¿qué es?

Una pantalla LCD es una pantalla delgada y hecha de cristal líquido. Se usa en…

hace % días

Flujos de pago con Gravity Flow y RedSys

De todos los plugins que existen para Gravity Forms, que son numerosos porque la propia…

hace % días

CMS, ¿Qué es y qué ventajas tiene?

Un CMS, como WordPress, facilita la creación y gestión de contenido en la web, sin…

hace % días