17 tips para optimizar la velocidad de tu blog en WordPress

Hace pocos meses Google anunció que ha decidido tomar en cuenta la velocidad del sitio en la clasificación de los resultados de búsqueda, en adición a los otros 200 factores que determinan la posición en los resultados de búsqueda. Esta jugada por parte de Google hace que todos nos preocupemos por optimizar al máximo la velocidad de un sitio web. La optimización de la velocidad no solo pone a Google contento, sino que hace que tus lectores se sientan más a gusto con tu sitio, sean más participativos, además ahorrarás ancho de banda y costos de hosting.

Hay diferentes formas de optimizar la velocidad de WordPress, aquí te dejo una guía lo más completa posible para que tu sitio en WordPress quede tan rápido como un rayo.

Antes de empezar a optimizar tu sitio, necesitas saber en que partes de éste tienes que mejorar, cuanto se demora en cargar y cual es el peso total de él. Para hacer esto te recomiendo utilizar herramientas como Pingdom o Firebug (para Firefox) con los plugins PageSpeed o YSlow. Con estas herramientas podrás ver el progreso de los cambios que vayas realizando, o sea, una baja en el tiempo de carga de tu sitio web.

1. Escoge un Hosting de Calidad

Tal vez esto que estoy diciendo suene muy obvio, pero no esperes que tu sitio corra como un bólido de la fórmula uno si tu sitio esta hospedado en un servidor compartido de mala calidad. A la hora de escoger un buen hosting debes ser muy cuidadoso, pues de eso depende la velocidad de tu sitio y el grado de satisfacción de tus lectores.

Como ya les he dicho en varias ocasiones, este blog esta hospedado en HostGator y no he tenido ningún problema con ellos, lo recomiendo ampliamente. De todas formas aquí te dejo algunos otros proveedores de hosting que recomiendo:

2. Mantén actualizado WordPress

Estar actualizado con la última versión de WordPress es muy importante. En cada actualización, por lo general, hay muchas mejoras de desempeño. Los desarrolladores de WordPress no liberan nuevas versiones solo por diversión, sino porque con cada actualización WordPress mejora más y más.

3. Elimina plugins innecesarios y actualiza los demás

Si estás usando más de 15 plugins en tu blog, entonces necesitas revisar si realmente los necesitas a todos. Si no los necesitas, elimínalos. También asegúrate de que los plugins que mantengas, estén actualizados a su última versión.

4. Optimiza tu Base de Datos

Te sorprenderás de cuanto puede disminuir el tiempo de carga de tu sitio web, tan solo optimizando tu base de datos. Puedes hacerlo manualmente o puedes hacerlo mediante plugins.

Si lo deseas hacerlo de la forma fácil, instala el plugin Optimize DB o WP Optimize. Si deseas hacerlo manualmente debes hacer lo siguiente:

Optimiza tu Base de Datos

  1. Debes abrir el administrador de bases de datos PHPMyAdmin.
  2. Selecciona tu bases de datos.
  3. Haces clic en “Marcar todos/as” al fondo de la página.
  4. Elige la opción “Optimizar la tabla” en la lista desplegable que se encuentra al lado.
  5. Y listo!

5. Cachea tu Base de Datos

Las consultas a la base de datos se hacen cada vez que una persona visita tu blog. El cache es vital para reducir el número de consultas, así mismo aumentar la velocidad de tu blog. Para minimizar tus consultas a la base de datos de forma fácil deberás instalar el plugin DB Cache Reloaded.

6. Desactiva y Elimina las Revisiones de Post

Las revisiones de Post se introdujeron desde WordPress 2.6. pero en realidad son útiles cuando un blog es administrado por varios autores y sirve para ver los cambios de un artículo y la fecha de ese cambio o para regresar un artículo a una versión anterior. Sin embargo, esto hará que tu base de datos se llene de revisiones de artículos, lo que la hace más pesada. Si no necesitas esta característica, debes añadir la siguiente línea a la archivo config.php de tu instalación de WordPress:

define('WP_POST_REVISIONS', FALSE);

Si deseas eliminar todas las revisiones de tu base de datos debes ejecutar la siguiente consulta:


DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';

7. Deshabilita el Hotlinking

El hotlinking, también conocido como robo de ancho de banda, es cuando alguien copia y pega la URL de tu imágen, poniendo tus imágenes en su propio sitio, lo que hace que la carga de tu servidor suba bastante.

Hay varias formas de evitar esto poniendo lo siguiente en el archivo .htaccess, que se encuentra en la carpeta raíz de tu servidor, así:


#deshabilitar el hotlinking de la imágenes
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?trazos-web.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?feeds2.feedburner.com/TrazosWeb [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]

Puedes habilitar tu feed, pues de otra manera tus lectores del feed no verán ninguna imágen.

8. Utiliza un Plugin de Cache de WordPress

Utilizar un plugin de cache como WP Super Cache o W3 Total Cache hace que se guarde una copia en html de tu blog  y que esta copia sea la que se le muestre a tus lectores. Esto incrementa enormemente la velocidad de carga de tu sitio web.

9. Optimiza tus Imágenes

Si editas tus imágenes con Photoshop, utiliza siempre la opción “Guardar par Web y dispositivos”, o utiliza algunas de las herramientas para optimizar tus imágenes que te presento a continuación:

Herramientas en línea:

Herramientas de escritorio:

10. Comprime tu contenido

Estos se hace mediante el archivo .htaccess de tu carpeta raíz y permite comprimir la mayoría de los archivos de tu blog (css, javascript, php, html y xhtml). Hay dos maneras de hacerlo dependiendo de la versión de Apache que tengas instalado tu blog, si la versión de Apache es menor de 2.x, se hace mediante mod_gzip, así:


<ifmodule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifmodule>

Si La versión de Apache de tu servidor es la 2.x, puedes utilizar la función mod_deflate, así:


<IfModule mod_deflate.c>
<FilesMatch "\.(css|js|x?html?|php)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>

11. Añade caché a todo tu contenido estático

Añadir Cabeceras de Expiración (Expire Headers) y Cabeceras de Control de Caché (Cache-Control Headers) hará que se realicen menos peticiones HTTP lo que disminuirá el tiempo de carga de tu sitio web. Las Cabeceras de Expiración son generalmente usadas con las imágenes, pero pueden ser utilizadas con hojas de estilos, scripts, componentes de flash, etc.

Aquí te dejo un ejemplo de lo que deberías poner en tu archivo .htaccess para implementar estas cabeceras:


# EMPIEZA Cabeceras de Expiración
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</IfModule>
# FIN Cabeceras de Expiración
#EMPIEZA Cabeceras Cache-Control
<IfModule mod_headers.c>
Header unset ETag
FileETag None
<FilesMatch "\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<FilesMatch "\.(css)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
<FilesMatch "\.(js)$">
Header set Cache-Control "max-age=216000, private"
</FilesMatch>
<FilesMatch "\.(x?html?|php)$">
Header set Cache-Control "max-age=600, private, must-revalidate"
</FilesMatch>
</IfModule>
# FIN Cabeceras Cache-Control

12. Optimiza tus archivos CSS y JavaScript

Los archivos CSS y JavaScript pueden ser optimizados para reducir el tamaño de estos. Por ejemplo, las líneas en blanco y clases CSS sin usar deben ser eliminadas. Al optimizar estos archivos, puedes reducir efectivamente el ancho de banda del servidor y ahorrar espacio en el disco duro. Para comprimir el CSS hay varias herramientas:

Para ayudarte a optimizar tu archivos JavaScript existen las siguiente herramientas:

13. Mueve las llamadas a archivos JavaScript al fondo

Un servidor solo puede cargar un cierto límite de ítems al mismo tiempo. Si estás usando muchos JavaScript en tu sitio de WordPress, entonces tendrás que comprimirlos. Luego de comprimir los scripts, deberás moverlos al fondo de la plantilla de tu blog, por lo general antes de la etiqueta </body>, para que el contenido (imágenes, css, etc) sea cargado primero.

Algo así:


....
<script type="text/javascript" src="algunScript.js"></script>
<script type="text/javascript" src="otroScript.js"></script>
</body>

14. Utiliza el API de bibliotecas AJAX de Google

El API de bibliotecas AJAX es un intento por hacer más rápidas las aplicaciones web para los desarrolladores de manera simple, convirtiendo una red de distribución de contenido en una arquitectura de carga para las librerías de JavaScript más populares, incluyendo:

Para implementarlo en tu sitio puedes usar la API de Google:


<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">google.load("jquery", "1.3.2");</script>

O enlazar el código fuente directamente en la plantilla de tu blog:


<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

15. Reduce el uso de scripts externos

Cuando tu blog carga lentamente, deberías pensar seriamente en quitar widgets como el de Fans en Facebook o Últimas actualizaciones en Twitter o botones como los de Tweetmeme, pues estás haciendo que la carga de tu sitio dependa de otros sitios. Por ejemplo, si estás usando el botón retweet y Tweetmeme está caído, tu blog no cargará correctamente. Trata de evitar estos plugins o widgets lo más que puedas.

16. Utiliza CSS Sprites

Los Sprites CSS  son múltiples imágenes combinadas en una sola gran imágen. Luego mediante CSS puedes ‘recortar‘ o seleccionar el pedazo de imágen que deseas usar en determinada clase, en vez de tener múltiples imágenes utilizadas múltiples veces. Esto es bueno pues requiere menos peticiones al servidor.

Aquí te dejo algunos artículos para que aprendas más sobre los CSS Sprites:

17. Guarda tus imágenes en otro servidor

Cuando tienes un sitio popular, este tiende a usar gran cantidad de ancho de banda. Para reducir el uso de ancho de banda y hacer que tu sitio cargue mucho más rápido, la solución más popular es guardar las imágenes u otros archivos en otro servidor.

Muchos servicios permiten subir tus imágenes en sus servidores, pero aquí te dejo los dos más populares:

Amazon S3 : Servicio premium, cuesta 15 centavos de dólar por cada GB de almacenamiento y 20 centavos por GB de ancho de banda
Flickr : Provee una cuenta gratuita limitada a 100MB subidos por mes o una cuenta premium por 25 dólares al año.

Conclusión

Todos estos consejos te ayudarán a que tu blog en WordPress funcione de una forma mucho más rápida.

¿Qué otros consejos conoces para mejorar la velocidad de carga de un blog?

0 Comentarios en “17 tips para optimizar la velocidad de tu blog en WordPress”

  • Pingback: Tweets that mention 17 tips para optimizar la velocidad de tu blog en WordPress | Trazos Web -- Topsy.com()

  • Pingback: 17 tips para optimizar la velocidad de tu blog en WordPress()

  • Hola,
    En verdad muchas gracias por el artículo. Me ha sido de gran ayuda ya que mi sitio ha ido creciendo poco a poco, y creo que es necesario empezar a optimizar recursos.

    Saludos,

    • Realmente ayuda ha muchos de nosotros.

  • ¿Y es compatible poner esos plugins de cache de base de datos y del blog y a parte desde .htaccess cachear el contenido estático por tu cuenta?

  • Buenos trucos, ya que preguntas si conocemos más trucos para optimizar la velocidad de carga, aquí te dejo una recopilación que hice hace ya unos meses.
    http://www.komoloves.com/interesante/recopilacion-de-articulos-para-mejorar-la-velocidad-de-carga-de-la-web/

    Saludos

    • Buen aporte hombre.
      Pero estos trucos puede valer para todo los blog hechos en CMS diferentes?

    • Gracias por compartir el enlace.

  • Pingback: wp-popular.com » Blog Archive » 17 tips para optimizar la velocidad de tu blog en WordPress()

  • Pingback: Sin tiempo para escribir.61()

  • Últimamente estás escribiendo un montón! Estupendo, muchísimas gracias!

  • me lo guardo en favoritos, buen articulo. y en breves me pongo con el punto 7 del hotlinking.

    gracias!

  • Buff….Muy bueno.
    A ver, había oido hablar y mucho, ultimamente sobre el tema de la velocidad de carga, y como google lo toma como un factor a tener en cuenta para el posicionamiento, pero Diego, te lo has currado, y has sido el primero, al menos que yo sepa, que se ha currado un artículo de esta magnitud sobre el tema, y las mejoras a realizar.
    Enhorabuena

  • Gracias Diego ya he aplicado algunos consejos y mi blog ha reducido 0.8 segundos aproximadamente en su carga.

  • Yo estoy pensando en instalar wp-supercache. Ahora la velocidad parece que será un factor fundamental, pero la verdad es que me da un poco de miedo que empiece a dar problemas el blog. Ya tuve alguna mala experiencia con plugins.

  • Un artículo muy interesante, me lo guardo en mis favoritos porque es de esos que consultas muchas veces.

  • Pingback: El indice de las blogosfera » Enlaces de inicio()

  • Que bien!!! muchas gracias!

  • Realmente interesantes los tips. Probaré el de optimizar las bd, a ver que tal. Por cierto, como bien avisan por ahí, tened mucho cuidado con los plugins de cache…, que yo he tenido más de un problema…

  • yeah its good tips regards

  • Excelente artículo, ya está dentro de mis favoritos 😉

  • Si, esta entrada esta muy bien para muchos de nosotros ya que últimamente se habla mucho sobre el tiempo que tarda cargar una pagina y esta muy bien saber unos cuantos consejos.
    Aun que yo tengo otro CMS la pagina principal esta bastante optimizada desde este punto de vista.

  • El asunto de la rapidez en la carga de sitios web es un tema importante pues se ha sumado a uno de los tips para el posicionamiento y practicamente en ningun sitio en español he visto detallados consejos para hacer los sitios mas rápidos!

  • muy buenos los consejos para optimizar los archivos CSS y JavaScript, voy a probar CSSOptimizer y luego les cuento..

  • La verdad que son buenos consejos, algunos de ellos no lo sabia, y creo que en los tiempo que corren, no queda más remedio que realizarlos, que cada dia que pasa premia más a la velocidad google.

  • Buenos consejos para optimizar la velocidad del sitio, tan poco bien explicados en el resto de de red!

  • buenos tips en especial el de optimizar la base de datos es que no sabia

  • Gracias por el aporte, la velocidad de carga, aparte de ser importante para el usuario,ayuda al posicionamiento, no es asi??

  • Un artículo como pocos, excelente!

  • Gracias, empezaré a probar y poner algunos de estos tips en mi blog.

  • No puedo lograr usar ni gzip ni deflate para reducir la carga!

  • Muy buen artículo! 🙂

  • Muy buenos consejos, muchos de ellos ya los conocía aunque siempre está bien saber algunos más 🙂

  • Excelente articulo, la velocidad es muy importante pues en esta vida el tiempo es oro !!

  • Una lista muy completa. Hacer todo eso puede llevar un tiempo, pero vale la pena.
    Además hay que tener cuidado con los archivos externos que cargan servicios para la web como botones, publicidad, etc..

  • muy buen articulo, me vino muy bien ya que mi sitio esta cargando muy lento ahora pondre manos a la obra para optimizar, muchas gracias.

  • Gracias me gusto mucho este post

  • Pingback: Como hacer que WordPress cargue rapido()

  • Yo tambien he tenido problemas con la velocidad de wordpress.Gracias por la ayuda, ahora va mucho mejor!

  • Buenos datos para optimizacion en especial del cache para paginas

  • hay un monton de cosas que se pueden hacer para mantener un sitio a full, creo que lo mas importante es mantener el wordpress actualizado y optimizada la bd..

  • una pregunta, estos pequeños tips funcionan bien en wordpress 3.0 ? gracias.

  • gracias por el codigo del .htaccess creo que esta bastante entendible tu punto de vista 🙂

  • El primer punto es el que para muchos resulta inalcanzable: Escoge un Hosting de Calidad

  • Tengo una duda si ya tengo instalado el plugin W3 Total Cache es necesario que también instale el DB Cache Reloaded???

  • Exelente artículo men.
    Estos consejos me sirvieron de mucho, ya conocia mucha ayuda para mejorar la velocidad de tu pag. pero tu articulo es muy completo te pasaste.
    Gracias y saludos a todos.

  • kico

    Añadiría: Pon un buen sistema antispam para evitar comentarios automaticos como los que tienes a patadas en este post. Fíjate que no he puesto mi url para evitar que se me asocie con todos los spamers que hay aqui.

  • Pingback: Tecnicas para optimizar tu blog de wordpreas y mejorar la velocidad | Negocios por internet()

  • David

    Un artículo muy útil. Hay algún problema en tener el DB Cache Reloaded y el WP super cache instalados a la vez? O son incompatibles?

  • sirve mucho para aquellas personas que tienen una conexion lenta y tienen dificultades para ver todo el contenido de un sitio

  • Pingback: Tecnicas para optimizar tu blog de wordpress y mejorar la velocidad | Opem Consultores()

  • Importante, antes de optimizar las tablas de la BBDD es recomendable hacer un respaldo de la misma, pues existe una ligera posibilidad de perder la información. En general es importante respaldar periódicamente la BBDD, y en específico, antes de optimizar se debe hacer un respaldo del estado actual de la data en las tablas.

    Muy buen post, saludos.

  • Creo que lo has dejado bastante claro en el post. Me guardo est url en favoritos para consultarla cuando me haga falta. Gracias!!

  • Pingback: Generar mas trafico web en wordpress y SEO - PeruPortable | Todo en un solo lugar | PeruPortable | Todo en un solo lugar()

  • Hola ,gracias por compartir tus conocimientos,de a poco los voy a ir aplicando a mi web,saludos

  • Excelentes recomendaciones!

    Algunas no las utilizo en mi web todavía, pero pondré manos a la obra para hacer mi web de juegos más rápida: http://www.juegobien.com

    Gracias!
    😉

  • Hola diego, gran artículo, anteriormente dije que lo probaría, pues ya lo he probado algunos metodos y la verdad es impresionante, la carga de mi blog a mejorado mucho. Gracias!

  • Pingback: 4 Artículos que deberías leer. | Estrategias de Marketing y Negocios por Internet.()

  • hola,para Deshabilitar el Hotlinking,¿uso el codigo que tu pusistes en el ejemplo y solo le cambio donde dice “Trazosweb” por mi url?
    gracias por compartir tu informacion
    saludos
    schubert

  • Un articulo muy orginal con unas excelentes tecnicas

    Saludos

    Kevin

  • Hola ,el plugin DB Cache Reloaded y el w3 totalcache son compatibles ? o usando uno de los dos ya es suficiente,saludos

  • iRe

    Excelente artículo, te agradezco muchísimo cada uno de los consejos, me serán muy útiles!

  • Excelente articulo, ahora que el tiempo de carga es fundamental para google, esto nos viene muy bien, gracias!

  • Pingback: Anónimo()

  • Muy eficaz el material, muchas gracias por tu articulo.

  • excelente información me has salvado la vida voy haber que resultados tengo con tus recomendaciones, gracias nuevamente

  • Wow! Estaba buscando algún artículo como este para mejorar la carga de mi blog y volví a aterrizar en Trazos-Web jaja, esto es el destino creo yo… Bueno por el momento solo me dio tiempo a leer los primeros tres puntos pero prometo volver en unas horas para ver si puedo implementar alguno de ellos a mi página. De antemano gracias :)!