Todos los archivos que subes usando la galería multimedia, adicional al archivo físico que se guarda en la carpeta wp-content/uploads, también se guarda un registro en la base de datos, es decir el adjunto es tratado como un Custom Post Type llamado attachment.
Generalidades
Los adjuntos al ser tratados como Custom Post Type, generan por defecto una url que puede ser visualizada en el front-end del sitio.
Si consultas alguna imagen desde el menú de medios del backend de tu WordPress, verás que aparece un enlace, tal como se muestra a continuación:

La url generada tendrá la siguiente forma:
http://midominio.com/mi-imagen/
Si la imagen esta asociada a una entrada (como imagen destacada), por ejemplo con la entrada Hola Mundo, entonces la url generada tendrá la siguiente forma:
http://midominio.com/hola-mundo/mi-imagen/
Si accedes a este enlace verás que puedes ver la imagen como si fuese una entrada en el front-end de tu sitio:

Redireccionando la página de adjuntos por código
Estas urls de páginas para cada imagen adjunta en la mayoría de los casos no serán necesarias, especialmente si estas optimizando el SEO de tu sitio, por lo que puedes evaluar redireccionar estas urls, puedes usar el siguiente código:
add_action( 'template_redirect', 'dcms_redirect_attachment_page' );
function dcms_redirect_attachment_page() {
if ( is_attachment() ) {
global $post;
if ( $post && $post->post_parent ) {
wp_redirect( esc_url( get_permalink( $post->post_parent ) ), 301 );
exit;
} else {
wp_redirect( esc_url( home_url( '/' ) ), 301 );
exit;
}
}
}
En el código anterior:
- Usamos el hook template_redirect que hace referencia a la función dcms_redirect_attachment_page
- Dentro de la función comprobamos si lo que se mostrará es un attachment
- Si lo es comprobamos si el attachment esta asociado a alguna entrada, de ser así redireccionamos a la entrada
- Si no esta relacionado a una entrada redirigimos al home del sitio
- En cada redirección es necesario terminar con exit
¿Usas el plugin Yoast SEO?
Si tienes el plugin de Yoast SEO, no será necesario hacer esto por código, por defecto Yoast SEO ya hace la redirección. Lo puedes comprobar desde: SEO > Apariencia en el buscador > Medios > Redirigir las URL de adjuntos a los propios adjuntos.

Conclusión
Las urls que se generan por las páginas de adjuntos pueden ser innecesarias para tu sitio Web, hemos visto que puedes redirigir estas urls de manera simple a través de código, o si ya usas el plugin Yoast SEO asegurarte de que la configuración de redirección de urls de adjuntos se encuentre activa.
¿Aún con dudas?, en el siguiente video se detalla los puntos anteriores
muy bueno, me ha sido de utilidad. Gracias!
muy buenas tardes muy util no lo sabia!!! y ademas en la caja de comentarios me aparecieron muchos spam estoy borrandolos en este momento imagino que con ese redireccionamiento no podran colocar mas comentarios no deseados
Hola, si los comentarios son en las páginas de adjuntos, simplemente ya no será accesible estas páginas.
muy útil y conciso, gracias
Muchas gracias por tu aporte, me ha funcionado perfectamente
Que bueno 🙂