Mejorar rendimiento WordPress

En este post iré haciendo una lista de tips para mejorar el rendimiento de WordPress.

Una herramienta que puedes usar para mejorar el rendimiento de WordPress es el panel de salud del sitio, que incorpora de forma nativa WordPress. Te informa de los problemas de rendimiento y te dará recomendaciones para solucionarlos. Puedes acceder a él desde el menú Herramientas -> Salud del sitio o accediendo por la URL: tudomino.com/wp-admin/site-health.php.

Puedes encontrar muchos más tips de optimización para sitios webs en Web Performance Calendar (para usuarios avanzados).

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. En CPanel está en la opción Optimize Website.

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>

Modificar la versión de PHP

Al menos se recomienda tener la versión estable de PHP 7.4.

En CPanel puedes modificarlo desde el menú Administrador MultiPHP.

Deshabilitar modo Debug

El modo debug nunca debe estar habilitado en una web en producción, solo debe activarse para pruebas. Puedes ver si está habilitado desde la pestaña de salud del sitio: Herramientas -> Salud del sitio.

Para deshabilitarlo, añade el siguiente código al wp-config.php.

define('WP_DEBUG', flase);

Añadir plugin de caché

Si tu proveedor de hosting implementa LiteSpeed, te recomiendo el plugin LiteSpeed Cache. Este te permitirá cachear la base de datos, los archivos, etc.

Otros plugins que te recomiendo son: WP Fastest Cache y WP Super Cache.

👇Tu comentario