En este post iré haciendo una lista de tips para mejorar el rendimiento en general de WordPress.
¿Qué voy a leer?
Limitar el número de revisiones de los posts
Añade este código al archivo wp-config.php para limitar el número de revisiones máximo a guardar por cada post.
define( 'WP_POST_REVISIONS', 4 ); // Guarda un máximo de 4 revisiones
define('WP_POST_REVISIONS', false); // Deshabilita las revisiones
Si quieres eliminar las revisiones existentes, ejecuta la siguiente query en la base de datos (reemplaza «wp_» por el prefijo que corresponda).
DELETE FROM wp_posts WHERE post_type = "revision";
Deshabilitar el hotlinking
Evita que otros dominios enlacen recursos (imágenes, archivos PDF, etc…) alojados en tu web.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)tudominio.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(gif|jpg|jpeg|bmp|zip|rar|mp3|flv|swf|xml|php|png|css|pdf)$ – [F]
Incrementar el límite de memoria de PHP
Si tienes mensajes del estilo a «Allowed memory size of xxxxxx bytes exhausted» necesitas aumentar el límite de memoria dedicado para tu web.
Añade esta línea al archivo wp-config.php.
define( 'WP_MEMORY_LIMIT', '256M' );
Precargar las DNS de recursos externos
Si sabes que vas a usar ciertos recursos externos, puedes precargar las DNS para optimizar la velocidad llegado el momento de cargarlos.
Estos son algunos ejemplos de recursos que puedes precargar. Añade el código entre las etiquetas <head></head>.
<link rel="dns-prefetch" href="//fonts.googleapis.com"> // Google Fonts
<link rel="dns-prefetch" href="//ajax.googleapis.com"> // jQuery
<link rel="dns-prefetch" href="//www.google-analytics.com"> // Google Analytics
Habilita la compresión Gzip o Brotli
Seguramente esto ya lo tengas habilitado en el servidor (revisa el CPanel).
Para apache también puedes habilitarlo en el archivo .htaccess con el siguiente código:
<ifmodule mod_deflate.c="">
# Comprime HTML, JavaScript, CSS, 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
# Compatibilidad con navegadores antiguos
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent
</ifmodule>