Directorio de artículos
¿Tienes dificultades para elegir el tipo de incrustación adecuado para W3 Total Cache Minify? Este artículo comparte la experiencia real de un webmaster y ofrece una guía paso a paso para seleccionar correctamente el tipo de incrustación de Minify, evitando problemas de estilo y fallos de carga en tu sitio web. Además, incluye una solución de configuración infalible que incluso los principiantes pueden aplicar fácilmente, ¡ garantizando una experiencia WordPress fluida y rápida !
Estaba optimizando un sitio web y cuando abrí la configuración de minificación en W3 Total Cache, me quedé completamente perplejo. El menú desplegable para el tipo incrustado tenía cuatro opciones: Predeterminado (Bloqueo), Usar JS para no bloqueo, Usar "Asíncrono" para no bloqueo y Usar "Retrasado" para no bloqueo.
Lo pensé un momento, ¿de qué se trata todo esto?
Créeme, no estás solo. Estas cuatro opciones probablemente desconcertarán incluso a un principiante, y mucho más a alguien que lleva años usando WordPress. Este artículo presenta los problemas que he encontrado y las lecciones que he aprendido directamente. No necesitas consultar la documentación; solo sigue mis instrucciones.
¿Qué son exactamente estos cuatro tipos de incrustación?

Primero hablemos de qué tipo de personaje son estas cuatro opciones.
El bloqueo por defecto es el método más sencillo. Cuando el navegador encuentra un script, se detiene, lo descarga y lo ejecuta por completo, y luego continúa renderizando la página. Suena fiable, ¿verdad? Pero la desventaja es que la carga inicial de la página se retrasará; los usuarios tendrán que esperar a que el script termine de ejecutarse antes de poder ver nada.
Utilizar JavaScript para la carga no bloqueante es bastante interesante. En lugar de escribir directamente etiquetas `<script>` en la página, primero genera un pequeño script y luego inyecta dinámicamente los scripts necesarios en la página mediante JavaScript una vez que esta se está ejecutando. De esta forma, la página se renderiza primero y los scripts se cargan gradualmente. Suena genial, ¿verdad? Sin embargo, el problema es que este proceso de inyección dinámica puede alterar el orden de ejecución original de los scripts. Si algunos scripts de tu página dependen en gran medida del orden de ejecución, pueden surgir problemas.
Para una ejecución no bloqueante, basta con añadir el atributo `async` a la etiqueta `<script>`. El script se descargará de forma asíncrona en segundo plano y se ejecutará inmediatamente al finalizar, sin que la página tenga que esperar. Sin embargo, la desventaja es que el orden de ejecución es completamente incontrolable; se ejecutará lo primero que se descargue, independientemente del orden especificado en el código.
El uso de la función "delay" para una ejecución no bloqueante se logra agregando el atributo `defer`. El script esperará hasta que se haya procesado toda la página antes de ejecutarse y, lo que es crucial, mantendrá el orden original en que se escribió. Esto resulta muy práctico, ya que no bloquea la primera pantalla ni altera el orden del script.
¿Cuál debería elegir?
En pocas palabras, estas cuatro opciones son como una pregunta de opción múltiple: ¿ prefieres rapidez o prefieres el orden?
Mi sugerencia es la siguiente:
Si tu sitio web es pequeño, tiene pocos scripts y no tienes requisitos de velocidad de carga extremadamente altos, usar la configuración predeterminada (bloqueada) es la opción más sencilla. Aunque es un poco más lenta, no causará ningún problema.
Si desea mejorar la velocidad de carga en pantalla y sus scripts no tienen dependencias estrictas como "A debe ejecutarse antes que B", priorice el uso de "defer" para una ejecución no bloqueante . Esta es casi la solución ideal disponible actualmente, ya que evita el bloqueo de la renderización y mantiene el orden de ejecución.
Si tras probar con `defer` algunas funciones siguen presentando problemas, considere usar JavaScript para la gestión de llamadas no bloqueantes . Este enfoque es más agresivo, pero su compatibilidad es ligeramente inferior.
Usar "async" para la ejecución no bloqueante es la opción que menos recomiendo. Debido a que el orden de ejecución se altera por completo, es fácil que el programa falle a menos que estés absolutamente seguro de que tus scripts se ejecutan de forma independiente.
Dos grandes trampas en las que caí
Hablar es fácil. He anotado dos errores que cometí; puedes compararlos con tu propia experiencia para ver si puedes evitarlos.
El primer inconveniente: los temas personalizados de WordPress no se pueden previsualizar en tiempo real.
Durante un tiempo, al personalizar un tema, después de hacer clic en guardar, la vista previa no se actualizaba. Hacía algunos cambios, actualizaba la página y seguía igual.
Tras investigar un poco, descubrí que la función de compresión de Minify era la culpable. La solución es sencilla:
Acceda a la configuración general del plugin W3 Total Cache , busque la opción "Compresión" y desactívela. A continuación, haga clic en la pequeña flecha que aparece debajo de "Guardar configuración" en la esquina superior derecha y seleccione " Guardar configuración y borrar caché ". Este paso es crucial; sin borrar la caché, seguirá viendo la versión anterior.
Una vez que hayas terminado, vuelve a la personalización del tema y la vista previa en vivo volverá a la normalidad.
El segundo problema: el cuadro de búsqueda del tema Astra no responde al hacer clic.
Me encontré con este problema hace bastante tiempo. Estaba usando el tema Astra y, de repente, el cuadro de búsqueda dejó de responder sin importar cómo hiciera clic en él. Al principio, pensé que era un problema del tema en sí, pero luego descubrí que se debía a la configuración de minificación de W3TC.
La solución es la siguiente:
Vaya a W3 Total Cache → Configuración general → Configuración avanzada de compresión → JS → Configuración del motor de minimización → Configuración regional y cambie el tipo de incrustación a uno de estos dos:
- Anteriormente, el funcionamiento sin bloqueo se lograba mediante JavaScript.
- Después, utilice JS para evitar bloqueos.
Del mismo modo, borrar la caché y actualizar la página permitirá que el cuadro de búsqueda funcione correctamente.
En cuanto a por qué se eligieron estas dos opciones en lugar de otras, investigué un poco. En resumen, los componentes de la interfaz del tema Astra son bastante sensibles al momento de ejecución de los scripts, y ciertos métodos no bloqueantes pueden provocar fallos en la vinculación de eventos. El uso del modo "no bloqueante con JS" garantiza que el script se ejecute solo después de que la página haya terminado de cargarse, evitando así la ejecución desordenada que se observa con la ejecución asíncrona.
落地清单
Por último, aquí tienes una lista de verificación que puedes seguir directamente:
El primer paso es definir tu objetivo. ¿Buscas la carga inicial de página más rápida o priorizas la estabilidad y un funcionamiento sin errores? Esto determinará qué tipo de incrustación debes usar.
El segundo paso consiste en no cambiarlo todo a la vez. Primero, busca una página menos importante para probarlo, obsérvala durante uno o dos días y solo implementa el cambio en todo el sitio si estás seguro de que no hay problemas.
En tercer lugar, borra siempre la caché después de cada modificación. El mecanismo de caché de W3TC te impedirá ver los últimos cambios, por lo que el paso de "borrar la caché y volver a probar" es absolutamente esencial.
En cuarto lugar, usa las herramientas para desarrolladores de tu navegador o herramientas como PageSpeed Insights para comparar la velocidad de carga antes y después. Deja que los datos hablen por sí solos, no te fíes solo de tu intuición.
Escribir al final
Sinceramente, cuando vi por primera vez esta configuración de tipo integrado, me quedé perplejo durante un buen rato. El modo de bloqueo predeterminado parecía demasiado lento, mientras que el modo asíncrono no garantizaba el orden y el aplazamiento podía causar problemas de compatibilidad. No sabía qué opción elegir.
Pero después me di cuenta de que es una cuestión de prioridades. No se puede tener lo más rápido y lo más estable a la vez; siempre hay que sacrificar uno. Mi experiencia me dice que primero uso `defer`, que actualmente es la solución no bloqueante más segura, y luego uso una función de devolución de llamada si surgen problemas.
Si encuentras problemas similares o si persisten otras dificultades después de seguir mi método, no dudes en comentarlo. El desarrollo web se basa en el método de prueba y error; nadie es la excepción.
Gracias por leer mi artículo. ¡Hasta la próxima!
Espero que el artículo "Configuración del plugin W3 Total Cache Minify: ¿Cómo elegir el tipo de incrustación? Mis errores y consejos para salvar vidas", compartido en el blog de Chen Weiliang ( https://www.chenweiliang.com/ ), le sea útil.
No dudes en compartir el enlace de este artículo: https://www.chenweiliang.com/cwl-34003.html
