{"id":2771,"date":"2024-12-13T19:43:44","date_gmt":"2024-12-13T10:43:44","guid":{"rendered":"https:\/\/raybeam.jp\/?p=2771"},"modified":"2025-01-12T23:18:10","modified_gmt":"2025-01-12T14:18:10","slug":"rendimiento-de-wordpress","status":"publish","type":"post","link":"https:\/\/raybeam.jp\/es\/wordpress-performance\/","title":{"rendered":"Estrategia de rendimiento de WordPress"},"content":{"rendered":"<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"has-drop-cap wp-block-paragraph\">A estas alturas, es probable que te hayas topado con innumerables art\u00edculos sobre optimizaciones del rendimiento de WordPress, muchos de ellos con los mismos consejos de siempre. Puede ser frustrante tropezar continuamente con las mismas recomendaciones ineficaces sin hacer ning\u00fan progreso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si te sientes abrumado y sin opciones, los siguientes pasos pueden proporcionarte una salida. Se trata de las mismas estrategias que aplicamos por defecto en todos los sitios que alojamos, abarcando nuestro enfoque integral de la optimizaci\u00f3n del rendimiento. Aunque profundizamos en los aspectos espec\u00edficos de nuestra infraestructura, estos principios pueden adaptarse a pr\u00e1cticamente cualquier entorno de alojamiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una regla que solemos seguir es que no es necesario empezar optimizando las cosas. Por ejemplo, en el caso de Google Fonts, si tienes que hacer tanto trabajo para que funcionen, quiz\u00e1 deber\u00edas plantearte si realmente las necesitas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con este esp\u00edritu, empezaremos por desactivar varias funciones de WordPress que encierran su verdadero potencial. <\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 id=\"0-wordpress-reset\" class=\"wp-block-heading\"><strong>0. Reinicio de WordPress:<\/strong> <\/h2>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">\n<h3 id=\"1-disable-wp-cron\" class=\"wp-block-heading\">1. Desactivar WP Cron.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress no dispone de un cron propiamente dicho, como el que tienes en tu servidor Linux, sino que utiliza una funci\u00f3n que se activa cada vez que se produce una incidencia en el servidor web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una soluci\u00f3n mucho mejor es utilizar un servicio externo para activar el cron de su instalaci\u00f3n de WordPress. Aqu\u00ed en Raybeam usamos el incre\u00edble <a href=\"https:\/\/cron-job.org\/\">cron-job.org<\/a> disparando trabajos cada 5 minutos. Los procesos activados por cron pueden necesitar alg\u00fan tiempo para concluir, por lo que debe haber un espacio razonable entre ellos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La desactivaci\u00f3n de WP Cron se realiza insertando la siguiente constante en <em>wp-config.php<\/em> file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>define( 'DISABLE_WP_CRON', true );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Es importante comprobar si tu cron externo se est\u00e1 ejecutando realmente y un buen plugin para hacerlo es <a href=\"https:\/\/wordpress.org\/plugins\/cron-logger\/\">Registrador Cron<\/a>.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">\n<h3 id=\"2-disable-or-limit-post-revisions\" class=\"wp-block-heading\">2. Desactivar o limitar las revisiones posteriores<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Post Revisions guarda cada cambio que haces en cada entrada de tu WordPress, y esto puede acumularse claramente en tu base de datos. Aj\u00fastalo a un valor con el que puedas trabajar c\u00f3modamente o desact\u00edvalo con la siguiente constante en <em>wp-config.php<\/em> file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>define( 'WP_POST_REVISIONS', '0' );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n puede establecer revisiones ilimitadas con <em>\u201c-1\u201d<\/em> y configurarlos -con la ayuda de un plugin- para que se eliminen autom\u00e1ticamente despu\u00e9s de un tiempo determinado, algo de lo que hablaremos m\u00e1s adelante.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">\n<h3 id=\"3-disable-trackbacks-and-pingbacks\" class=\"wp-block-heading\">3. Desactivar Trackbacks y Pingbacks<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Los Pingbacks son una molestia y crean un desorden innecesario en su instalaci\u00f3n. Puede desactivarlos en la configuraci\u00f3n de Discusi\u00f3n del Dashboard y tambi\u00e9n a\u00f1adiendo el siguiente c\u00f3digo a un archivo <em>funciones.php<\/em> en su tema o un mu-plugin personalizado para desactivar los auto pingbacks:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function wpsites_disable_self_pingbacks( &amp;$links ) {\n  foreach ( $links as $l =&gt; $link )\n        if ( 0 === strpos( $link, get_option( 'home' ) ) )\n            unset($links[$l]);\n}\n\nadd_action( 'pre_ping', 'wpsites_disable_self_pingbacks' );<\/code><\/pre>\n\n\n\n<p class=\"is-style-text-annotation is-style-text-annotation--1 wp-block-paragraph\"><a href=\"https:\/\/kinsta.com\/learn\/speed-up-wordpress\/#wordpress-settings\">Fragmento de c\u00f3digo proporcionado por Kinsta.<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">\n<h3 id=\"4-disable-capital-p\" class=\"wp-block-heading\">4. Desactivar Capital P<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Existe un curioso -por no decir otra cosa- filtro en WordPress que impide escribir la palabra <em>WordPress<\/em> without a capital P, like so: WordPress<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puede eliminarlo con la siguiente funci\u00f3n: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>remove_filter( 'el_contenido', 'capital_P_dangit', 11 );\nremove_filter( 'the_title', 'capital_P_dangit', 11 );\nremove_filter( 'wp_title', 'capital_P_dangit', 11 );\nremove_filter( 'comment_text', 'capital_P_dangit', 31 );\nremove_filter( 'widget_text_content', 'capital_P_dangit', 11 );<\/code><\/pre>\n\n\n\n<p class=\"is-style-text-annotation is-style-text-annotation--2 wp-block-paragraph\"><a href=\"https:\/\/github.com\/ClassicPress\/ClassicPress-v1\/issues\/196\">Fragmento de c\u00f3digo proporcionado por ClassicPress.<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y puedes sustituir la funci\u00f3n simplemente escribiendo <em>WordPress<\/em> correctamente.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">\n<h3 id=\"5-disable-xmlrpc\" class=\"wp-block-heading\">5. Desactivar XML-RPC<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">XML-RPC es una funci\u00f3n casi obsoleta en WordPress y a menudo se recomienda desactivarla, ya que puede mejorar el rendimiento de tu sitio y, lo que es m\u00e1s importante, la seguridad, ya que puede ser un vector de ataque potencial para intentos de fuerza bruta. A menos que necesite espec\u00edficamente la funcionalidad proporcionada, como para aplicaciones m\u00f3viles o publicaci\u00f3n remota, puede desactivarla con seguridad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hay varias maneras de desactivarlo, a trav\u00e9s de Apache, Nginx o PHP, y la mayor\u00eda de los plugins relacionados con la seguridad y el inicio de sesi\u00f3n se ocupan de ello. El m\u00e9todo m\u00e1s sencillo es con este one-liner proporcionado por <a href=\"https:\/\/perishablepress.com\/disable-wordpress-xml-rpc\/\">Jeff Star de Perishable Press<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>add_filter('xmlrpc_enabled', '__return_false');<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En el art\u00edculo tambi\u00e9n se detalla c\u00f3mo se carga realmente XML-RPC y m\u00e1s formas de desactivarlo, por lo que te recomiendo que consultes <a href=\"https:\/\/perishablepress.com\/disable-wordpress-xml-rpc\/\">leerlo<\/a>. Tambi\u00e9n se recomienda desactivar X-Pingbacks:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Desactivar cabecera X-Pingback\nfunction shapeSpace_disable_x_pingback($headers) {\n\n\tunset ($headers['X-Pingback']);\n\treturn $headers;\n\n}\nadd_filter('wp_headers', 'shapeSpace_disable_x_pingback');<\/code><\/pre>\n\n\n\n<p class=\"is-style-text-annotation is-style-text-annotation--3 wp-block-paragraph\"><a href=\"https:\/\/perishablepress.com\/disable-wordpress-xml-rpc\/\">Fragmentos de c\u00f3digo proporcionados por Perishable Press.<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">\n<h3 id=\"6-disable-dashicons\" class=\"wp-block-heading\">6. Desactivar Dashicons<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Dashicons son las fuentes de iconos utilizados por WordPress Dashboard, y se cargan en el frontend, incluso cuando no se utilizan. Desact\u00edvalos con lo siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ quitar dashicons\nfunction wpdocs_dequeue_dashicon() {\n\tif (current_user_can( 'update_core' )) {\n\t    return;\n\t}\n\twp_deregister_style('dashicons');\n}\nadd_action( 'wp_enqueue_scripts', 'wpdocs_dequeue_dashicon' );<\/code><\/pre>\n\n\n\n<p class=\"is-style-text-annotation is-style-text-annotation--4 wp-block-paragraph\"><a href=\"https:\/\/fatlabwebsupport.com\/blog\/remove-dashicons-min-css-from-front-end-for-non-administrators\/\">Fragmento de c\u00f3digo proporcionado por Fatlab.<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">\n<h3 id=\"7-disable-emojis\" class=\"wp-block-heading\">7. Desactivar Emojis<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque los emojis s\u00f3lo a\u00f1aden una carga insignificante al tama\u00f1o de las p\u00e1ginas, decidimos eliminarlos por una cuesti\u00f3n de principios.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\n * Disable the emoji's\n *\/\nfunction disable_emojis() {\n remove_action( 'wp_head', 'print_emoji_detection_script', 7 );\n remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );\n remove_action( 'wp_print_styles', 'print_emoji_styles' );\n remove_action( 'admin_print_styles', 'print_emoji_styles' ); \n remove_filter( 'the_content_feed', 'wp_staticize_emoji' );\n remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); \n remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );\n add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );\n add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 );\n}\nadd_action( 'init', 'disable_emojis' );\n\n\/**\n * Filter function used to remove the tinymce emoji plugin.\n * \n * @param array $plugins \n * @return array Difference betwen the two arrays\n *\/\nfunction disable_emojis_tinymce( $plugins ) {\n if ( is_array( $plugins ) ) {\n return array_diff( $plugins, array( 'wpemoji' ) );\n } else {\n return array();\n }\n}\n\n\/**\n * Remove emoji CDN hostname from DNS prefetching hints.\n *\n * @param array $urls URLs to print for resource hints.\n * @param string $relation_type The relation type the URLs are printed for.\n * @return array Difference betwen the two arrays.\n *\/\nfunction disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {\n if ( 'dns-prefetch' == $relation_type ) {\n \/** This filter is documented in wp-includes\/formatting.php *\/\n $emoji_svg_url = apply_filters( 'emoji_svg_url', 'https:\/\/s.w.org\/images\/core\/emoji\/2\/svg\/' );\n\n$urls = array_diff( $urls, array( $emoji_svg_url ) );\n }\n\nreturn $urls;\n}<\/code><\/pre>\n\n\n\n<p class=\"is-style-text-annotation is-style-text-annotation--5 wp-block-paragraph\"><a href=\"https:\/\/kinsta.com\/knowledgebase\/disable-emojis-wordpress\/#disable-emojis-co\">Fragmento de c\u00f3digo proporcionado por Kinsta.<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 id=\"8-disable-embeds\" class=\"wp-block-heading\">8. Desactivar incrustaciones<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las incrustaciones autom\u00e1ticas pueden ser \u00fatiles, pero existen alternativas m\u00e1s eficaces. Elim\u00ednelas utilizando lo siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function disable_embeds_code_init() {\n\n \/\/ Remove the REST API endpoint.\n remove_action( 'rest_api_init', 'wp_oembed_register_route' );\n\n \/\/ Turn off oEmbed auto discovery.\n add_filter( 'embed_oembed_discover', '__return_false' );\n\n \/\/ Don't filter oEmbed results.\n remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );\n\n \/\/ Remove oEmbed discovery links.\n remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );\n\n \/\/ Remove oEmbed-specific JavaScript from the front-end and back-end.\n remove_action( 'wp_head', 'wp_oembed_add_host_js' );\n add_filter( 'tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin' );\n\n \/\/ Remove all embeds rewrite rules.\n add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );\n\n \/\/ Remove filter of the oEmbed result before any HTTP requests are made.\n remove_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10 );\n}\n\nadd_action( 'init', 'disable_embeds_code_init', 9999 );\n\nfunction disable_embeds_tiny_mce_plugin($plugins) {\n    return array_diff($plugins, array('wpembed'));\n}\n\nfunction disable_embeds_rewrites($rules) {\n    foreach($rules as $rule =&gt; $rewrite) {\n        if(false !== strpos($rewrite, 'embed=true')) {\n            unset($rules&#91;$rule]);\n        }\n    }\n    return $rules;\n}<\/code><\/pre>\n\n\n\n<p class=\"is-style-text-annotation is-style-text-annotation--6 wp-block-paragraph\"><a href=\"https:\/\/kinsta.com\/knowledgebase\/disable-embeds-wordpress\/#disable-embeds-code\">Fragmento de c\u00f3digo proporcionado por Kinsta<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">\n<h3 id=\"9-control-heartbeat\" class=\"wp-block-heading\">9. Control de latidos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Heartbeat proporciona importantes funcionalidades a WordPress, como el autoguardado de entradas y el bloqueo de ediciones. Limitarlo a 5 minutos -o 300 segundos- puede tener un impacto similar al de deshabilitar la funcionalidad:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function wb_set_heartbeat_time_interval($settings) {\n $settings['interval']=300;\n return $settings;\n}\nadd_filter('heartbeat_settings', 'wb_set_heartbeat_time_interval');<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aplica el mismo intervalo a los autoguardados con esta constante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>define( 'AUTOSAVE_INTERVAL', 300 );<\/code><\/pre>\n\n\n\n<p class=\"is-style-text-annotation is-style-text-annotation--7 wp-block-paragraph\"><a href=\"https:\/\/solidwp.com\/blog\/how-to-manage-the-wordpress-heartbeat-api\/\">Fragmentos de c\u00f3digo proporcionados por SolidWP<\/a><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\" style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20)\">\n<h3 id=\"10-restart-with-a-cleaner-header\" class=\"wp-block-heading\">10. Reiniciar con una cabecera m\u00e1s limpia<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress ha acumulado un mont\u00f3n de cosas a lo largo de los a\u00f1os, tratando de abrazar todas las nuevas tecnolog\u00edas, y algunos de ellos se han quedado obsoletos o rara vez se utilizan. Pero todav\u00eda se cargan en cada p\u00e1gina, en el lugar m\u00e1s importante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta es una lista completa y segura.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Eliminar enlace rsd.\nremove_action( 'wp_head', 'rsd_link' );\n\n\/\/ Eliminar la etiqueta generador de WordPress.\nremove_action( 'wp_head', 'wp_generator' );\n\n\/\/ Eliminar los enlaces RSS.\nremove_action( 'wp_head', 'feed_links', 2 );\nremove_action( 'wp_head', 'feed_links_extra', 3 );\n\n\/\/ Elimina el enlace al archivo de manifiesto de Windows Live Writer.\nremove_action( 'wp_head', 'wlwmanifest_link' );\n\n\/\/ Elimina los enlaces de post adyacentes.\nremove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 );\nremove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );\n\n\/\/ Elimina el enlace corto de WordPress para tu entrada.\nremove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );<\/code><\/pre>\n\n\n\n<p class=\"is-style-text-annotation is-style-text-annotation--8 wp-block-paragraph\"><a href=\"https:\/\/www.wpexplorer.com\/clean-wordpress-head\/\">Fragmentos de c\u00f3digo proporcionados por WPExplorer<\/a><\/p>\n<\/div>\n\n\n\n<h2 id=\"05-improving-wordpress\" class=\"wp-block-heading\">0.5: Mejora de WordPress<\/h2>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 id=\"1-dont-be-afraid-of-plugins\" class=\"wp-block-heading\">1. No tenga miedo a los plugins<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En Raybeam, no tememos a los plugins. Son la forma m\u00e1s f\u00e1cil de a\u00f1adir funciones avanzadas a WordPress en comparaci\u00f3n con otras plataformas CMS. El n\u00famero de plugins que utilices no es necesariamente el problema, sino su calidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los plugins deben ser espec\u00edficos, lo ideal es que hagan una sola cosa y la hagan excepcionalmente bien. Evita los plugins \"todo en uno\" que prometen hacerlo todo, ya que a menudo se quedan cortos y pueden saturar tu instalaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En cuanto al rendimiento, no existe ning\u00fan plugin m\u00e1gico que pueda solucionar al instante todos los problemas de velocidad de WordPress. En su lugar, es necesario entender las causas comunes de las ralentizaciones, tanto en el frontend como en el panel de control de administraci\u00f3n, y abordarlas de forma individual. Afortunadamente, hemos identificado algunos culpables comunes.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 id=\"2-teach-your-plugins-some-manner-preventing-them-from-filling-options-autoload\" class=\"wp-block-heading\">2. Ense\u00f1e a sus plugins de alguna manera, evitando que se llenen Opciones Autoload<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Esta es probablemente la raz\u00f3n n\u00famero uno para un pobre rendimiento del dashboard. Los plugins tienen configuraciones y les gusta que se carguen r\u00e1pido, as\u00ed que llenan la tabla 'wp_options' con datos y la configuran para que se cargue en cada p\u00e1gina. Esto puede empeorar cuando el plugin en cuesti\u00f3n se desactiva\/elimina y todav\u00eda deja datos atr\u00e1s.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El plugin <a href=\"https:\/\/wordpress.org\/plugins\/advanced-database-cleaner\/\">Limpiador avanzado de bases de datos<\/a> nos ofrece una buena vista de p\u00e1jaro de lo que ocurre en nuestra base de datos y herramientas para solucionarlo. <em>Opciones<\/em> tiene informaci\u00f3n sobre los datos de cada plugin y si se autocargan por defecto o no. <em>Limpieza general<\/em> proporciona controles m\u00e1s precisos sobre <em>Revisiones<\/em> y <em>Auto-draft<\/em>un enfoque mejor que establecer l\u00edmites codificados.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 id=\"3-cssjs-concatenation-is-obsolete\" class=\"wp-block-heading\">3. La concatenaci\u00f3n CSS\/JS est\u00e1 obsoleta<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En el pasado, minificar y combinar archivos era esencial para acelerar los sitios web, especialmente antes de que dispusi\u00e9ramos de m\u00e9todos de compresi\u00f3n eficaces como Brotli y Gzip. Aunque la minificaci\u00f3n sigue ayudando a reducir el tama\u00f1o de los archivos, su importancia ha disminuido con el auge de estas t\u00e9cnicas de compresi\u00f3n avanzadas que hacen un mejor trabajo reduciendo los archivos a nivel del servidor web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo que realmente importa ahora es c\u00f3mo se cargan los recursos en una p\u00e1gina y si bloquean la visualizaci\u00f3n del contenido. Si los scripts o las hojas de estilo retrasan la carga del contenido de la p\u00e1gina, puede afectar negativamente a la percepci\u00f3n del usuario y a la clasificaci\u00f3n en los motores de b\u00fasqueda. Plugins como <a href=\"https:\/\/wordpress.org\/plugins\/debloat\/\">Debloat<\/a> o <a href=\"https:\/\/wordpress.org\/plugins\/autoptimize\/\">Autoptimize<\/a> puede ayudar optimizando los activos, asegur\u00e1ndose de que los elementos importantes se cargan primero y aplazando los menos cr\u00edticos.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 id=\"4-image-handling-is-a-very-complicated-matter\" class=\"wp-block-heading\">4. El tratamiento de im\u00e1genes es un asunto muy complicado<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las im\u00e1genes deben ser de alta calidad y estar preparadas para el futuro. Esto significa que deben capturarse y almacenarse en alta resoluci\u00f3n, para que puedan mostrarse con claridad en una amplia gama de dispositivos, desde viejos smartphones hasta pantallas 4K. Sin embargo, las im\u00e1genes de alta resoluci\u00f3n tambi\u00e9n pueden dar lugar a archivos de gran tama\u00f1o, lo que puede ralentizar los tiempos de carga del sitio web. WordPress genera autom\u00e1ticamente varias copias de las im\u00e1genes subidas con distintos tama\u00f1os de archivo, lo que permite almacenar varias versiones de la misma imagen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las compresiones con y sin p\u00e9rdidas pueden lograr reducciones significativas del tama\u00f1o de los archivos, pero es necesario conservar los archivos originales de alta calidad, ya que las versiones comprimidas pueden no ser adecuadas para todos los casos de uso, y en el futuro pueden aparecer mejores m\u00e9todos de compresi\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WebP y AVIF son formatos de compresi\u00f3n de \u00faltima generaci\u00f3n, pero su adopci\u00f3n ha sido desigual y sus ventajas frente a los formatos tradicionales no est\u00e1n claras al instante. Adem\u00e1s, los motores de b\u00fasqueda han indicado que podr\u00edan penalizar a los sitios web que no utilicen estos formatos modernos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No podr\u00e1s gestionar todo esto t\u00fa solo sin un plugin o un servicio externo. Despu\u00e9s de probar todas las opciones disponibles para WordPress, llegamos a la conclusi\u00f3n de que, aunque no existe la opci\u00f3n perfecta, <a href=\"https:\/\/wordpress.org\/plugins\/ewww-image-optimizer\/\">EWWW Image Optimizer<\/a> sigue siendo el mejor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">EWWW IO comprime tus im\u00e1genes utilizando un servicio API externo, descargando la carga de procesamiento de tu servidor. Proporciona el tama\u00f1o exacto de imagen para cada dispositivo, aprovechando su propia CDN. Y para mejorar el rendimiento, proporciona autom\u00e1ticamente versiones WebP\/AVIF de tus im\u00e1genes cuando es compatible. La versi\u00f3n premium de este plugin est\u00e1 incluida en nuestro humilde pero generoso <em>Goodies<\/em> paquete.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 id=\"5-all-page-builders-are-a-burden-to-performance\" class=\"wp-block-heading\">5. Todos los constructores de p\u00e1ginas son una carga para el rendimiento<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No me malinterpretes, los constructores de p\u00e1ginas, incluidos Gutenberg, Elementor, Bricks y Breakdance, est\u00e1n revolucionando WordPress para mejor. Gutenberg, los temas en bloque y los temas FSE tuvieron un comienzo dif\u00edcil, pero son sin duda el futuro de WordPress.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Elementor es a menudo criticado dentro de la comunidad de WordPress, pero su popularidad y sus potentes caracter\u00edsticas est\u00e1n rivalizando con plataformas como Wix, Squarespace y Webflow, a la vez que es gratuito, de c\u00f3digo abierto, est\u00e1 dentro de tu servidor y funciona de forma tan sencilla como cualquier otro plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, si un <em>tema cl\u00e1sico<\/em> (los que suelen tener un <em>Personalice<\/em> entrada de men\u00fa) es suficiente para tu proyecto, prefiere usarlo en lugar de un tema de bloques o un constructor de p\u00e1ginas. Y si no necesitas usar ninguna funcionalidad de bloques en absoluto, entonces considera desactivar Gutenberg.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hay muchas maneras de hacerlo y restaurar el Editor Cl\u00e1sico, globalmente o para usuarios espec\u00edficos, pero la mejor manera es el plugin <a href=\"https:\/\/wordpress.org\/plugins\/disable-gutenberg\/\">Desactivar Gutenberg<\/a>.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 id=\"6-woocommerce-and-its-plugins-will-drag-your-performance-down\" class=\"wp-block-heading\">6. WooCommerce y sus plugins arrastrar\u00e1n tu rendimiento a la baja<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La instalaci\u00f3n de cualquier soluci\u00f3n de comercio electr\u00f3nico en WordPress a\u00f1ade inevitablemente complejidad y repercute en su rendimiento general. WooCommerce -el plugin m\u00e1s popular para crear tiendas online- requiere una configuraci\u00f3n adicional m\u00e1s all\u00e1 de su activaci\u00f3n inicial para satisfacer las necesidades reales del negocio. Para cubrir este vac\u00edo de funcionalidad, los propietarios de las tiendas deben recurrir a plugins y c\u00f3digo personalizado, lo que puede ralentizar a\u00fan m\u00e1s el sitio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este impacto en el rendimiento se hace particularmente notable a medida que su tienda crece y recibe m\u00e1s tr\u00e1fico y pedidos. Aunque las t\u00e9cnicas de optimizaci\u00f3n que abordamos en este art\u00edculo pueden ayudar, llega un punto en el que es necesario escalar los recursos de tu servidor para mantener un rendimiento aceptable. Es crucial tener en cuenta este escenario cuando planifiques potenciar tu tienda online con WooCommerce.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 id=\"7-be-always-on-guard\" class=\"wp-block-heading\">7. Estar siempre en guardia<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Los sitios de WordPress pueden volverse complejos con el tiempo, por lo que es crucial comprobar su rendimiento con regularidad. Para que su sitio funcione sin problemas, utilice plugins como <a href=\"https:\/\/wordpress.org\/plugins\/query-monitor\/\">Monitor de consultas<\/a> para comprobar regularmente las m\u00e9tricas de rendimiento de su sitio, como los tiempos de carga de las p\u00e1ginas y el uso de memoria. Adem\u00e1s, emplee <a href=\"https:\/\/wordpress.org\/plugins\/wp-debugging\/\">Depuraci\u00f3n WP<\/a> para investigar y resolver cualquier error o conflicto de PHP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mientras que Query Monitor se centra en la monitorizaci\u00f3n del rendimiento, WP Debugging es principalmente para el registro de errores y la resoluci\u00f3n de problemas. El uso de ambas herramientas proporciona un enfoque integral para mantener la salud de su sitio.<\/p>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 id=\"1-dns-cloudflare\" class=\"wp-block-heading\">1. DNS: Cloudflare<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Todo empieza con la gesti\u00f3n de DNS y el proveedor m\u00e1s r\u00e1pido y fiable es sin duda Cloudflare. Posicion\u00e1ndose delante de cada acceso, es lo primero que tus usuarios interactuar\u00e1n cuando accedan a tu sitio, y tiene que ser rapid\u00edsimo.<\/p>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\">Aplicamos los siguientes ajustes no predeterminados:<\/p>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><strong>Velocidad (optimizaci\u00f3n)<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Speed Brain: En<\/li>\n\n\n\n<li>Rocket Loader\u2122: En<\/li>\n\n\n\n<li>Optimizaci\u00f3n autom\u00e1tica de la plataforma para WordPress (APO): En<\/li>\n\n\n\n<li>0-RTT Reanudaci\u00f3n de la conexi\u00f3n: En<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<p class=\"wp-block-paragraph\"><strong>Almacenamiento en cach\u00e9<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Browser Cache TTL: Respetar las cabeceras existentes<\/li>\n\n\n\n<li>Crawler Hints: En<\/li>\n\n\n\n<li>Cach\u00e9 por niveles: Topolog\u00eda de cach\u00e9 por niveles<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 id=\"2-hardware\" class=\"wp-block-heading\">2. Hardware<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Usted necesitar\u00e1 buenas especificaciones para ejecutar WordPress, preferiblemente una sola m\u00e1quina - o VPS - para cada instalaci\u00f3n, como lo hacemos aqu\u00ed en Raybeam. Las empresas de alojamiento gen\u00e9rico o incluso \"Managed WordPress Hosting\" agrupar\u00e1n su sitio con cientos de otros en el mismo servidor o en un entorno de contenedores. Esto se hace generalmente para reducir costos y ofrecer una f\u00e1cil escalabilidad, pero abren su sitio a problemas de rendimiento y seguridad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Todos nuestros servidores funcionan con Contabo y cuentan con un hardware impresionante que garantiza un gran rendimiento:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Todas las CPU AMD EPYC;<\/li>\n\n\n\n<li>S\u00f3lo almacenamiento NMVe SSD;<\/li>\n\n\n\n<li>12 centros de datos en 9 regiones, con una latencia m\u00ednima;<\/li>\n\n\n\n<li>32 TB de tr\u00e1fico (10 TB para Australia y Jap\u00f3n).<\/li>\n<\/ul>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 id=\"3-server-ubuntu-wordops\" class=\"wp-block-heading\">3. Servidor: Ubuntu + WordOps<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ubuntu 22.04 es nuestra distribuci\u00f3n de Linux preferida para instalaciones por defecto. Se utiliza mucho en servidores, ha demostrado ser muy fiable a lo largo de los a\u00f1os y cuenta con una comunidad s\u00f3lida.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, aprovechamos WordOps para gestionar nuestros servidores y sitios de WordPress. Esta herramienta viene repleta de valores predeterminados de rendimiento, incluidas versiones ajustadas de MariaDB, PHP y Nginx.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una salvaguardia <a href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-add-swap-space-on-ubuntu-20-04\">intercambiar<\/a> de al menos <a href=\"https:\/\/help.ubuntu.com\/community\/SwapFaq#How_much_swap_do_I_need.3F\">2 GB<\/a> y proporcional a su RAM disponible se a\u00f1ade para evitar que trabajos costosos, particularmente de MySQL, derriben el servidor en raras ocasiones.<\/p>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<h2 id=\"4-caches\" class=\"wp-block-heading\">4. Cach\u00e9s:<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nuestro sistema de cach\u00e9 utiliza una arquitectura por capas, en la que cada capa de cach\u00e9 aplica sus propias optimizaciones especializadas. Este enfoque por niveles permite al sistema de cach\u00e9 mejorar progresivamente el rendimiento, con cach\u00e9s de nivel superior que aprovechan las capacidades de las de nivel inferior:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OPcache<\/strong>: Zend OPcache est\u00e1 habilitado por defecto desde PHP 5.5. M\u00e1s informaci\u00f3n en <a href=\"https:\/\/wp-rocket.me\/wordpress-cache\/what-is-opcache\/\">este art\u00edculo proporcionado por WP Rocket<\/a>;<\/li>\n\n\n\n<li><strong>Cach\u00e9 de objetos<\/strong>: Activamos Redis por defecto en todas las instalaciones, utilizando la versi\u00f3n gratuita de <a href=\"https:\/\/wordpress.org\/plugins\/redis-cache\/\">Plugin de cach\u00e9 de objetos Redis<\/a>. <a href=\"https:\/\/wetopi.com\/redis-object-cache-for-wordpress\/\">Wetopi ofrece un art\u00edculo<\/a> sobre las expectativas realistas que debe tener al utilizar Redis en WordPress;<\/li>\n\n\n\n<li><strong>Cach\u00e9 de p\u00e1gina<\/strong>: WordOps proporciona una cach\u00e9 de p\u00e1gina Redis construido con Nginx siempre Redis est\u00e1 habilitado;<\/li>\n\n\n\n<li><strong>Cach\u00e9 del navegador:<\/strong> Gran navegador cach\u00e9 por defecto para Nginx viene empaquetado por defecto por WordOps, que tambi\u00e9n incluye la compresi\u00f3n Brotli;<\/li>\n\n\n\n<li><strong>Cach\u00e9 de borde<\/strong>: El servicio de pago Cloudflare APO est\u00e1 incluido en todos los planes como parte de nuestro paquete Goodies y act\u00faa como un h\u00edbrido entre cach\u00e9 de p\u00e1gina y de borde para WordPress, haciendo copias est\u00e1ticas de tus p\u00e1ginas y envi\u00e1ndolas a todas las zonas. Tenga en cuenta que no anula completamente la cach\u00e9 del navegador de Nginx, pero puede modificar las cabeceras. El mejor art\u00edculo sobre ello es <a href=\"https:\/\/brianli.com\/cloudflare-apo-for-wordpress-misconceptions\/#cloudflare-apo-is-a-replacement-for-server-level-page-caching\">\u00e9ste proporcionado por Brian Li<\/a>.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>At this point in time, you likely came across countless articles on WordPress performance optimizations, many of which with the same old tips. It can be frustrating to continuously stumble on the same ineffective recommendations without making any progress. If you&#8217;re feeling overwhelmed and out of options, the following steps can provide a way out. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4245,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"Learn how to optimize the WordPress performance of your site like the pros, on any hosting infrastructure.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"wordpress performance","pmpro_default_level":"","footnotes":""},"categories":[47],"tags":[],"class_list":["post-2771","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-recommendations","pmpro-has-access"],"_links":{"self":[{"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/posts\/2771","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/comments?post=2771"}],"version-history":[{"count":43,"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/posts\/2771\/revisions"}],"predecessor-version":[{"id":4667,"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/posts\/2771\/revisions\/4667"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/media\/4245"}],"wp:attachment":[{"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/media?parent=2771"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/categories?post=2771"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/raybeam.jp\/es\/wp-json\/wp\/v2\/tags?post=2771"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}