Oferta SiteGround Black Friday

Cómo desactivar las páginas de adjuntos de WordPress

Cuando subes un archivo de medios a WordPress, ya sea  una imagen, un vídeo, documento, lo que sea, se crea una página propia de adjunto, con su propia URL, como cualquier otra página o entrada.

Estas páginas de adjuntos se publican por defecto, se puede acceder a ellas públicamente, son visibles sin restricción alguna, aunque no hayas adjuntado el medio a ninguna entrada o página.

Fíjate en el vídeo siguiente, es una página con todo, su barra lateral, el menu, cabecera, pie de página, enlaces de navegación, hasta formulario de comentarios.

Y no solo eso, sino que son páginas que por defecto indexan en buscadores, así que si los bots de Google u otros buscadores rastrean URLs en tu web, aunque por defecto no se muestran en el mapa del sitio por defecto de WordPress, encontrarán todas esas URLs y las indexarán, con el problema de que son páginas de las conocidas como soft 404 o thin content, o sea, con poco contenido, poco relevantes, además de que aumenta la cantidad de URLs totales de tu sitio, con URLs que nada aportan al SEO de tu web.

Por supuesto, luego está el hecho de que seguramente tampoco querrás que haya por ahí URLs indexadas con imágenes o vídeos que, por lo que sea, puede que no quieras que aparezcan en los buscadores y las vea cualquiera, pues ya te digo que se crea URL aunque no estén adjuntos los medios a ninguna publicación.

¿Estamos de acuerdo en que es un problema?

Es algo que debería eliminarse de WordPress, por sus implicaciones negativas tanto de SEO como de seguridad/privacidad, pero como no parece que prosperen las peticiones al respecto, vamos a ponerle solución.

Desactivar los enlaces a los adjuntos

Uno modo radical es desactivar totalmente los enlaces a los adjuntos.

Solo tienes que añadir el siguiente código al archivo functions.php del tema activo (hijo, acuérdate) o a tu plugin de personalizaciones:

/* Desactivar enlaces a adjuntos */
function cleanup_attachment_link( $link ) {
return;
}
add_filter( 'attachment_link', 'cleanup_attachment_link' );

Cuando guardes los cambios se desactivarán totalmente los enlaces a los adjuntos, tanto en la pantalla de la biblioteca de medios como incluso si eliges enlazar una imagen a su página de adjuntos.

¡Radical!

Redirigir la página del adjunto al archivo de imagen (con código)

Una posibles solución, no sé si más elegante, es crear automáticamente una redirección permanente de la página del adjunto al archivo en cuestión, de este modo no se crea ninguna página indexable, solo existe la imagen/vídeo/documento con su ruta completa del servidor.

Como antes, tendremos que añadir un código, en este caso este:

/* Redirigir páginas de adjuntos al archivo */
add_action( 'template_redirect', 'ayudawp_redirigir_adjunto_archivo', 10 );
function ayudawp_redirigir_adjunto_archivo() {
if( is_attachment() ) {
$url = wp_get_attachment_url( get_queried_object_id() );
wp_redirect( $url, 301 );
}
return;
}

Con esta solución, además, evitamos penalizaciones de SEO ya que no quedan URLs con error 404 sino que llevan a una imagen con una redirección permanente del tipo 301.

Redirigir la página del adjunto al archivo de imagen (con plugins de SEO)

Si no te atreves/animas con los códigos no hay problema, pues la mayoría de los plugins SEO actuales también utilizan esta técnica de redirección de adjuntos al archivo para evitar el problema de indexado.

Vamos a ver dónde está el ajuste correspondiente en los principales plugins de SEO…

Yoast SEO

En el plugin Yoast SEO es un ajuste que viene activo por defecto si acabas de instalarlo, pero por si acaso, comprueba si tienes activa la redirección en SEO → Apariencia en el buscador → Medios.

Rank Math

Este plugin de SEO hace algo distinto, pues además de no incluir ningún ajuste personalizable por el usuario, no puedes decidir, por defecto redirige la URL de los adjuntos a la URL de la entrada en la que está insertado el adjunto.

¿Y qué pasa en el caso de URLs de medios no adjuntos a ninguna página o entrada? pues que la redirección la hace a la portada de la web.

Creo que no es la solución más acertada, pero afortunadamente puedes usar un filtro, que deberás añadir, como siempre, al archivo functions.php del tema activo o a tu plugin de personalizaciones varias, que cambiará este comportamiento, al del resto de plugins, redirigiendo la URL del adjunto al medio.

El filtro es este:

add_filter( 'rank_math/frontend/attachment/redirect_url', function( $redirect, $post ) { return $post->guid; }, 10, 2 );

All in One SEO

En este veterano plugin, recientemente renovado, vamos a encontrar todas las posibilidades de los dos anteriores.

En la página de ajustes situada en All in One SEO → Apariencia en la búsqueda → Medios → Adjuntos, encontrarás un selector en el que elegir si…

  • No haces redirección (Inactivo)
  • Haces redirección 301 al medio (Adjunto)
  • Haces redirección 301 a la publicación con el adjunto (Adjunto padre)

Por descontado que, para empezar, me parece mala idea que no venga activa la redirección (al medio) por defecto, pues este comportamiento de WordPress por defecto es malo para el SEO, y un buen plugin de SEO debería contemplarlo y, por defecto, como hace Yoast, crear la redirección.

Eso sí, me gusta que ofrezca opciones, porque siempre es bueno educar al usuario dándole opciones.

Y también me parece apropiado que, en el caso de dejar inactiva la redirección, al menos puedas marcar para que no se indexen los adjuntos, como te apunto en la captura de arriba.

¿Qué es mejor, redirigir al medio o a la publicación?

Por terminar, y si tienes dudas sobre el mejor método, siempre es mejor redirigir al medio, al archivo, pues funciona en todos los casos, no quedando ninguna URL de adjunto huérfana indexando ni montones de redirecciones a la portada como hace Rank Math.

Así que mi consejo es que uses o el código para redirigir al medio o el método de Yoast SEO, activo por defecto, o actives la redirección de «Adjunto» de All in One SEO.

Lo que no debes dejar en ningún caso es activa la creación de las URLs de adjuntos sin aplicar medida alguna, sea la que sea.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 4.6 / 5. Total de votos: 10

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

Sobre el autor

4 comentarios en “Cómo desactivar las páginas de adjuntos de WordPress”

  1. Que buena guía, justo lo que estaba buscando desde hace tiempo, pero voy dejando pasar el tiempo.
    Tu como siempre tienes la respuesta para todo.
    Muchas gracias, es un placer recibir las dosis diaria de WordPress y cada día aprender algo nuevo.
    Un Abrazo

  2. Buena guía, yo normalmente uso la redirección al archivo.

    EXTRA: al subir un archivo se crea su slug basado en el nombre del archivo que puede ser justo el que necesitas para una de tus entradas o páginas y no puedes utilizarlo. Para evitarlo uso este código que crea un slug del tipo «media-46346456ed3de».

    // Attachment unique slugs (pervent post conflicts)
    function creame_unique_attachment_slug($slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug) {
        return 'attachment' == $post_type ? uniqid('media-') : $slug;
    }
    add_filter('wp_unique_post_slug', 'creame_unique_attachment_slug', 10, 6);
  3. Excelente aportación, la verdad es que me había olvidado lo simple que era haciéndolo con el Yoast, gracias por siempre tener buen info disponible. un saludo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio