WordPress es una potencia, pero sus valores predeterminados de “talla única” significan que a menudo viene con equipaje que la mayoria de los proyectos modernos no necesitan. A lo largo de los años, he refinado un conjunto específico de snippets para eliminar el exceso sin comprometer la experiencia central.
Descubre más sobre servicios de desarrollo WordPress en WPPoland.
Esta guía no es simplemente una lista de cosas para eliminar; es un enfoque estrategico hacia el rendimiento. Esta inspirada en la excelente lista de Terence Eden, que he combinado con mis propias soluciones probadas en producción.
El caso para podar
Por que molestarse con estos pequeños scripts? Porque se acumulan. Cada linea innecesaria es un potencial conflicto, un pequeño retraso de renderizado o un byte desperdiciado.
Lo que estamos apuntando:
- Tamaño del DOM - Eliminando estilos inline no usados.
- Overhead HTTP - Desencolando scripts que no deberian estar ahi.
- Superficie de seguridad - Deshabilitando protocolos legacy como XML-RPC.
- Core Web Vitals - Impactando directamente LCP y CLS al eliminar elementos que bloquean el renderizado.
Usa precaucion: No toda “hinchazón” es inutil. Si dependes del estilo específico del editor clásico o de emojis integrados para navegadores antiguos, algunas de estas correcciones pueden no ser para ti. Prueba en staging primero.
El script completo de debloating
Agrega lo siguiente al archivo functions.php de tu tema. Cada sección esta comentada con explicaciones y enlaces a fuentes.
1. Eliminar estilos de tema clásico
WordPress agrega “classic-theme-styles” incluso en temas personalizados. Eliminalos:
// Eliminar tema clasico obligatorio.
function disable_classic_theme_styles() {
wp_deregister_style( "classic-theme-styles" );
wp_dequeue_style( "classic-theme-styles" );
}
add_action( "wp_enqueue_scripts", "disable_classic_theme_styles" );
2. Eliminar soporte de emojis
WordPress convierte emojis de texto a imágenes y agrega scripts de deteccion. Si tus visitantes tienen soporte de emojis (lo cual tienen todos los navegadores modernos), esto es innecesario:
// Eliminar WP Emoji.
remove_action( "wp_head", "print_emoji_detection_script", 7 );
remove_action( "wp_print_styles", "print_emoji_styles" );
remove_action( "admin_print_scripts", "print_emoji_detection_script" );
remove_action( "admin_print_styles", "print_emoji_styles" );
add_filter( "emoji_svg_url", "__return_false" );
// Detener reemplazo de emojis con imagenes en feeds RSS / Atom
remove_filter( "the_content_feed", "wp_staticize_emoji" );
remove_filter( "comment_text_rss", "wp_staticize_emoji" );
3. Deshabilitar formato automático de texto
WordPress “texturiza” tu contenido, convirtiendo comillas rectas en rizadas, guiones dobles en em-dashes, etc. Esto puede romper ejemplos de código y no siempre es deseado:
// Eliminar formato automático.
remove_filter( "the_content", "wptexturize" );
remove_filter( "the_excerpt", "wptexturize" );
remove_filter( "comment_text", "wptexturize" );
remove_filter( "the_title", "wptexturize" );
// Mas cosas de formato.
add_action("init", function() {
remove_filter( "the_content", "convert_smilies", 20 );
foreach ( array( "the_content", "the_title", "wp_title", "document_title" ) as $filter ) {
remove_filter( $filter, "capital_P_dangit", 11 );
}
remove_filter( "comment_text", "capital_P_dangit", 31 );
remove_filter( "the_content", "do_blocks", 9 );
}, 11);
4. Eliminar estilos y scripts Gutenberg
Si usas un tema personalizado y no dependes de los estilos frontend de Gutenberg, eliminalos:
// Eliminar estilos Gutenberg.
remove_action( "wp_enqueue_scripts", "wp_enqueue_global_styles" );
// Eliminar widgets de edicion Gutenberg.
add_filter( "gutenberg_use_widgets_block_editor", "__return_false" );
add_filter( "use_widgets_block_editor", "__return_false" );
// Eliminar CSS de Block Library de Gutenberg del frontend.
function remove_wp_block_library_css() {
wp_dequeue_style( "wp-block-library" );
wp_dequeue_style( "wp-block-library-theme" );
wp_dequeue_style( "wp-components" );
}
add_action( "wp_enqueue_scripts", "remove_wp_block_library_css", 100 );
5. Eliminar meta tags del header
Limpia tu sección <head> eliminando meta tags innecesarios:
// Eliminar shortlink.
remove_action( "wp_head", "wp_shortlink_wp_head" );
// Eliminar RSD.
remove_action( "wp_head", "rsd_link" );
// Eliminar feed links extra.
add_filter( "feed_links_show_comments_feed", "__return_false" );
add_filter( "feed_links_show_posts_feed", "__return_false" );
// Eliminar enlace api.w.org.
remove_action( "wp_head", "rest_output_link_wp_head" );
remove_action( "template_redirect", "rest_output_link_header", 11, 0 );
6. Eliminar mejoras de imagen
WordPress agrega atributos sizes y otras mejoras a las imágenes. Si las manejas tu mismo, eliminalas:
// Eliminar tamaño de imagen forzado por WordPress
add_filter( "wp_img_tag_add_auto_sizes", "__return_false" );
// Eliminar mejoras de <img>
remove_filter( "the_content", "wp_filter_content_tags", 12 );
// Dejar de reescribir URLs http:// para el dominio principal.
remove_filter( "the_content", "wp_replace_insecure_home_url", 10 );
// Eliminar la cosa de adjuntos
remove_filter( "the_content", "prepend_attachment" );
// Eliminar el filtro de bloques
remove_filter( "the_content", "apply_block_hooks_to_content_from_post_object", 8 );
7. Eliminar verificación de navegador y otras funciones admin
// Eliminar verificación de navegador del dashboard de Admin.
if ( !empty( $_SERVER["HTTP_USER_AGENT"] ) ) {
add_filter( "pre_site_transient_browser_" . md5( $_SERVER["HTTP_USER_AGENT"] ), "__return_null" );
}
// Eliminar hovercards en enlaces de comentarios en area admin.
add_filter( "akismet_enable_mshots", "__return_false" );
Mis recomendaciónes adicionales
Mas alla de las técnicas anteriores, aquí estan mis propias soluciones para optimización adicional:
8. Deshabilitar XML-RPC
Si no usas apps externas para publicar en WordPress, deshabilita XML-RPC para mejorar la seguridad:
// Deshabilitar XML-RPC completamente
add_filter( 'xmlrpc_enabled', '__return_false' );
// Eliminar enlace XML-RPC del head
remove_action( 'wp_head', 'rsd_link' );
9. Eliminar jQuery Migrate
Los temas y plugins modernos de WordPress raramente necesitan jQuery Migrate. Si tu sitio funciona sin el, eliminalo:
function remove_jquery_migrate( $scripts ) {
if ( ! is_admin() && isset( $scripts->registered['jquery'] ) ) {
$script = $scripts->registered['jquery'];
if ( $script->deps ) {
$script->deps = array_diff( $script->deps, array( 'jquery-migrate' ) );
}
}
}
add_action( 'wp_default_scripts', 'remove_jquery_migrate' );
10. Deshabilitar oEmbed
Si no incrustas contenido de otros sitios (YouTube, Twitter, etc.), deshabilita oEmbed:
// Eliminar enlaces de descubrimiento oEmbed
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
// Eliminar endpoint REST API de oEmbed
remove_action( 'rest_api_init', 'wp_oembed_register_route' );
// Deshabilitar auto descubrimiento oEmbed
add_filter( 'embed_oembed_discover', '__return_false' );
11. Diferir la carga de JavaScript
Agrega defer a scripts no críticos para mejor rendimiento:
function add_defer_attribute( $tag, $handle ) {
// Scripts que NO deben diferirse
$scripts_to_not_defer = array( 'jquery-core' );
if ( in_array( $handle, $scripts_to_not_defer ) ) {
return $tag;
}
return str_replace( ' src', ' defer src', $tag );
}
add_filter( 'script_loader_tag', 'add_defer_attribute', 10, 2 );
Midiendo el impacto
Despues de implementar estos cambios, prueba tu sitio usando:
- Google PageSpeed Insights - Verifica tus Core Web Vitals
- GTmetrix - Análisis detallado de cascada
- WebPageTest - Multiples ubicaciones de prueba y velocidades de conexión
Deberias ver:
- Peso de página reducido (menos bytes CSS/JS)
- Menos solicitudes HTTP
- Mejor Time to First Byte (TTFB)
- Mejor Largest Contentful Paint (LCP)
Conclusion
El enfoque de WordPress de “baterias incluidas” es genial para principiantes, pero los desarrolladores que buscan maximo rendimiento necesitan podar el exceso. Las técnicas en esta guía, inspiradas en el excelente script de debloating de Terence Eden, te ayudaran a lograr una instalación WordPress mas ligera y rápida.
Recuerda: menos es mas. Cada linea de código que eliminas es un punto de fallo potencial menos, un byte menos para descargar y un paso más cerca de una puntuacion PageSpeed perfecta.
Explora nuestros servicios de optimización de velocidad WordPress para llevar el rendimiento de tu sitio al siguiente nivel.

