Optimización de sitio para velocidad - ¿Cómo mejorar?

¿Qué opinan de estos sitios web de pruebas de rendimiento? Acabo de hacer 3 pruebas:
GTmetrix, PageSpeed y WebpageTest. Algunas variantes, por supuesto, pero algunas similitudes. Ayer, tenía una calificación C en GTmetrix, así que una B es una buena mejora, aunque no sé de dónde salió.

Por lo que puedo ver, parece que lo más común en mi sitio de estas 3 pruebas son los tiempos de carga con Javascript y CSS. ¿Pero el JS está bajo mi control? Enumera las 2 URL en GTmetrix como JS no utilizado, pero eso es algo integrado en Discourse, ¿no?

https://forums.gonomad.me/assets/chunk.2c7ac65fdfc1f35c61b6.d41d8cd9.js
https://forums.gonomad.me/assets/vendor.47fe1949ff0285dbc995d87a6ae0d449-223fd39128ca149073c28a57e41e969bafdb0a241e1149adab6918b27e7a3265.js

Y luego vi esto listado como una latencia de ruta de 38.8s, lo que me llamó la atención. ¿Cómo diablos optimizaría/arreglaría eso?

PageSpeed listó algo similar con el problema de los recursos de bloqueo de renderizado de JS/CSS. Los archivos JS más grandes que ralentizan el sitio son:

https://forums.gonomad.me/assets/chunk.2c7ac65fdfc1f35c61b6.d41d8cd9.js
https://forums.gonomad.me/assets/locales/en-d255b87afa1b13a48418c34b7c45d8aa69fce223261f36c9a101fb022c7cb8e5.js

Pero de nuevo, ¿creo que eso es algo integrado en Discourse?

Finalmente, una prueba directa de Lighthouse desde la Consola de Desarrollo me dio una puntuación de 63:

¿Está relacionado con el otro tema en el que algunos usuarios tuvieron problemas de carga?

Yo miraría el entorno de alojamiento en su lugar. :thinking:
Aunque el resultado me parece bien.

1 me gusta

Más o menos. Todo eso me hizo pensar, jaja.

Eso es lo que estaba pensando principalmente, pero, eh, tampoco me gustan algunas de las puntuaciones en estos sitios de rendimiento (lo que, sí, supongo que podrían ser problemas del host).

Configurar una CDN siempre es un buen comienzo. :rocket:

2 Me gusta

¡He leído mucho sobre las CDN últimamente en este viaje de optimización. ¡Lo revisaré!

1 me gusta

Hmmm… es mucha complejidad adicional para muy poco.

He gestionado una comunidad con éxito durante varios años sin tener que usar una CDN.

3 Me gusta

¿Mucho tráfico? ¿Podrías decirme la configuración de su servidor?

No debería tener mucho tráfico. Solo tengo un par de usuarios registrados. Hice el sitio hace quizás 12 días. Parece ser lento para algunos durante las horas pico donde se aloja el servidor, pero está bien para otros. Las especificaciones del servidor/VPS son:

3 GB de RAM
2 vCPU
35 GB SSD
Ancho de banda ilimitado de 1 Gbps
1 x IPv4
KVM
Ubuntu 22

EDITAR: oh, vaya, no estaba seguro si respondías a mí o a Robert.

1 me gusta

Lo suficientemente bajo como para que el sitio permanezca muy receptivo en todo momento.

4 GB/3 vcores + 2 GB de intercambio.

2 Me gusta

La CDN ayuda un poco si hay una gran audiencia global y/o el VPS está detrás de un servidor de gama baja. Y los sitios basados en PHP pueden mejorar un poco, pero una buena política de caché ayuda más.

La naturaleza de Discourse tiende a romper tales mejoras, o si se quisiera decir de esa manera: no necesita tales ayudas.

Esos servicios de métricas tienen muchos problemas y rara vez se pueden leer como consejos “tal cual”.

1 me gusta

Sí, eso es lo que me confunde un poco. Básicamente, todos los puntos por los que me penalizan parecen estar integrados en Discourse (tiempos de carga de JS largos/bloqueo, etc.) + tal vez una combinación de mi tema, así que ¿eso solo significa que un sitio de Discourse nunca tendrá una buena puntuación en esto, jajaja? Lo dudo, sin embargo. Foros, específicamente.

Significa eso. Puedes ayudar poco quitando algunas funcionalidades (innecesarias), principalmente a través de plugins, pero… no hay ningún beneficio real.

La buena noticia es que simplemente no importa en absoluto. Y el servicio de internet y los dispositivos de tus usuarios son un cuello de botella mayor.

Si tienes demasiado tiempo libre, puedes empezar a desarrollar esto, aquello y otra cosa, y todo lo que obtienes es quizás un segundo menos aquí y otro menos allá, y esos repuestos solo son medibles mediante pruebas de laboratorio.

Deja que el equipo y los desarrolladores de plugins/temas hagan su trabajo. Eso es suficiente.

Si tienes una plataforma web “real” como WordPress, Drupal, etc., habría una tonelada de trucos diferentes para hacer. Ahora la solución es fundamentalmente diferente.

Y claro, solo soy otro administrador/webmaster casero y me corregirán si me equivoco. Pero no lo estoy :rofl:

1 me gusta

Ok, sí, acabo de ejecutar las mismas pruebas en un tema nuevo predeterminado sin componentes y obtuve:

Parece que el tiempo de bloqueo es siempre el principal problema (al menos para mí cuando ejecuto estas pruebas). Entonces, supongo que los desarrolladores de Discourse necesitan optimizarlo mejor o ¿qué? Pregunto sinceramente, no intento criticar.

Esto no es lo que ve un humano. De nuevo: Discourse es una aplicación web que primero mueve archivos necesarios y después de eso todo es (casi) solo texto json. Esa prueba funciona, de alguna manera, cuando un sitio web genera páginas a nivel de servidor y envía html legible al cliente. Como lo que hace WordPress.

Y ese momento no está nada mal.

Lo que ahora sugieres es que Discourse sea una aplicación completa y no utilizable a través de navegadores, por ejemplo.