Como sabemos (debes saberlo, si no haz como que ya lo sabías), WordPress es un maravilloso CMS muy (demasiadísimo) versátil y adaptable que tiene una sola contra y que versión nueva a versión nueva, no logra "solucionarse": El excesivo consumo de CPU que produce.
Mientras sean cien o mil visitas no hay problema. No es nada que no se pueda solucionar con alguno de los tantos plugins de cacheo que existen. Ahora, cuando las visitas diarias aumentan (y el tráfico dentro del blog que esas visitas generan es mucho) la cosa se complica.
Vamos al grano:
Tengo el blog Gran Hermano 2011 que cuatro días a la semana presenta picos de casi 100 mil visitas por día y casi 200 mil páginas vistas más o menos.
Lo tengo alojado en un plan Baby de Hostgator (9 USD al mes), hosting compartido. Obviamente, las primeras veces (cuando tuvo picos de 50 mil) el sitio se cayó y me mandaron tickets de soporte.
Hice algunos cambios pero volvió a caerse.Claro, los hosting shared no están preparados para soportar tamaño consumo de memoria RAM. ¿Solución? Desoí el consejo dado por HernanMDQ hace un año (en relación a otro caso similar) y contraté un plan VPS (en otra empresa). El VPS no aguantó ni media hora.
Hice de tripas corazón, lagrimeé lo malgastado y perdido en el VPS y volví arrepentido con el rabo entre las piernas a Hostgator, empresa que tras 10 años de montar webs por aquí y por allá me convencí es de las mejores que existen (y cada vez que digo que un hosting es bueno y lo recomiendo, luego me arrepiento y deja de satisfacerme, espero que esta vez no).
Y aquí vino la solución mágica que recomiendo implementar a aquellos que tengan problemas de consumo en sus blogs con WP en hosting propio (sobre todo si es un host compartido). En formato de lista, describo lo que hay que hacer:
- Actualizar a la última versión de WP (recomendación tonta, pero necesaria)
- Utilizar la menor cantidad de plugins posibles. Utiliza sólo aquellos realmente necesarios. (En el blog mencionado tengo sólo 9 plugins funcionando, y la mayoría son para optimizar el blog). Y actualiza los plugins a la última versión, obviamente.
- Cuidado con los themes premium. Quedan bonitos los blogs con pirimpollos que se mueven por acá y por allá, con slides de noticias, fotitos recortadas, etc etc... Pero los themes premium, casi que por definición diría, consumen muchos recursos en el servidor.
- Mete mano en el theme, nadie te acusará de acoso ni de nada. Mete mano para:
a) eliminar la gran cantidad de llamadas PHP innecesarias que tiene. Por defecto los themes están preparados para funcionar en cualquier sitio con sólo subir y activar. Para que esto sea posible se requiere que haya varias llamadas PHP como por ejemplo a la URL del sitio o cosas como bloginfo('name'); Todo eso lo puedes reemplazar por HTML puro y duro.
Esto:
Es lo mismo que
Y con la segunda forma te evitas 2 llamadas PHP que consumen los recursos de tu servidor. Haz la cuenta: 2 llamadas en cada visita X 100.000 visitas al día: 200.000 llamadas PHP innecesarias. ¿Y si eliminas las 20 consultas PHP que puedes encontrar? Haz la cuenta. Y revisa todo el theme.
b) Yo prefiero eliminar los condicionales de las sidebar. Para qué consultar si está o no activado algún widget en el sidebar para mostrarlo o bien mostrar otro contenido, cuando la respuesta va a ser siempre la misma: mostrar el widget.
c) Uso pocos widgets, sólo los necesarios para "comodidad" o "limpieza" o que estoy modificando seguido... El blogroll, lo incluyo a mano, HTML directo y así la mayoría de las cosas en la plantilla correspondiente... Casi no uso widgets...
d) Nube de tags a mano. Esto puede ser tedioso. Pero el efecto de la nube de palabras claves si bien queda lindo, consume bastante recursos. Por lo que entonces a mano, selecciono yo los anchor text que prefiero que aparezcan, y que apunten a la URL que yo quiera (a veces no es a una tag, sino a un post o a otro contenido) y con el title que más me gusta. De paso hago SEO on page. 2 pájaros de 1 tiro. - Reemplazar sistema de comentarios. Un blog sin comentarios no es un blog, o quizás sí, pero nos perdemos una de las partes más lindas del bloggin, el feedback. Por necesidad descubrí DISQUS, y me ha resultado grato en varios sentidos: solucioné un problema relacionado al consumo de CPU del servidor (ahora de los comentarios se encarga otro), me deshice del spam automático (los robots spammers comentadores), y otra cosa más que iba a mencionar y ahora no me acuerdo. (Al utilizar Disqus borre el plugin Askimet).
- Utilizar algunos plugins esenciales: a) WP Super Cache o W3 Total Cache. Dicen los que saben que el segundo es mejor, aunque sino lo configuras bien es lo mismo que nada. El primero es muy sencillo de configurar. b) DB Cache o DB Cache Reloaded (el segundo en la version 3.0.1 al momento de postear esto no funciona). Hay que usar uno de cada uno (o sea 2, en conjunto). c) otros alternativos, no esenciales pero pueden ser útiles: WP Smush.it (reduce el peso de las imágenes subidas en los post), SQL Monitor (me lo recomendaron en Hostgator), Optimize DB o WP Optimize.
- Cuida el ancho de banda que tambien consume CPU. Aunque estés en un hosting que te brinde Bandwith ilimitado (como es el caso del host mencionado), si tenemos mucho trafico de ancho de banda, indirectamente (no, directamente) estamos también consumiendo recursos del servidor.
a) La mejor opción es usar un CDN, pero que si no tienes los suficientes recursos económicos y/o conocimientos puede ser chino básico. Si usas el plugin W3 Total Cache, este plugin hasta te cachea eso, genial.
b) ¿Qué podemos hacer? Un CDN chapucero. Esto es: usar sitios como Photobucket (tiene una version gratuita algo limitada y una version de pago por 2 o 3 dlls mensuales ilimitada) para alojar imágenes, donde puedes poner el logo, el background y todas aquellas imágenes "estáticas" que luego puedes llamar desde tu theme. También puedes incluir algunos archivos multimedia. Coloca los archivos de JavaScript y de CSS en otro hosting (ya sea propio, alguno baratito, solo te interesará el ancho de banda, o gratis...) De esta forma, reducirás bastante el ancho de banda y las peticiones realizadas a tu servidor principal, por ende, el consumo de memora del mismo. - Transforma a HTML estática aquellas páginas internas que más "tráfico" atraen. Yo tenía varias, y lo hice. Es sencillo. Primero había creado en WP una pagina (page, no post) sobre ver Gran Hermano 2011 en vivo, y resultó ser casi que la más buscada, una de las principales keys de tráfico vía Google. Así que Ctrl+U en Firefox (ver código fuente), copy & paste todo el código y lo pegué en un bloc de notas vacío, guardar como "nombre-que-quiero.html" tipo: todos los archivos y a subir por FTP. Luego, en el HTACCESS agregue la siguiente línea:
Redirect 301 /URL-de-pagina-en-WP/ /URL-archivo-HTML-nuevo.html
Y listo. No perdí posicionamiento, no perdí tráfico, y me ahorre un montón de consumo y consultas PHP y a la base de datos. Y como el sistema de comentarios lo tengo mediante DISQUS, nada cambió... - Después también habría que desactivar el guardado de las revisiones automáticas y eliminar ese contenido de las bases de datos, y algunas otras cositas que si bien no ayudan en forma directa a reducir el consumo en el servidor ayudan a que el blog cargue más rápido y en forma indirecta también nos terminarán beneficiando en este aspecto. Para ellos recomiendo 10 hack para optimizar y aumentar la velocidad de carga de Wordpress en Blogger Recursos.
Me queda una cosita no resulta aún: Sacar el Home del Sitio del flujo de Wordpress (es decir, que no la administre el CMS) pero a la vez que sea dinámico y automático.... Estoy haciendo algunas pruebas con magpierss, pero aún nada interesante para mostrar....
Y puf! me cansé de escribir.
4 comentarios:
100.000 visitas que lindo numero Yo con 20 veces menos visitas pago un vps que me sale 10 veces mas.
El problema de pasar el widgets a código es que para moverlos hay que editar el código =P
Pero se ahorran muchas consultas ;)
el segundo en hostgator me dio problemas por el tema que tienes que cambiar a 777 los permisos del plugin, pero con w cached sobra.
Me agrada la noticia de que empresas como Fabdeco Blogs luchen por expandirse por nuestro país, España. Espero que tengan una gran evolución y apuesto que así sera, el trabajo bien organizado y solido, que dan sus frutos. Invito y animo a que más empresas pierdan el miedo a expandirse por nuestro planeta.
Patricia Gonzalez Vargas
http://www.hotsale.es
Centro comercial online
Publicar un comentario