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.
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 |
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.
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.