Como optimizar WordPress con htaccess

Publicada el Categorizado como Tips, WordPress

Hoy en día existen muchas formas de rankear mejor en Google o mejor dicho Google evalúa muchos puntos para rankear mejor tu web y poderla mostrar en las primeras páginas de los resultados, una de esas formas es tener una web rápida, ya que no hay nada peor que encontrar un resultado interesante y que tarde una vida en cargarlo, por eso, este día vamos a ver como optimizar WordPress con htaccess.

Que es .htaccess?
.htaccess es un archivo que se utiliza en servidores Apache que te da la habilidad de controlar un folder especifico (en el que se encuentra) y te ayuda a tratar redirecciones, seguridad, optimización y más.

Donde encuentro .htaccess en WordPress?
Si no lo encuentras en el directorio principal de WordPress puede ser que este todavía no se haya generado, para poderlo crear tienes que ir a WordPress Admin Dashboard >> Settings (Ajustes) >> Permalinks y presionas el botón para guardar los cambios.

Códigos para optimizar WordPress
Compresión
La compresión se utiliza para reducir el tamaño de los documentos, por lo general HTML, CSS, Javascript y archivos XML. Generalmente la compresión los archivos entre el 60% y 80% de tamaño, esto también reduce el tiempo de respuesta del servidor y la transferencia de datos, que es la información que se transfiere del servidor al cliente.

La mejor forma de habilitar la compresión es usar mod_gzip y mod_deflate en el servidor Apache, básicamente los 2 realizan la misma función, pero mod_deflate está mejor documentada y es más fácil de configurar. Si por alguna razón mod_deflate no funciona en tu servidor entonces puedes utilizar mod_gzip, los 2 métodos se pueden habilitar agregando código en el archivo .htaccess de WordPress.

Antes de comenzar, voy a mostrarles la diferencia, he deshabilitado la optimización de mi web y de esta web.

Como optimizar WordPress con htaccess
Antes jorgediaz.net
Como optimizar WordPress con htaccess
Antes wp.org.sv

Muy malos ¿verdad?

DEFLATE

# BEGIN DEFLATE COMPRESSION
<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
</IfModule>
# END DEFLATE COMPRESSION

GZIP

# BEGIN GZIP COMPRESSION
<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>
# END GZIP COMPRESSION
view raw GZIP.htaccess hosted with ❤ by GitHub

Cache de Navegador
Al habilitar la configuración de cache del navegador le decimos que guarde cierta información por un periodo especifico de tiempo en la memoria local del equipo, cuando un usuario visite la web nuevamente, el navegador va a cargar ciertos archivos desde la maquina local en vez de descargarlos del servidor otra vez, lo que va a resulta en un aumento de velocidad.

Expirar Encabezados

#BEGIN EXPIRES HEADERS
<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On
# Default expiration: 1 hour after request
ExpiresDefault "now plus 1 hour"
# CSS and JS expiration: 1 week after request
ExpiresByType text/css "now plus 1 week"
ExpiresByType application/javascript "now plus 1 week"
ExpiresByType application/x-javascript "now plus 1 week"
# Image files expiration: 1 month after request
ExpiresByType image/bmp "now plus 1 month"
ExpiresByType image/gif "now plus 1 month"
ExpiresByType image/jpeg "now plus 1 month"
ExpiresByType image/jp2 "now plus 1 month"
ExpiresByType image/pipeg "now plus 1 month"
ExpiresByType image/png "now plus 1 month"
ExpiresByType image/svg+xml "now plus 1 month"
ExpiresByType image/tiff "now plus 1 month"
ExpiresByType image/vnd.microsoft.icon "now plus 1 month"
ExpiresByType image/x-icon "now plus 1 month"
ExpiresByType image/ico "now plus 1 month"
ExpiresByType image/icon "now plus 1 month"
ExpiresByType text/ico "now plus 1 month"
ExpiresByType application/ico "now plus 1 month"
# Webfonts
ExpiresByType font/truetype "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
</IfModule>
#END EXPIRES HEADERS

Control de Cache

# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
<filesMatch "\.(ico|jpe?g|png|gif|swf)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(css)$">
Header set Cache-Control "public"
</filesMatch>
<filesMatch "\.(js)$">
Header set Cache-Control "private"
</filesMatch>
<filesMatch "\.(x?html?|php)$">
Header set Cache-Control "private, must-revalidate"
</filesMatch>
</ifModule>
# END Cache-Control Headers

NOTA: No es necesario configurar la variable max-age en Cache-Control ya que está configurada por el módulo mod_expires. En otro caso deberíamos usar:

# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
<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>
# END Cache-Control Headers

Ahora vamos a ver los resultados de saber cómo optimizar WordPress con .htaccess.

Como optimizar WordPress con htaccess
Después jorgediaz.net
Como optimizar WordPress con htaccess
Después wp.org.sv

En lo personal, creo que si se puede mejorar bastante solo con modificar el archivo .htaccess, por favor, tomar muy en cuenta que la velocidad de WordPress depende de diferentes factores por lo que al hacer estos cambios pueden obtener resultados diferentes, unos mejor que otros o incluso, cambios no tan grandes, asi que les recomiendo utilizar diferentes herramientas, como plugins o CDN’s (Enlace Afiliado, la comunidad utiliza este servicio para optimizarla, si no quieren utilizar el link de afiliado pueden dirigirse a KeyCDN)para obtener mejores resultados.

Espero que el tutorial Como optimizar WordPress con .htaccess les sirva para optimizar su web, no olviden compartir estos post ya que ayudan a la comunidad.