Buenas noches,
Me gustaría acelerar el tiempo de carga de mi sitio web, y en especial el de dos URL's concretas:
Contenido solo visible a usuarios registrados
Hola Carles,
De manera general te comparto nuestras guías de optimización y específicamente una para los headers.
https://www.webempresa.com/blog/optimizar-wordpress-para-que-tu-web-cargue-mas-rapido.html
También puedes agregar el siguiente código directamente en tu htaccess
ExpiresActive on ExpiresDefault “access plus 1 month” ExpiresByType image/gif “access plus 1 month” ExpiresByType image/png “access plus 1 month” ExpiresByType image/jpg “access plus 1 month” ExpiresByType image/jpeg “access plus 1 month” ExpiresByType text/html “access plus 3 days” ExpiresByType text/xml “access plus 1 seconds” ExpiresByType text/plain “access plus 1 seconds” ExpiresByType application/xml “access plus 1 seconds” ExpiresByType application/rss+xml “access plus 1 seconds” ExpiresByType application/json “access plus 1 seconds” ExpiresByType text/css “access plus 1 week” ExpiresByType text/javascript “access plus 1 week” ExpiresByType application/javascript “access plus 1 week” ExpiresByType application/x-javascript “access plus 1 week” ExpiresByType image/x-ico “access plus 1 year” ExpiresByType image/x-icon “access plus 1 year” ExpiresByType application/pdf “access plus 1 month”
Nos comentas como te va, un saludo 🖐️
Perfecto Argenis, muchas gracias por tu respuesta, ahora me miro detenidamente la guía. En cuanto al código para htaccess, te comento que uso el plugin de caché WP Fastest Caché + Autoptimize. Lo puedo añadir igualmente sin problemas?
Muchas gracias
Hola
Con respecto al primer punto, revisa la primera respuesta de Pepe, en el siguiente hilo:
La idea es agregar esos códigos en el archivo .htaccess de tu sitio.
Saludos.
Actualmente tengo esto en htaccess:
<FilesMatch ".(php4|php5|php3|php2|php|phtml)$">
SetHandler application/x-lsphp73
</FilesMatch>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
<IfModule mod_setenvif.c>
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
</IfModule>
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
Me puedes indicar dónde lo añado por favor, si es que no me va a dar ningún problema?
Muchas gracias
Hola
Prueba agregarlo al final de todo.
Saludos.
Buenas John, me da error 500 y algo al añadir el código y cargar la página, no se ve nada, solo el informe del error. He probado añadiéndolo de estas dos formas:
OPCIÓN 1:
<FilesMatch ".(php4|php5|php3|php2|php|phtml)$">
SetHandler application/x-lsphp73
</FilesMatch>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
<IfModule mod_setenvif.c>
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
</IfModule>
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
ExpiresActive on
ExpiresDefault “access plus 1 month”
ExpiresByType image/gif “access plus 1 month”
ExpiresByType image/png “access plus 1 month”
ExpiresByType image/jpg “access plus 1 month”
ExpiresByType image/jpeg “access plus 1 month”
ExpiresByType text/html “access plus 3 days”
ExpiresByType text/xml “access plus 1 seconds”
ExpiresByType text/plain “access plus 1 seconds”
ExpiresByType application/xml “access plus 1 seconds”
ExpiresByType application/rss+xml “access plus 1 seconds”
ExpiresByType application/json “access plus 1 seconds”
ExpiresByType text/css “access plus 1 week”
ExpiresByType text/javascript “access plus 1 week”
ExpiresByType application/javascript “access plus 1 week”
ExpiresByType application/x-javascript “access plus 1 week”
ExpiresByType image/x-ico “access plus 1 year”
ExpiresByType image/x-icon “access plus 1 year”
ExpiresByType application/pdf “access plus 1 month”
OPCIÓN 2:
<FilesMatch ".(php4|php5|php3|php2|php|phtml)$">
SetHandler application/x-lsphp73
</FilesMatch>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
<IfModule mod_setenvif.c>
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
</IfModule>
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
ExpiresActive on
ExpiresDefault “access plus 1 month”
ExpiresByType image/gif “access plus 1 month”
ExpiresByType image/png “access plus 1 month”
ExpiresByType image/jpg “access plus 1 month”
ExpiresByType image/jpeg “access plus 1 month”
ExpiresByType text/html “access plus 3 days”
ExpiresByType text/xml “access plus 1 seconds”
ExpiresByType text/plain “access plus 1 seconds”
ExpiresByType application/xml “access plus 1 seconds”
ExpiresByType application/rss+xml “access plus 1 seconds”
ExpiresByType application/json “access plus 1 seconds”
ExpiresByType text/css “access plus 1 week”
ExpiresByType text/javascript “access plus 1 week”
ExpiresByType application/javascript “access plus 1 week”
ExpiresByType application/x-javascript “access plus 1 week”
ExpiresByType image/x-ico “access plus 1 year”
ExpiresByType image/x-icon “access plus 1 year”
ExpiresByType application/pdf “access plus 1 month”
</IfModule>
Qué puede estar pasando?
Hola
Prueba ponerlo al inicio de todo y verifica.
Saludos.
Hola John, vuelve a darme error. Lo he añadido así:
ExpiresActive on
ExpiresDefault “access plus 1 month”
ExpiresByType image/gif “access plus 1 month”
ExpiresByType image/png “access plus 1 month”
ExpiresByType image/jpg “access plus 1 month”
ExpiresByType image/jpeg “access plus 1 month”
ExpiresByType text/html “access plus 3 days”
ExpiresByType text/xml “access plus 1 seconds”
ExpiresByType text/plain “access plus 1 seconds”
ExpiresByType application/xml “access plus 1 seconds”
ExpiresByType application/rss+xml “access plus 1 seconds”
ExpiresByType application/json “access plus 1 seconds”
ExpiresByType text/css “access plus 1 week”
ExpiresByType text/javascript “access plus 1 week”
ExpiresByType application/javascript “access plus 1 week”
ExpiresByType application/x-javascript “access plus 1 week”
ExpiresByType image/x-ico “access plus 1 year”
ExpiresByType image/x-icon “access plus 1 year”
ExpiresByType application/pdf “access plus 1 month”
<FilesMatch ".(php4|php5|php3|php2|php|phtml)$">
SetHandler application/x-lsphp73
</FilesMatch>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
<IfModule mod_setenvif.c>
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
</IfModule>
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
Alguien que me pueda ayudar a ver dónde está el fallo?
Muchas gracias
Hola Carles,
En este momento me encuentro revisando tu caso, ¿Podrías compartirnos una copia del archivo .htaccess tal cual lo tienes luego de insertar las cabeceras que mis compañeros te han indicado anteriormente? Por favor.
Saludos 🙂
Hola Carles,
Revisa si en la configuración de WP Fastest Caché tienes activada la opción de Caché del navegador, de ser así desactívala, guarda cambios, posteriormente dirígete a tu fichero .htaccess y debajo de la línea que dice:
# END WordPress
Debajo de esta línea agrega lo siguiente:
<IfModule mod_expires.c> ExpiresActive On ExpiresByType text/css "access 1 month" ExpiresByType text/html "access 1 month" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/x-icon "access 1 year" ExpiresByType application/pdf "access 1 month" ExpiresByType application/javascript "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresDefault "access 1 month" </IfModule>
Si con esto no se corrige puedes probar activando las demás opciones de WP Fastest Caché como son Gzip, Minimizar HTML, Minimizar CSS, etc. tal como te muestro en la siguiente captura:
Por otra parte, te sugiero desactivar Autoptimize si ya tienes WP Fastest Cache, al menos de que sepas exactamente qué es lo que estás haciendo, no le veo sentido a usar 2 plugins de caché.
Saludos 🙂
Hola Bulmaro,
He desactivado Autoptimize y configurado WP Fastest Caché tal y como muestras en la imagen. Luego he ido a htaccess y he visto que no tengo esa línea "END WordPress", así que he añadido el código que me diste al final de todo, tal que así (esto es todo lo que tengo en htaccess):
<FilesMatch ".(php4|php5|php3|php2|php|phtml)$">
SetHandler application/x-lsphp73
</FilesMatch>
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
<IfModule mod_setenvif.c>
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# Don't compress images
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
</IfModule>
<IfModule mod_headers.c>
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/x-icon "access 1 year"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresDefault "access 1 month"
</IfModule>
La página no es que funcione mal, pero los resultados de Pingdom son peores que antes, y siguen apareciendo los mismos consejos de optimización, tal y como muestro en la captura adjunta. Antes me daba una puntuación de 89 (supongo que es en ordenador, porque en móvil carga muy mal) y ahora 75.
Muchas gracias
Hola Carles.
la opciones del tiempo de expiración de las cabeceras no hará que la web cargue más rápido, Lo que hace es añadirle unos tiempos de vidas de esas cabeceras antes de ser renovadas.
Por lo que veo lo de las cabeceras esta solucionado:
-> WPDoctor
El máximo problema que veo es por temas de CSS y JS
.- Activa el plugin de Autoptimize para unificar los archivos CSS y JS
-> https://es.wordpress.org/plugins/autoptimize/
Desactiva la opción de minificar js y css en el plugin de WP Fastest Caché y lo activas en el plugin de Autoptimize.
Lugo veo mejoras para fuentes pero cargan externamente y no se puede realizar nada:
Lo mismo pasa con estos recursos externos:
-> Page Spedd
Tras analizar tu web vemos las siguientes configuraciones a revisar:
Revisa todas las opciones que te indico y comprueba si mejora la carga.
Un saludo
Hola @pepesoler ,
Ojalá pudiera desactivar PixelYourSite pero no sé donde tengo que instalar el código del pixel. En qué archivo tiene que instalarse? Dónde está la carpeta y en qué lugar del código debe hacerse?
Muchas gracias