Subido por Ismael cañadas moreno

50 TECNICAS PARA WORD PRESS

Anuncio
50 técnicas WPO
para WordPress
EL EBOOK QUE TE AYUDARÁ A
OPTIMIZAR TU WORDPRESS
alvarofontela.com
raiolanetworks.es
CONTENIDO
1.Cache de página .................................................................................................... 7
2.Cache de objetos ................................................................................................... 9
3.Cache de consultas ............................................................................................... 11
4.Cache de navegador .............................................................................................. 13
5.Optimizar imágenes (compresión)........................................................................ 15
6.Optimizar imágenes (escalado)............................................................................. 17
7.Lazy load al cargar imágenes ............................................................................... 19
8.Minimizar el Javascript ........................................................................................ 21
9.Combinar el Javascript ......................................................................................... 23
10.Carga asíncrona de JavaScript (en todos los casos) ......................................... 24
11. Minificar CSS ...................................................................................................... 26
12. Combinar CSS ..................................................................................................... 27
13.Carga condicional ............................................................................................... 28
14.Cargar jquery desde CDN .................................................................................... 29
15.Optimizar Google Fonts ...................................................................................... 31
16.Optimizar Font Awesome .................................................................................... 32
17.Desactivar los query strings ............................................................................... 33
18.Optimizar entrega de CSS ................................................................................... 35
19.Lazy load en iframes y vídeos ............................................................................ 37
20.Resource hints ..................................................................................................... 39
21.Configurar un servicio CDN ................................................................................ 40
22.Desactivar emojis y dashicons ........................................................................... 42
23.Optimizar la carga de Gravatar .......................................................................... 44
24.Controlar el API Heartbeat ................................................................................. 45
25.Desactivar cart fragments en WooCommerce ................................................... 47
26.Optimizar los comentarios ................................................................................. 48
27.Desactivar OEMBED y EMBEDS ........................................................................... 49
28.Desactivar el WP_cron.php ................................................................................. 50
29.Desactivar pingbacks y trackbacks .................................................................... 51
30.Limpiar el header de WordPress ........................................................................ 53
31.Desactivar jquery migrate .................................................................................. 55
32.Definir el wp_memory_limit .............................................................................. 56
33.Cambiar las tablas a INNODB ............................................................................. 57
34.Limpiar la DB de WordPress ............................................................................... 58
35.Parámetros “autoload” en la DB ........................................................................ 60
36.Domain sharding ................................................................................................. 61
37.Subdominion cookie-less ................................................................................... 63
38.Reducir las peticiones externas ......................................................................... 65
39.Cargar analítica y píxeles desde local ................................................................ 66
40.Evitar los contadores de datos ........................................................................... 67
41.Compresión GZIP ................................................................................................ 68
42.Compresión Brotli ............................................................................................... 70
43.Actualizar la versión PHP ................................................................................... 72
44.HTTP2 y HTTP3 .................................................................................................... 74
45.Servidor web potente ......................................................................................... 75
46.DNS geodistribuidos anycast ............................................................................. 76
47.Elegir un theme simple y mobile first ................................................................ 77
48.Detectar problemas de rendimiento .................................................................. 79
49.Disponer de los recursos necesarios .................................................................. 81
50.Lógica y planificación realista ........................................................................... 83
ÁLVARO FONTELA
(CEO de Raiola Networks)
Álvaro Fontela inició su camino como emprendedor digital en 2014, cuando
cofundó la empresa de hosting y dominios Raiola Networks. Aunque para
entonces ya tenía varios años de experiencia con WordPress, fue en ese
momento cuando empezó a especializarse en la aplicación de técnicas WPO.
En este tiempo, Álvaro ha adquirido conocimientos suficientes como para
ofrecer sus servicios como consultor WordPress, ha iniciado múltiples nuevos
proyectos digitales y se ha convertido en uno de los pocos expertos en WPO
que existen en España.
Como resultado, asiste como ponente a congresos nacionales e
internacionales de forma habitual y también suele ser invitado a dar clase de
WordPress, WooCommerce y WPO en diversos másteres y escuelas de negocios.
50 técnicas WPO para WordPress
Álvaro Fontela
4
INTRODUCCIÓN A LAS TÉCNICAS WPO
El WPO ha llegado para quedarse. Aunque el concepto se inventó en 2004, solo hace 5 o
6 años que se empezó a aplicar como herramienta para mejorar el SEO de una web
desde el punto de vista del crawl y de la experiencia de usuario.
¿Pero qué es el WPO? Para que sirva como introducción, podemos decir que las técnicas
WPO consisten en una serie de buenas prácticas que nos permiten tener un sitio rápido
y efectivo.
Se apoyan en estos 3 pilares básicos:
En la mayoría de los casos, para implementar técnicas WPO es necesario disponer de
conocimientos técnicos. Por esta razón, un consultor WPO debe tener nociones de
desarrollo web y de administración de sistemas.
Ahora bien, esto no quiere decir que un profesional del mundo web o del marketing
digital no tenga la obligación de aprender qué técnicas puede aplicar a su WordPress.
Por eso, en este libro he incluido una lista de 50 técnicas WPO que se pueden aplicar a
un sitio web fácilmente, así como enlaces a fuentes donde ampliar la información.
50 técnicas WPO para WordPress
Álvaro Fontela
5
Como nota final, quiero recordarte que el WPO está en constante evolución y cambio.
Estamos viviendo un momento clave en el que las conexiones y dispositivos móviles
tienen un aumento significativo de la cuota de mercado en el tráfico web. Como
resultado, el WPO es cada día más exigente.
Este blog resultará interesante a los que quieran aprender WPO para WordPress y
todos los conceptos que lo rodean: https://alvarofontela.com/blog/
También encontraras artículos sobre WPO en el blog de Raiola Networks:
https://raiolanetworks.es/blog/
Si lo que se busca es un hosting rápido y eficiente, en Raiola Networks ofrecemos
planes con LiteSpeed y cPanel: https://raiola.link/hostingwp/
Y ahora, ¡manos a la obra!
50 técnicas WPO para WordPress
Álvaro Fontela
6
1.CACHE DE PÁGINA
(page cache)
El cache de página debe ser siempre la primera técnica WPO que pongas en marcha.
Resulta totalmente indispensable para tener una buena velocidad de carga en cualquier
web. Teniendo en cuenta la complejidad de las webs actuales a nivel dinámico, el hecho
de no tener un cache de página puede implicar un cuello de botella importante.
Un cache de página, ya sea mediante plugin o mediante un servicio en el server,
ayudará a ahorrar recursos en la ejecución de la web. Además, mejorará los tiempos de
respuesta tanto para el usuario como para el bot de Google.
50 técnicas WPO para WordPress
Álvaro Fontela
7
Aunque un cache implementado con un servicio como Nginx o Varnish es más efectivo y
directo, con un plugin de cache para WordPress la implementación es mucho más
flexible para el administrador del sitio web. De hecho, suele suceder que el webmaster
solo tenga la posibilidad de activar un cache en formato plugin.
Existen distintos plugins de cache para WordPress, pero en Raiola Networks
normalmente recomendamos estos tres:
WP Rocket: Uno de los más efectivos y, al mismo tiempo, el más fácil de
configurar. El único hándicap es que es de pago.
W3 Total Cache: Una completa suite de optimización para WordPress. Es el
plugin más completo, pero también el más complejo de configurar.
LiteSpeed Cache: Más que un plugin de cache, es otra suite de optimización para
WordPress. Lo malo es que necesitamos un hosting con LiteSpeed Web Server para aprovecharlo al máximo.
https://raiola.link/enlace1
50 técnicas WPO para WordPress
Álvaro Fontela
8
2.CACHE DE OBJETOS
(object cache)
El cache de objetos es un gran desconocido dentro del mundo de WordPress y, como
consecuencia, muy poca gente lo utiliza. Es una lástima, porque puede ayudar mucho
con la velocidad de webs muy dinámicas; por ejemplo, tiendas online WooCommerce o
redes sociales BuddyPress.
El cache de objetos no es exclusivo de WordPress o de sistemas web, para no entrar en
temas complejos a continuación veremos la función que cumple en WordPress.
En resumen, lo que hace es guardar pequeños fragmentos de código PHP procesado en
la memoria RAM mediante un servicio instalado en el servidor. Además, en WordPress
no solo cachea código PHP, sino que puede ahorrar ciertas consultas a la base de datos.
Los datos se guardan en RAM, de modo que el acceso a ellos resulta mucho más
rápido. Ahora bien, para eso hay que tener instalado ese servicio en el servidor que
trabaje como cache de objetos.
Los más comunes son Redis y Memcached.
50 técnicas WPO para WordPress
Álvaro Fontela
9
Ahora que el servidor tiene uno de estos servicios instalado (o bien está funcionando en
alguna instancia), para implementarlo en WordPress es necesario utilizar un plugin.
Algunas posibilidades son:
Memcached Redux: Un plugin bastante rudimentario que sirve para usar
servidores Memcached para el cache de objetos.
W3 Total Cache: Una completa suite de WPO para WordPress que, entre otras
funcionalidades, permite configurar object cache con Redis y Memcached, además de
con otros servicios.
Redis Object Cache: Un plugin bastante sencillo para utilizar Redis en
WordPress.
https://raiola.link/enlace2
50 técnicas WPO para WordPress
Álvaro Fontela
10
3.CACHE DE CONSULTAS
(query cache)
El cache de consultas a la base de datos, también conocido como query cache, es un
buen complemento al cache de objetos cuando hay que aumentar la velocidad de sitios
web muy dinámicos.
El cache de consultas sirve para guardar el resultado de las llamadas realizadas a la
base de datos. De este modo, se ahorran tiempo y recursos cuando se vuelven a realizar
esas consultas más tarde.
Los principales sistemas de bases de datos que se pueden utilizar con WordPress llevan
configuración para implementar query_cache. Sin embargo, hay que tener en cuenta
que en las tablas innoDB no es indispensable hacerlo (de hecho, es posible que resulte
contraproducente).
50 técnicas WPO para WordPress
Álvaro Fontela
11
En instalaciones WordPress muy dinámicas, el cache de consultas ayudará con el WPO
de la web siempre y cuando se realicen las exclusiones necesarias.
También se puede implementar el cache de consultas a la base de datos mediante
plugins. Actualmente, la única solución efectiva es el Query Cache de W3 Total Cache.
Un cache de consultas bien implementado es como uno de objetos eficiente: acelerará
el back-end o dashboard de administración de WordPress.
https://raiola.link/enlace3
50 técnicas WPO para WordPress
Álvaro Fontela
12
4.CACHE DE NAVEGADOR
(browser cache)
El cache de navegador o browser cache es un tipo de cache diferente a todos los
mencionados hasta ahora.
Su funcionamiento es simple: se guardan los archivos estáticos en el navegador del
visitante durante la primera visita para así ahorrar ancho de banda, peticiones y tiempo
de descarga en visitas posteriores.
El browser cache no tiene influencia alguna sobre el crawl por parte del bot de Google,
pero sí beneficia a la experiencia de usuario y al nivel de usabilidad.
50 técnicas WPO para WordPress
Álvaro Fontela
13
Normalmente, el cache de navegador se configura en el .htaccess del host o en el
archivo de configuración correspondiente del servidor web.
Puede parecer una tontería, pero resulta sorprendente el ancho de banda que se ahorra
al cachear elementos estáticos pesados, como las imágenes.
Teniendo en cuenta que la navegación mediante conexiones de datos móviles tiene una
cuota de mercado altísima, el browser cache supone una gran mejora en la mayoría de
los casos.
Lo único que hay que tener en cuenta es que, en algunos casos, si no se configura bien
el cache de navegador puede haber problemas con las actualizaciones de contenido si
los archivos llevan el mismo nombre.
https://raiola.link/enlace4
50 técnicas WPO para WordPress
Álvaro Fontela
14
5.OPTIMIZAR IMÁGENES
(compresión)
El 99% de los sitios web de Internet (incluyendo los ecommerce) tienen un problema
tanto con la compresión como con el escalado de imágenes.
Comprimir una imagen consiste en utilizar algoritmos para reducir su peso a costa de
perder un poco de calidad. Dicha pérdida, en muchos casos, no es perceptible para el
ojo humano.
La eficacia de la compresión depende del algoritmo utilizado y del nivel de compresión.
Es necesario tener en cuenta que, cuanto más se comprima una imagen, peor será su
calidad y menor será su peso.
50 técnicas WPO para WordPress
Álvaro Fontela
15
Se pueden comprimir las imágenes antes de subirlas a la web utilizando una aplicación
de escritorio o un servicio online. Otra opción es instalar un plugin para WordPress que
optimice las imágenes al cargarlas
Algunos de los mejores complementos para comprimir imágenes en WordPress son los
que usan servicios externos más eficientes y no las librerías del servidor:
Imagify: Potente y flexible, de pago por uso. Un plugin de optimización
desarrollado por el mismo equipo que creó WP Rocket.
Resmush.it: Una opción gratuita. No es la más potente, pero es de las mejores
que están disponibles sin coste.
Otras alternativas son Kraken.io o TinyPNG.
EWWW Image Optimizer: Otro plugin para WordPress que automatiza la optimización de imagenes. Tiene version gratuita y de pago.
https://raiola.link/enlace5
50 técnicas WPO para WordPress
Álvaro Fontela
16
6.OPTIMIZAR IMÁGENES
(escalado)
El escalado de imágenes es un método de optimización menos conocido que la
compresión, pero está basado en la lógica.
Es muy simple: si el layout de una web tiene un máximo de 1200px de ancho, no hay
razón para subir imágenes más amplias. Por CSS se van a mostrar más pequeñas,
aunque van a pesar exactamente lo mismo, lo que ralentizará la carga.
Aunque hace ya tiempo que WordPress carga distintas versiones y miniaturas de las
imágenes para utilizar la que mejor se adapta al tamaño mediante srcset, nunca está de
más cuidar el escalado.
50 técnicas WPO para WordPress
Álvaro Fontela
17
Al igual que sucede con la compresión, el proceso de escalado puede hacerse antes de
subir las imágenes o después, utilizando un plugin específico. En realidad, la mayoría de
plugins de optimización también tienen funcionalidades específicas para escalar
imágenes al tamaño máximo que indique el webmaster.
En Raiola Networks recomendamos que se escalen las imágenes en local, en el
ordenador, y teniendo en cuenta el layout del sitio web al que se van a subir.
De todas maneras, si se desea utilizar un plugin la mejor opción es Imsanity, que es un
complemento gratuito disponible en el repositorio.
https://raiola.link/enlace6
50 técnicas WPO para WordPress
Álvaro Fontela
18
7.LAZY LOAD AL CARGAR IMÁGENES
Lazy load es una técnica WPO que permite retrasar la carga de contenido web que no es
necesario en un primer momento.
Cuando aplicamos lazy load con imágenes, estas se van cargando según el usuario va
haciendo scroll o bajando por la página.
De este modo, se reducen las peticiones y el ancho de banda utilizados, ya que es
posible que el usuario nunca llegue a hacer scroll hasta el final de la página.
Hasta hace poco, para utilizar lazy load era necesario utilizar una librería JavaScript.
50 técnicas WPO para WordPress
Álvaro Fontela
19
Sin embargo, en la actualidad, los navegadores como Google Chrome ya han integrado
lazy load nativo.
Con el lazy load nativo se elimina una petición JavaScript, con lo que eso conlleva. Al
mismo tiempo, se consigue mayor eficiencia en los dispositivos menos potentes.
La técnica lazy load no hace milagros, pero ayuda a agilizar la renderización de la
página para los usuarios con navegadores muy lentos. Además, también ahorra ancho
de banda en conexiones de datos móviles.
https://raiola.link/enlace7
50 técnicas WPO para WordPress
Álvaro Fontela
20
8.MINIFICAR JAVASCRIPT
La minificación es una de las técnicas de optimización de archivos JavaScript más
conocidas y, al mismo tiempo, más difíciles de implementar.
La minificación de JavaScript consiste en reducir al máximo el tamaño y peso de los
archivos JavaScript. Para conseguirlo, se realizan las siguientes acciones:
Eliminar los comentarios en el JS.
Eliminar los saltos de línea en el JS.
Eliminar los espacios, siempre que sea posible.
Se mantiene la sintaxis del archivo, pero se eliminan todos los caracteres que no son
interpretables por el navegador y que ocupan espacio en el archivo.
Cuanto más ligeros sean los archivos JavaScript, menor será su impacto sobre el
rendimiento del navegador del visitante y mejores puntuaciones se obtendrán en
métricas como las de Google PageSpeed Insights y Google LightHouse.
Existen dos formas de realizar la minificación de JavaScript: manual y automática.
Para minificar de forma manual, son necesarios conocimientos avanzados de JavaScript
y tiempo.
50 técnicas WPO para WordPress
Álvaro Fontela
21
En cambio, si se minifica de forma automática a través de plugins, habrá que añadir
exclusiones para afinar sin romper nada.
Actualmente, los archivos JS de los plugins y themes para WordPress son tan complejos
que es normal tener problemas al minificar. En muchos casos, ni añadiendo exclusiones
a la minificación automática se podrá conseguir un buen resultado.
Algunos plugins de cache, como WP Rocket o LiteSpeed Cache, implementan
herramientas para minificar el JavaScript. También existen soluciones específicas como
Autoptimize.
https://raiola.link/enlace8
50 técnicas WPO para WordPress
Álvaro Fontela
22
9.COMBINAR JAVASCRIPT
El combinado de JavaScript es otra técnica que ayuda a simplificar la carga de un sitio
web.
En el pasado, el objetivo del combinado de JavaScript era reducir el número de
peticiones realizadas durante la carga de la web.
Sin embargo, hoy en día el combinado ya no resulta tan efectivo como antes, debido a la
aparición del protocolo HTTP/2. Ahora, salvo que el número de archivos JS que hay que
cargar sea exageradamente alto, puede ser incluso más eficiente enviar varios archivos
más pequeños.
El combinado consiste en unir varios archivos JavaScript en un único archivo. Esto
funciona bien en teoría, pero en la práctica puede provocar problemas de
dependencias.
Al igual que en el caso de la minificacion de JavaScript, el combinado puede realizarse
de forma manual y también de forma automática.
En el caso de hacerlo de forma manual, harán falta conocimientos profundos de
JavaScript y también tiempo. Cuanto más complejo sea el theme o plugin, más tiempo
se tardará y más soltura con JavaScript será necesaria.
Para minificar de forma automática pueden utilizarse plugins que identifican patrones,
como en el caso de la minificación. No obstante, habrá que añadir exclusiones para
afinar la carga.
Como se ha mencionado, el combinado ya no resulta tan efectivo como solía, pero
tampoco podemos considerarlo todavía como una técnica WPO obsoleta.
Algunos plugins para llevarlo a cabo son WP Rocket y LiteSpeed Cache, como en el caso
de la minificacion. También existen soluciones específicas como Autoptimize.
https://raiola.link/enlace9
50 técnicas WPO para WordPress
Álvaro Fontela
23
10.CARGA ASÍNCRONA DE JAVASCRIPT
La carga asíncrona es una de las técnicas WPO más efectivas en lo que se refiere al
JavaScript.
La carga asíncrona es una modificación simple. Se trata de conseguir que ningún script
JavaScript bloquee la carga esperando por dependencias o por cualquier otra razón.
Para conseguirlo, los scripts JS se cargan en paralelo en lugar de hacerlo en serie.
Si se configura una carga asíncrona efectiva, los visitantes podrán ver el sitio web
antes de que acabe de cargar por completo, de modo que se mejorarán la experiencia
de usuario y la velocidad de carga que percibe esa visita.
50 técnicas WPO para WordPress
Álvaro Fontela
24
Además, la carga asíncrona resulta totalmente imprescindible para mejorar las
puntuaciones asignadas por Google en Google PageSpeed y Google LightHouse.
Se puede implementar fácilmente la carga asíncrona con plugins como Async JavaScript
(de los creadores de Autoptimize) o con plugins de cache como WP Rocket o LiteSpeed
Cache.
https://raiola.link/enlace10
50 técnicas WPO para WordPress
Álvaro Fontela
25
11.MINIFICAR CSS
Al igual que en el caso del JavaScript, se pueden minificar las hojas de estilo CSS con el
fin de reducir el tamaño de los archivos y agilizar la carga.
Las acciones que hay que llevar a cabo para minificar los archivos CSS son exactamente
las mismas:
Eliminar los comentarios en el CSS.
Eliminar los saltos de línea en el CSS.
Eliminar los espacios, siempre que sea posible.
El objetivo es eliminar todos los caracteres que no son interpretables por el navegador.
Como en el caso de la minificación de JavaScript, esta continúa siendo una técnica
efectiva y que se debe aplicar siempre que resulte posible.
Sin embargo, en el caso del CSS no ocurre como en el JavaScript: el CSS no suele influir
demasiado sobre el rendimiento del navegador del visitante, aunque resulte excesivo.
Se puede minificar el CSS de forma manual o automática.
Si se hace de forma manual, habrá que tener conocimientos amplios sobre CSS. En
cambio, si se hace de forma automática es posible que haya que añadir muchas
exclusiones para afinar la carga y evitar que se rompa el diseño del sitio. Todo
dependerá de la complejidad del theme utilizado.
Al igual que sucede con técnicas anteriores, la minificación de CSS influye directamente
sobre la puntuación asignada por Google en Google PageSpeed y Google LightHouse.
Resulta posible minificar el CSS con plugins específicos como Autoptimize o con plugins
de cache como WP Rocket o LiteSpeed Cache.
https://raiola.link/enlace11
50 técnicas WPO para WordPress
Álvaro Fontela
26
12.COMBINAR CSS
El combinado de CSS, al igual que el de JavaScript, es una técnica WPO que ha dejado
de resultar tan efectiva como en el pasado. Igualmente, no se trata de una técnica
obsoleta.
El combinado de CSS consiste en unir varios archivos CSS en un único archivo con el
objetivo de agilizar la carga al reducir el número de peticiones.
Al igual que en el caso del combinado de JavaScript, en webs que cargan con HTTP/2
no es necesario utilizar el combinado de CSS salvo que el número de archivos CSS sea
exageradamente alto.
El combinado de CSS también se puede llevar a cabo de forma manual y automática.
Para el método manual son necesarios conocimientos avanzados de CSS y tiempo. Para
hacerlo de forma automática existen plugins, pero hará falta añadir las exclusiones
necesarias para no romper el diseño del sitio web.
Si al combinar CSS no se respetan las dependencias o no se ajusta correctamente la
sintaxis de los archivos, es posible que el diseño de la web salga perjudicado.
Se puede combinar de forma automática el CSS mediante plugins como Autoptimize o a
través plugins de cache como WP Rocket o LiteSpeed Cache.
Sin embargo, hay que tener en cuenta que la complejidad de los themes actuales
dificulta muchísimo el combinado de CSS. Por otro lado, aunque quizá resulte más
eficiente servir varios archivos en lugar de uno al utilizar HTTP/2, puede ser interesante
minificar debido a que los themes actuales usan demasiados archivos CSS.
https://raiola.link/enlace12
50 técnicas WPO para WordPress
Álvaro Fontela
27
13.CARGA CONDICIONAL
La carga condicional es una técnica WPO especialmente útil en instalaciones WordPress
muy sobrecargadas de plugins.
El objetivo es especificar lo que se carga y lo que se deja de cargar en las distintas secciones de la web. Lo ideal es que un plugin solo se cargue cuando va a ser utilizado,
pero esto en la práctica no es así.
Esta técnica WPO es específica de los CMS, ya que en desarrollos a medida no suele ser
necesaria.
Si se consigue afinar bien la carga condicional, se obtendrán beneficios en tres áreas:
Mejoras en el rastreo por parte del bot de Google.
Mejoras en las puntuaciones de Google PageSpeed y Google LightHouse.
Mejoras en la experiencia de usuario al sobrecargar menos el navegador.
Para implementar una carga condicional efectiva mediante un plugin con interfaz gráfica como Perfmatters es necesario aplicar la lógica: si solo se utiliza la funcionalidad de
un plugin en una página en concreto, simplemente se debe desencolar su carga en toda
la web excepto en esa página específica.
Desde hace unos años, han ido apareciendo plugins como WP Shifty, Perfmatters o Asset
CleanUp Pro que facilitan la implementación de la carga condicional en WordPress.
https://raiola.link/enlace13
50 técnicas WPO para WordPress
Álvaro Fontela
28
14. CARGAR JQUERY DESDE CDN
Siendo JavaScript el lenguaje client-side más utilizado del mundo y jQuery su librería
más utilizada, con más del 90% de cuota de mercado, resulta interesante optimizar al
máximo la carga de esta librería.
Es posible agilizar la carga de jQuery cargando la librería principal y sus dependencias
desde un CDN especializado.
¿Qué CDN existen para cargar jQuery?
CDNJS (usa la red de CloudFlare CDN)
jsDelivr
Google Hosted Libraries
La implementación de un CDN para jQuery varía en función del servicio CDN concreto
que se quiera implementar.
50 técnicas WPO para WordPress
Álvaro Fontela
29
Los que aparecen listados más arriba alojan todas las versiones de jQuery y sus
dependencias (con sus versiones) para ser totalmente compatibles con los plugins y
themes instalados.
Si ya se está utilizando un CDN para el resto de archivos de la web, puede que este tipo
de servicios para el jQuery no sean necesarios. Eso dependerá totalmente de la
configuración.
Un ejemplo de plugin útil para configurar fácilmente un CDN para jQuery es commonWP.
https://raiola.link/enlace14
50 técnicas WPO para WordPress
Álvaro Fontela
30
15.OPTIMIZAR GOOGLE FONTS
Actualmente, Google Fonts es utilizado por la mayoría de webmasters porque son
muchos los themes para WordPress que cargan estas fuentes.
En muchos casos, la carga de Google Fonts desde los servidores de Google puede
suponer un cuello de botella que ralentizará la carga de toda la web.
Hay que tener en cuenta que, cuando se carga un tipo de fuente en diferentes tamaños y
tipos (negrita, cursiva, etc.), se realizan distintas peticiones al servicio de Google Fonts:
una por cada combinación.
Y, precisamente, el principal problema de Google Fonts es que se cargan distintas
peticiones desde los servidores de Google, que no siempre son rápidos.
Una buena opción para agilizar la carga de fuentes desde Google Fonts es, simplemente,
combinar todas las peticiones en un único archivo y configurar la carga asíncrona.
Para hacerlo, el primer paso deberá ser guardarlas en local, ya que en caso contrario no
se podrán modificar las peticiones realizadas a los servidores de Google.
Existen plugins específicos como Self-Hosted Google Fonts Pro, aunque otros como
Asset CleanUp Pro o WP Rocket incluyen las funcionalidades necesarias.
https://raiola.link/enlace15
50 técnicas WPO para WordPress
Álvaro Fontela
31
16.OPTIMIZAR FONT AWESOME
Font Awesome es la librería de iconos más utilizada actualmente. De hecho, incluso una
instalación básica de WordPress utiliza Font Awesome para cargar los iconos.
El problema de esta librería es que, a través de diversos archivos, se cargan muchos más
iconos de los que realmente se utilizan.
Por ello, es posible afinar y agilizar la carga de Font Awesome eliminando del CSS todos
aquellos iconos que no estén en uso en la web.
Además, este proceso conllevará el alojamiento de una copia local de Font Awesome, lo
que permitirá optimizar aún más su carga.
Si el webmaster decide ir un poco más allá, puede incluso pasar esos iconos de Font
Awesome a formato SVG, mucho más eficiente.
Por otro lado, en sitios web que no utilizan Font Awesome y donde su carga no es
deseable, esta se puede desactivar desde el front-end, aunque esto dependerá
totalmente del theme y las dependencias.
Una última consideración que no se puede perder de vista es que la versión actual de
Font Awesome es la 5 (a fecha de redacción de esta guía), pero se utiliza cargando un
script llamado shim.js para ser compatible con Font Awesome 4. Si no es utiliza la
versión 4, lo más conveniente es desactivar dicho script.
https://raiola.link/enlace16
50 técnicas WPO para WordPress
Álvaro Fontela
32
17.DESACTIVAR LOS QUERY STRINGS
Los query strings son algo que todo el mundo ve en las URL de carga de una web, pero
muy poca gente sabe para qué sirven ni qué influencia tienen sobre el WPO del sitio.
La mejor forma de entender lo que son los query strings es a través de una imagen:
Ese “?ver=1.4.1” es un query string que, teóricamente, sirve para mostrar la versión de
los recursos cargados y, precisamente, evitar el cacheado.
El problema de los query strings es que pueden dificultar el cache de recursos a través
de CDN o servicios de proxy inverso como Nginx o Varnish.
WordPress, de forma nativa, utiliza query strings en absolutamente todos los recursos
JavaScript y CSS que cargan los plugins y themes. Como consecuencia, si se desea
optimizar de forma efectiva un WordPress con cache y CDN, habrá que desactivar los
query strings para que las rutas a los recursos aparezcan limpias. Sin embargo, cada vez
más CDN tienen en cuenta los query strings.
50 técnicas WPO para WordPress
Álvaro Fontela
33
Para desactivar los query strings existen tres opciones:
Utilizar plugins que incluyan esta opción, como WP Rocket o Perfmatters.
Utilizar plugins específicos de los que podemos encontrar gratis en el repositorio de plugins de WordPress.
Usar un código en el functions.php.
https://raiola.link/enlace17
50 técnicas WPO para WordPress
Álvaro Fontela
34
18.OPTIMIZAR LA ENTREGA DE CSS
Los sitios web actuales incluyen una cantidad considerable de CSS. Por esa razón, todas
las optimizaciones llevadas a cabo sobre las hojas de estilos van a tener un resultado
notable sobre la velocidad de carga.
La optimización de la entrega del CSS es una de las reglas que suele aparecer en Google
PageSpeed Insights y en Google LightHouse.
Lo que se logra al aplicar esta técnica es que la carga del CSS no bloquee la
visualización del sitio web a los visitantes.
No existe una forma exacta de optimizar la entrega de CSS, sino que hay que seguir
varias buenas prácticas:
Cuantos menos archivos CSS se carguen, mejor.
La parte superior de la web debe contener CSS simple.
Debe incluirse el menor número posible de @import.
No se debe usar CSS en las etiquetas del HTML.
En los themes multipropósito actuales, muchas veces es imposible cumplir con la
mayoría de estas buenas prácticas, debido a la complejidad que ostentan.
En sitios web que realicen numerosas peticiones de archivos CSS a servicios externos,
resultará imposible optimizar la entrega del CSS. El motivo es que no se podrán unir
todas las peticiones externas en un solo archivo CSS combinado sin que se rompa algo.
50 técnicas WPO para WordPress
Álvaro Fontela
35
Al fin al cabo, esta técnica de optimización se basa en la carga de hojas de estilo CSS
depuradas y limpias, una situación que rara vez se da en casos reales de themes
WordPress.
Algunos plugins, como WP Rocket, permiten optimizar la entrega del CSS. Sin embargo,
los resultados obtenidos varían mucho en función de la complejidad de la plantilla
utilizada.
https://raiola.link/enlace18
50 técnicas WPO para WordPress
Álvaro Fontela
36
19.LAZY LOAD EN IFRAMES Y VÍDEOS
La técnica lazy load no solo se puede aplicar a la carga de las imágenes, sino también a
los iframes y a los vídeos incrustados.
El objetivo es exactamente el mismo que en el caso de las imágenes: reducir el impacto
sobre el rendimiento al cargar los scripts y contenidos solamente cuando se necesitan
al hacer scroll y no en la primera carga de la web.
En el caso del lazy load en iframes y vídeos incrustados, se conseguirá un beneficio
mayor incluso que con las imágenes.
50 técnicas WPO para WordPress
Álvaro Fontela
37
Al implementar lazy load en vídeos de YouTube o iframes que cargan cuadros sociales,
se evita la carga de ciertos scripts JavaScript y archivos CSS que consumen recursos en
el navegador de los visitantes.
El lazy load sobre este tipo de elementos puede definirse como una especie de carga
asíncrona específica.
Esta técnica de optimización puede implementarse para iframes y vídeos a través de
plugins de cache como WP Rocket y de plugins específicos como Lazy Load.
https://raiola.link/enlace19
50 técnicas WPO para WordPress
Álvaro Fontela
38
20.RESOURCE HINTS
(precarga)
Los resource hints pueden considerarse como una técnica WPO bastante reciente, pero
que empieza a ganar peso debido a las mejoras de HTTP/2.
Se trata de una serie de acciones que sirven para agilizar la carga de una web a través
de la precarga de recursos.
Preconnect: Se fuerza al navegador a preconectarse con el hostname. Se
superpone al DNS Prefetch.
DNS Prefetch: Se fuerza al navegador a realizar la petición DNS antes de que se
necesite.
Prerender: Se fuerza al navegador a pre-renderizar la página que le indiquemos
antes de que el visitante la pida.
Preload: Se fuerza al navegador web a precargar un recurso como una imagen,
un JavaScript o un CSS antes de que el navegador del visitante lo pida.
Prefetch: Se fuerza al navegador a que cargue ciertos recursos y elementos
cuando se termine la carga de la web.
El objetivo no es aplicar todas las acciones al mismo tiempo, sino ir combinándolas
para conseguir optimizar al máximo el tiempo de carga de elementos en el navegador
del visitante y minimizar así los tiempos muertos.
Los resource hints pueden obtener una mejoría muy notable en la carga de peticiones a
servidores externos.
Pueden implementarse mediante etiquetas en el código del header, aunque lo ideal es
hacerlo con un plugin como PreParty Resource Hints.
https://raiola.link/enlace20
50 técnicas WPO para WordPress
Álvaro Fontela
39
21.CONFIGURAR UN SERVICIO CDN
Los servicios CDN son cruciales para garantizar una buena velocidad de carga desde
cualquier punto geográfico del planeta.
Lo que hace un servicio CDN es servir los archivos estáticos (imágenes, JavaScript, CSS,
PDF, etc.) desde servidores que se encuentran físicamente más cerca del visitante.
Como resultado, se reducen las latencias y se mejora la velocidad de respuesta y de
descarga.
Hace unos años, los servicios CDN solo se recomendaban para webs grandes como
YouTube, Facebook, etc. Sin embargo, actualmente es recomendable que todas las webs
que tengan un porcentaje de tráfico “lejano” cuenten con esta ayuda adicional. Por
ejemplo, una web española alojada en España con una cantidad importante de tráfico
originario de América Latina.
50 técnicas WPO para WordPress
Álvaro Fontela
40
Existen cientos de servicios CDN, pero algunos de los más eficientes son CloudFlare,
Amazon CloudFront, KeyCDN o CDN77.
Para implementar un CDN en WordPress se pueden utilizar distintos procedimientos y
plugins. WP Rocket, Perfmatters o CDN Enabler son tres complementos que permiten
esta opción.
https://raiola.link/enlace21
50 técnicas WPO para WordPress
Álvaro Fontela
41
22.DESACTIVAR EMOJIS Y DASHICONS
Es importante tener en cuenta que cualquier elemento que se cargue en una web va a
generar un impacto sobre su velocidad.
Cuando se cargan emojis o dashicons, aunque resulten curiosos o llamativos a los
visitantes, lo cierto es que se generan peticiones adicionales.
Existe un caso muy frecuente: cuando no se utilizan ni los dashicons ni emojis, pero aun
así se cargan en cada visita.
50 técnicas WPO para WordPress
Álvaro Fontela
42
Las peticiones generadas por la carga de estos iconos no provocan un gran problema de
rendimiento, pero todo suma.
En caso de que ni los emojis ni los dashicons se estén utilizando realmente en la web, lo
mejor es desactivar ambas peticiones con un tweak o a través de un plugin.
https://raiola.link/enlace22
50 técnicas WPO para WordPress
Álvaro Fontela
43
23.OPTIMIZAR LA CARGA DE GRAVATAR
Desde el nacimiento del concepto de la web 2.0 y de los blogs, Gravatar se ha ganado el
puesto del servicio centralizado de avatares más implementado.
WordPress, de forma nativa, permite cargar los avatares de la gente que comenta en un
post directamente desde Gravatar.
Lo que hace WordPress, para cargar el avatar correspondiente desde los servidores de
Gravatar, es utilizar el email que el visitante utiliza para dejar un comentario en la web.
Aunque las imágenes de avatar cargadas desde Gravatar son pequeñas y tienen un peso
relativamente reducido, cuando una página reúne muchos comentarios el resultado es
la carga de numerosas imágenes pequeñas. Esto implica realizar múltiples peticiones a
los servidores de Gravatar.
Un buen método para optimizar la carga de Gravatar pasa por cachear las imágenes de
los avatares desde local, es decir, en el propio servidor.
Podemos cachear los avatares utilizando plugins como Optimum Gravatar Cache o FV
Gravatar Cache, ambos gratuitos y disponibles en el repositorio oficial de plugins de
WordPress. También plugins como LiteSpeed Cache nos permiten optimizar la carga de
Gravatar.
https://raiola.link/enlace23
50 técnicas WPO para WordPress
Álvaro Fontela
44
24.CONTROLAR EL API HEARTBEAT
El API Heartbeat de WordPress es una funcionalidad muy importante que hace posible
que funcionen la mayoría de características dinámicas del CMS.
El API Heartbeat logra que el código AJAX se comunique con el núcleo de WordPress
para dar vida a funcionalidades tan importantes como, por ejemplo, los carritos de
WooCommerce o el envío de formularios con condicionales de Gravity Forms.
El funcionamiento del API Heartbeat de WordPress es muy simple: se envía un “pulso”
cada cierto tiempo (de forma nativa, cada 15 segundos) entre el navegador del visitante
y el servidor con el fin de sincronizarse.
Este pulso tiene un impacto sobre la velocidad de carga de la web. No obstante, es posible reducir dicho impacto simplemente aumentando el tiempo que pasa entre pulsos de
15 segundos hasta 120 segundos.
50 técnicas WPO para WordPress
Álvaro Fontela
45
No es recomendable desactivar por completo el API Heartbeat, ya que se perderán
funcionalidades vitales de WordPress.
El API Heartbeat suele funcionar a través del archivo admin-ajax.php de WordPress o, en
WooCommerce, a traves de la query wc-ajax=get_refreshed_fragments.
Existen plugins para modificar el funcionamiento del API Heartbeat, como Heartbeat
Control, Perfmatters o WP Rocket. Además, también se puede hacer de forma manual
modificando el functions.php.
https://raiola.link/enlace24
50 técnicas WPO para WordPress
Álvaro Fontela
46
25.DESACTIVAR CART FRAGMENTS EN
WOOCOMMERCE
WooCommerce es un plugin que sirve para convertir una instalación de WordPress en
una solución ecommerce bastante más compleja que el CMS original.
WooCommerce utiliza el API Heartbeat para gestionar las peticiones dinámicas en AJAX
y mejorar la experiencia para los compradores y visitantes de la tienda.
La función cart fragments sirve para gestionar todas las partes dinámicas del carrito:
añadir, eliminar o modificar productos sin necesidad de recargar la página.
De forma nativa, siempre que WooCommerce esté activado en WordPress se cargará la
funcionalidad cart fragments. Como resultado, se producirá un consumo de recursos
bastante elevado tanto en el servidor como en el navegador del visitante.
Lo más recomendable es desactivar la funcionalidad cart fragments siempre que no se
necesite el carrito de la tienda online.
Por ejemplo, en una tienda online WooCommerce con blog se puede desactivar la
funcionalidad cart fragments en todo el blog, ya que no será necesario que se cargue el
carrito de forma dinámica.
También se puede desactivar esta funcionalidad allí donde no resulte necesaria a través
de plugins como WP Rocket o Perfmatters, así como de forma manual con un tweak en
el functions.php.
https://raiola.link/enlace25
50 técnicas WPO para WordPress
Álvaro Fontela
47
26.OPTIMIZAR LOS COMENTARIOS
Los comentarios de WordPress son una de las partes más importantes de la web 2.0, ya
que permiten a los visitantes interactuar con el autor del contenido.
Cuando en una publicación hay muchos comentarios, la carga de todos los elementos
que los forman puede suponer un problema para el rendimiento de la web. El motivo es
que aumentarán de forma exponencial los elementos DOM y las peticiones necesarias
para cargar el sitio.
Una de las optimizaciones que se pueden realizar es la carga local de Gravatar, como se
explicaba en páginas anteriores. No obstante, eso no evita que se tenga que cargar todo
el contenido.
Además, si la página no está cacheada el problema será aún mayor, ya que habrá que
realizar todas las peticiones correspondientes a la base de datos MySQL de WordPress.
Existen varias formas de optimizar la carga de los comentarios en WordPress. Una de
ellas consiste en aplicar lazy load a los comentarios.
Al aplicar esta técnica de optimización, no se cargarán todos los comentarios de golpe
al abrir la página, sino que se cargarán cuando el usuario vaya navegando y haciendo
scroll.
Otro método para optimizar la carga de los comentarios pasa por paginarlos. De este
modo, también se evita que se carguen todos de golpe nada más llegar a la página.
Se puede configurar lazy load para los comentarios nativos de WordPress a través Lazy
Load for Comments. Si lo que se desea es paginar los comentarios, Show All Comments
permite hacerlo fácilmente.
https://raiola.link/enlace26
50 técnicas WPO para WordPress
Álvaro Fontela
48
27.DESACTIVAR OEMBED Y EMBEDS
Desde hace tiempo, WordPress incluye una funcionalidad que sirve para incrustar
contenido en las páginas fácilmente, simplemente pegando el enlace.
Evidentemente, para que esto funcione el enlace debe vincular un servicio compatible
con oEmbed. Por supuesto, la mayoría de los servicios online más conocidos (como
YouTube, Vimeo, ScriDB, etc.) cumplen esta condición.
El problema es que esta compatibilidad con los incrustados fáciles oEmbed, incluso si
nunca la utilizamos, provoca una petición más a un archivo JavaScript en toda la instalación de WordPress.
Pero eso no es todo. Resulta que una instalación de WordPress también puede funcionar
como servicio incrustable, permitiendo así incrustar un post de un WordPress en otro a
través de oEmbed.
Los oEmbed pueden desactivarse fácilmente mediante un filtro en el functions.php del
theme activo, así como mediante plugins de tweaking como Perfmatters, Asset CleanUp
Pro o Disable Embeds.
Además, esto no implica que se pierda la posibilidad de incrustar elementos como los
reproductores de YouTube, ya que siempre se pueden añadir de forma manual (y mucho
más personalizada) con el código proporcionado por el servicio.
https://raiola.link/enlace27
50 técnicas WPO para WordPress
Álvaro Fontela
49
28.DESACTIVAR EL WP-CRON.PHP
En WordPress, las tareas programadas se ejecutan a través de un cron virtual.
Este cron virtual opera con el archivo wp-cron.php y se ejecuta con cada visita no
cacheada, comprueba si hay tareas programadas y (en caso afirmativo) las ejecuta.
Con el wp-cron.php se ejecutan tareas simples, como la comprobación de
actualizaciones del núcleo de WordPress, pero también otras más avanzadas registradas
en el cron por los plugins.
Esta forma de funcionar no es eficiente, pero es la única posible para un cron virtual que
no cuente con ninguna configuración realizada por el usuario al instalar el CMS.
Afortunadamente, WordPress cuenta con un procedimiento que permite desactivar el
wp-cron.php y confiar la ejecución de tareas programadas al cron de Linux.
Al hacer esto. se reduce el consumo de recursos PHP en el servidor web porque el
wp-cron.php se ejecuta solo cada ciertos minutos, en lugar de con cada visita.
El primer paso será desactivar la ejecución continua del wp-cron.php en el wp-config.
php. A continuación, habrá que activar la ejecución periódica del cron de Linux en el
panel de control del hosting.
Si se desea comprobar el correcto funcionamiento del wp-cron.php, existen plugins
gratuitos como Advanced Cron Manager o WP Control.
https://raiola.link/enlace28
50 técnicas WPO para WordPress
Álvaro Fontela
50
29.DESACTIVAR PINGBACKS Y TRACKBACKS
Existen dos funcionalidades relacionadas que vienen integradas en el núcleo de
WordPress desde hace bastante tiempo: los pingbacks y los trackbacks.
Con los pingbacks se notifica a una instalación de WordPress de que otra ha
mencionado uno de sus contenidos. Se trata de un proceso totalmente automático y
transparente.
Sin embargo, los trackbacks son diferentes. Son manuales y deben ser creados por el
autor del contenido en un comentario en el WordPress al que desea notificar.
Tanto los pingbacks como los trackbacks (sobre todo los pingbacks) consumen recursos
de ejecución, aunque sean mínimos. Su impacto sobre el rendimiento es todavía mayor
cuando entran en juego los self-pingbacks, que tienen lugar cuando se enlazan
contenidos de forma interna, es decir, de un lugar a otro de un mismo sitio web.
Además, en la mayoría de los casos tanto los pingbacks como los trackbacks son
utilizados con finalidades relacionadas con el SPAM o los ataques.
En WordPress resulta relativamente fácil desactivar los pingbacks y los trackbacks a
través de la configuración del sistema.
50 técnicas WPO para WordPress
Álvaro Fontela
51
Tan solo hay que desactivar la opción “Permitir avisos de enlaces de otros blogs
(pingbacks y trackbacks) en las nuevas entradas”.
https://raiola.link/enlace29
50 técnicas WPO para WordPress
Álvaro Fontela
52
30.LIMPIAR EL HEADER DE WORDPRESS
En la cabecera de cada página cargada con WordPress se insertan unos enlaces que
proporcionan compatibilidad con servicios obsoletos o que apenas se utilizan.
Algunos de los scripts cargados en la cabecera que se pueden eliminar son:
RSD Link
Compatibilidad con emojis
Enlace corto de wp.com
Enlaces múltiples a los feeds RSS
Enlace WLW
Etiqueta con la versión de WordPress
Carga de bloques de Gutenberg
Algunas de estas funcionalidades añaden scripts adicionales a la carga, mientras que
otras insertan enlaces que no sirven para nada. Al eliminarlas, el objetivo es limpiar el
código y agilizar la carga.
50 técnicas WPO para WordPress
Álvaro Fontela
53
Se puede limpiar la cabecera manualmente con códigos independientes (un tweak para
cada cosa) en el functions.php o utilizando plugins de tweaking como Perfmatters o
Machete.
https://raiola.link/enlace30
50 técnicas WPO para WordPress
Álvaro Fontela
54
31.DESACTIVAR JQUERY MIGRATE
JavaScript es el lenguaje client-side con la mayor cuota de mercado en Internet,
mientras que jQuery es la librería JavaScript más utilizada del mundo con una
diferencia aplastante.
El uso de jQuery está muy extendido y, por esta razón, existe bastante segmentación de
versiones.
Para mantener la compatibilidad con versiones antiguas de jQuery al mismo tiempo que
se usan versiones nuevas de esta librería, existe jQuery Migrate. Se trata de una librería
de transición que se carga siempre en cualquier instalación WordPress.
Si un WordPress está al día y utiliza componentes (theme y plugins) que han sido
actualizados recientemente con librerías actuales, no hará falta en absoluto jQuery
Migrate, que solo servirá para consumir recursos al cargar una petición más.
Algunos plugins de cache, como WP Rocket o LiteSpeed Cache, dan la opción de
eliminar la carga de jQuery Migrate. Además, también podemos hacerlo de forma
manual a través de un código en el functions.php.
https://raiola.link/enlace31
50 técnicas WPO para WordPress
Álvaro Fontela
55
32.DEFINIR EL WP_MEMORY_LIMIT
WordPress es un CMS desarrollado en PHP con base de datos MySQL. Como cualquier
aplicación PHP, ejecuta procesos en el servidor web mediante el intérprete PHP.
Cada acción PHP ejecutada en el servidor tiene un límite, lo que puede resultar
restrictivo en el caso de procesos complejos.
En el caso de WordPress, el límite viene dado por dos valores principales.
En primer lugar, el límite de memoria PHP que puede utilizar el intérprete PHP para
cada proceso y que se configura en el servidor.
En segundo lugar, el límite de memoria PHP que pueden utilizar el front-end y el
back-end y que WordPress incluye de forma nativa.
Con sus opciones predeterminadas, WordPress solo puede utilizar 40MB de memoria
RAM por proceso. Esto, en algunos casos con plugins y themes muy complejos, puede
llegar a quedarse corto.
Por ejemplo, las tiendas online WooCommerce suelen verse excesivamente limitadas
con tan solo 40MB de RAM, lo que provoca problemas de rendimiento, errores y
ralentización en mayor o menor medida.
Una vez se modifica el límite en el servidor, el cambio en Wordpress es bastante simple.
Tan solo hay que añadir un nuevo parámetro al wp-config.php de WordPress para
indicarle cuál es la RAM máxima que se puede utilizar.
Es recomendable que coincida con el valor configurado como límite en la configuración
de PHP del servidor.
https://raiola.link/enlace32
50 técnicas WPO para WordPress
Álvaro Fontela
56
33.CAMBIAR LAS TABLAS A INNODB
WordPress guarda los datos y parte de su configuración en la base de datos MySQL o
MariaDB.
Dentro de la base de datos de WordPress constan la información y los contenidos del
sitio web organizados en tablas.
Estas tablas tienen una estructura de campos para guardar la información.
En resumen, existen dos motores de almacenamiento en base de datos que se suelen
utilizar en WordPress: MyISAM e InnoDB.
Entre MyISAM e InnoDB, a nivel teórico, existen diferencias de capacidades y
operaciones realizables. Sin embargo, a nivel práctico, en instalaciones de WordPress
muy saturadas se percibe un mejor rendimiento con InnoDB.
Por esta razón, puede decirse que en WordPress es más recomendable InnoDB que
MyISAM. Ahora bien, esto no significa que InnoDB sea siempre la mejor opción, ya que
MyISAM tiene también ofrece ventajas comparativas.
Actualmente, la mayoría de instalaciones de WordPress se suelen instalar ya con todas
las tablas en InnoDB, si bien hasta hace relativamente poco tiempo algunas tablas aún
se instalaban con MyISAM.
Para cambiar las tablas de MyISAM a InnoDB, se puede hacer a través de phpMyAdmin.
Se trata de un proceso crítico, por lo que resulta recomendable guardar antes una
copia de seguridad. De todas maneras, en instalaciones de WordPress no se suele
romper nada en este tipo de proceso.
https://raiola.link/enlace33
50 técnicas WPO para WordPress
Álvaro Fontela
57
34.LIMPIAR LA DB DE WORDPRESS
Como se ha mencionado en páginas anteriores, en la base de datos de WordPress se
guarda toda la información relativa al contenido del sitio web, así como parte de la
configuración.
No obstante, el contenido y parte de la configuración no son lo único que se almacena
en la base de datos. También se guardan datos temporales, datos cacheados y mucha
información “meta” que ayuda con la coherencia de datos en el CMS.
Al almacenar diferentes tipos de contenidos de distintos orígenes (plugins, usuario,
core, etc.) es normal que la base de datos se vaya llenando de basura innecesaria.
Uno de los principales generadores de basura son los plugins que se instalan en
WordPress y que, al desinstalarlos, dejan rastros en la base de datos que no sirven para
nada.
Por esta razón, es recomendable probar los plugins siempre en una instalación de
pruebas y no en la web en producción. De este modo, se mantiene la base de datos de la
instalación limpia y en buen estado.
Las opciones antiguas de los plugins desinstalados no son la única basura. También
están los transients (que son datos que sirven de cache), los registros de
funcionamiento de algunos plugins y las copias o borradores generados por el usuario y
autoguardados por el editor.
Por todo esto, es importante ejecutar limpiezas de la base de datos periódicamente
para así simplificarla y reducir su tamaño.
50 técnicas WPO para WordPress
Álvaro Fontela
58
Un exceso de peso de algunos MB en la base de datos quizá no resulte perceptible, pero
un exceso de varios GB sí se notará.
Existen muchos plugins específicos para limpiar la base de datos de WordPress. Otros
complementos de cache, como WP Rocket o LiteSpeed Cache, también incluyen
herramientas para realizar esta tarea.
https://raiola.link/enlace34
50 técnicas WPO para WordPress
Álvaro Fontela
59
35.PARÁMETROS “AUTOLOAD” EN LA DB
Es importante mantener la base de datos de WordPress limpia con el fin de reducir al
máximo el tamaño y agilizar su carga. También hay que tener cuidado con lo que se
carga a través del parámetro “autoload”.
Hay datos guardados en la tabla wp_options de la base de datos de WordPress que son
opciones de configuración que tienen que cargarse cada vez que WordPress genera una
página para enviársela al visitante (sin cache). Estos datos llevan el parámetro
“autoload” y se cargan mediante la función wp_load_alloptions().
Cuantos más campos lleven el parámetro “autoload”, más datos tendrá que cargar la
función wp_load_alloptions() y, por lo tanto, mayor será el impacto sobre el
rendimiento.
Hay muchos plugins que, al desinstalarse, dejan atrás campos que contienen opciones
de configuración con el parámetro “autoload”. Estos datos se cargan una y otra vez
junto con el resto de configuraciones, aunque no sirvan para nada.
Por esta razón, es muy importante limpiar la base de datos y también revisar cada cierto
tiempo cuánto pesa la consulta realizada por la función wp_load_alloptions().
Se podrá saber lo que se carga con este parámetro observando la tabla wp_options con
phpMyAdmin.
Para ver cómo está funcionando la función wp_load_alloptions() puede utilizarse el
plugin Query Monitor para WordPress.
https://raiola.link/enlace35
50 técnicas WPO para WordPress
Álvaro Fontela
60
36.DOMAIN SHARDING
(carga paralela)
Aunque el Domain Sharding o carga paralela es una técnica WPO que ha perdido cierto
sentido con la aparición de HTTP/2, en casos muy extremos puede ser útil, sobre todo si
la combinamos con cookie-less domain.
No debemos confundir el Domain Sharding o carga paralela con la implementación de
un CDN. Aunque normalmente para implementar un CDN se aplica algo similar al
Domain Sharding, el objetivo no es exactamente el mismo. Lo único que tienen en
común es que se usan uno o varios subdominios.
El objetivo es enviar los archivos de forma paralela al navegador web del visitante en
lugar de hacerlo de forma secuencial. De esta forma, se agiliza la carga en sitios web con
muchas peticiones.
50 técnicas WPO para WordPress
Álvaro Fontela
61
Para lograrlo, se configura WordPress para cargar desde esos subdominios los archivos
estáticos como imágenes, JavaScript y CSS.
La teoría podría indicar que, cuantos más subdominios tengamos al paralelizar las cargas, más rendimiento se va a conseguir. Sin embargo, esto no es realmente así.
Lo recomendable al configurar Domain Sharding es tener entre 2 y 5 subdominios
adicionales a través de los que cargar contenido.
Cualquier plugin que permita configurar un CDN dará también la opción de configurar
Domain Sharding. Por ejemplo, WP Rocket o LiteSpeed Cache permiten configurar la
carga paralela, pero también CDN Enabler (aunque solo un único subdominio).
https://raiola.link/enlace36
50 técnicas WPO para WordPress
Álvaro Fontela
62
37.SUBDOMINIO COOKIE-LESS
Una de las ventajas de configurar Domain Sharding o carga paralela en un sitio web es
que, normalmente, van a ser subdominios sin cookies.
Cuando Google PageSpeed o GTMetrix muestra “Serve Static Content From a Cookieless
Domain” se refiere precisamente a esta técnica WPO.
Aunque con la implementación de HTTP/2 no es tan necesario como antes servir los
contenidos estáticos a través de un subdominio sin cookies, sigue siendo una optimización fácil de implementar.
En sitios web con muchas cookies, se ahorran recursos en la carga de la web en el
navegador del visitante al no tener que interpretar las cookies.
Lo que se suele hacer es configurar Domain Sharding a través de varios subdominios con
un plugin que permita cargar los JS, CSS e imágenes desde ahí.
50 técnicas WPO para WordPress
Álvaro Fontela
63
Cuando los subdominios están funcionando y apuntan correctamente al dominio
principal, hay que definir en el wp-config.php de WordPress cuál es el dominio libre de
cookies.
Como se ha mencionado antes, esta técnica actualmente no aporta una mejora muy
sustancial, pero tampoco está obsoleta del todo.
https://raiola.link/enlace37
50 técnicas WPO para WordPress
Álvaro Fontela
64
38.REDUCIR LAS PETICIONES EXTERNAS
Las peticiones externas son uno de los grandes cuellos de botella que existen en WPO.
El problema es que las peticiones externas se cargan desde servidores de terceros sobre
los que el webmaster no tiene capacidad de decisión o de configuración.
Al no tener ningún control, aunque optimice al máximo su sitio web, si los scripts y
archivos cargados mediante peticiones externas tardan en cargar, se ralentizará toda la
web.
Cuantas más peticiones externas se realicen durante la carga de una página, más difícil
será tener una buena velocidad de carga y una buena puntuación en Google PageSpeed
o Google LightHouse.
Se trata de un problema común a muchos servicios de Internet de uso generalizado:
Google Adsense
Botones y cajas sociales de Facebook o Twitter
Códigos de tracking de diferentes servicios
En muy resumidas cuentas, todo servicio SaaS externo que se integre en una web va a
provocar que se deban servir peticiones externas.
Para reducir las peticiones externas no existe ningún método “mágico”. Simplemente
habrá que valorar si realmente se necesitan de verdad todos los servicios integrados en
el sitio web.
https://raiola.link/enlace38
50 técnicas WPO para WordPress
Álvaro Fontela
65
39.CARGAR ANALÍTICA Y PÍXELES DESDE
LOCAL
Ya se ha comentado que uno de los problemas habituales al tratar de optimizar un sitio
web es la carga desde servicios externos.
En webs corporativas o en ecommerce es muy común encontrar múltiples scripts o
píxeles de conversión que sirven para medir y ejecutar acciones de marketing digital.
En la mayoría de los casos, estos scripts son externos y el webmaster no puede
hacer nada para optimizar sus peticiones. Por ejemplo, el JavaScript que carga Google
Analytics provoca un error de TTL en browser cache en Google PageSpeed.
Existe la posibilidad de cargar algunos scripts y píxeles de conversión de servicios
externos desde local:
Hay plugins y métodos para guardar una copia de Google Analytics en el propio
servidor o hosting y servirla a tus visitantes.
Otros plugins pueden guardar el píxel de conversión de Facebook en local y
servirlo desde ahí.
El problema de esta técnica es que puede haber problemas si el proveedor actualiza los
scripts mientras la copia está guardada en local, ya que puede provocarse una
incoherencia de datos o problemas de medición.
El plugin WP Rocket para WordPress es uno de los pocos que permite hacer esto tanto
con Google Analytics como con el píxel de Facebook Ads.
Existen otras alternativas como, por ejemplo, el plugin CAOS.
https://raiola.link/enlace39
50 técnicas WPO para WordPress
Álvaro Fontela
66
40.EVITAR LOS CONTADORES DE DATOS
Los contadores de datos pueden ser un arma de doble filo.
Suponiendo que un contador de datos obtiene datos de algún sitio y no simplemente
por “postureo”, se consumen recursos en la obtención y modificación de esos datos.
Algunos ejemplos de contadores de datos que se leen y se modifican constantemente:
Contadores de interacciones sociales en Twitter y Facebook que leen datos de
servicios externos.
Contadores de votos insertados en los posts o contenidos, que están
constantemente obteniendo y modificando datos en la DB.
Contadores de vistas de un contenido, que con cada visita leen y modifican los
datos.
Contadores de visitas en el front-end de la web.
Todos estos tipos de contadores dificultan el cache de página y pueden provocar dos
reacciones: pueden fallar al cachearlos o provocar que directamente no se use cache en
las páginas que tengan este tipo de contadores.
No existe ningún método “mágico” para eliminar los contadores. Únicamente habrá que
valorar si son realmente necesarios o no.
En caso de no necesitarlos o creer que pueden dar más problemas de los que resuelven,
simplemente hay que eliminar esta funcionalidad del sitio web.
Lo anterior, por supuesto, no atañe a los contadores de “postureo” se pueden insertar
con maquetadores como Elementor o WPBackery.
https://raiola.link/enlace40
50 técnicas WPO para WordPress
Álvaro Fontela
67
41.COMPRESIÓN GZIP
Gran parte de los datos que se envían del servidor web al navegador del visitante
durante la carga de un sitio web son archivos de base texto.
Si algo tienen los archivos de base texto es que pueden comprimirse fácilmente con
excelentes tasas de éxito.
También hay que tener en cuenta que existen formatos y algoritmos de compresión que
comprimen bastante los archivos de base texto y que los descomprimen casi al instante
y con un consumo mínimo de recursos.
Todo ello hace que actualmente sea obligatorio configurar el servidor web para que
comprima los datos antes de enviarlos.
El formato más común y soportado por todos los servidores web y navegadores es GZIP.
Un ejemplo real: Netflix consiguió ahorrar un 43% de ancho de banda en su cliente web
simplemente activando GZIP.
Todo el proceso de compresión y descompresión de contenido resulta totalmente
transparente para el usuario y no hay ningún tipo de retraso en la carga.
50 técnicas WPO para WordPress
Álvaro Fontela
68
Cuando se aplica compresión GZIP a todos los archivos de base texto de un sitio web, se
pueden conseguir tasas de compresión tan buenas como las de la imagen anterior.
La compresión GZIP se activa desde el servidor web. En el caso de Apache, puede
hacerse desde el .htaccess. En el caso de Nginx o LiteSpeed, se activa desde la
configuración del servidor.
https://raiola.link/enlace41
50 técnicas WPO para WordPress
Álvaro Fontela
69
42.COMPRESIÓN BROTLI
Brotli es un nuevo formato de compresión que mejora los resultados obtenidos con GZIP
en la compresión de recursos web, por lo que ha tenido una gran acogida.
Se han realizado varios estudios y, en muchos casos, se han observado mejoras de hasta
el 40% en la latencia o retraso. Brotli quizás sea algo más lento al comprimir en el
servidor, pero es más rápido al descomprimir en el navegador visitante.
Sin embargo, aún hay muchos servidores web que no son compatibles. Como resultado, actualmente necesitas un servidor web con una versión muy actualizada para poder
utilizar Brotli.
50 técnicas WPO para WordPress
Álvaro Fontela
70
LiteSpeed es compatible con Brotli casi desde el principio y CloudFlare en su proxy
inverso también ha añadido compatibilidad hace tiempo.
Muchos CDN tradicionales como KeyCDN o CDN77 también son compatibles.
https://raiola.link/enlace42
50 técnicas WPO para WordPress
Álvaro Fontela
71
43.ACTUALIZAR LA VERSIÓN DE PHP
La aparición de PHP 7.0 ha provocado que la actualización de la versión del intérprete
PHP en el servidor sea una obligación a nivel rendimiento, más que a nivel desarrollo.
La mejora de rendimiento al pasar de la versión 5.6 a la versión 7.0 fue exponencial.
50 técnicas WPO para WordPress
Álvaro Fontela
72
Con PHP 7.0 no solo se mejoraron los tiempos de respuesta al procesar scripts PHP, sino
que también se redujo mucho el consumo de recursos al ejecutar PHP.
Han pasado ya unos años desde la aparicion de PHP 7.0. Por ello, también se ha podido
comprobar una mejora sustancial en el rendimiento (aunque no tan marcada) en PHP
7.3 y 7.4 en comparación con la versión 7.0.
Actualmente, las versiones 8.0 y sucesivas de PHP también han aportado una mejora de
velocidad, aunque no tan radical como fue el caso de PHP 7.0.
Actualmente, existen aplicaciones web muy complejas como las tiendas online
WooCommerce o instalaciones WordPress con BuddyPress o LearnDash, que se
benefician mucho del rendimiento que ofrecen las nuevas versiones de PHP.
La version PHP se configura en el servidor o hosting. La forma concreta dependerá del
panel de control y stack del servidor.
https://raiola.link/enlace43
50 técnicas WPO para WordPress
Álvaro Fontela
73
44.HTTP2 Y HTTP3
La versión HTTP/1.1 era el protocolo por los sitios web desde hacía mucho tiempo, hasta
que hace unos años apareció HTTP/2 con cambios importantes en el funcionamiento
que afectaban al rendimiento.
De cara al WPO, HTTP/2 supone ventajas importantes:
La multiplexación actual, de forma muy similar a una carga paralela, permite
atender las peticiones de forma paralela en lugar de en serie.
Con server push se pueden enviar recursos al navegador del visitante antes de
que interprete el HTML y sepa que los necesita.
La compresión de cabeceras limita la redundancia en el envío de información y
reduce considerablemente su tamaño porque se envían comprimidas.
Ahora aparece HTTP/3 con mejoras en el protocolo para servir contenidos de forma
rápida y eficiente.
Al fin y al cabo, HTTP/3 es HTTP/2 con QUIC, que es un protocolo de red basado en UDP
en lugar de TCP. Su objetivo es mejorar el rendimiento en las conexiones a aplicaciones
web. En ambos casos, las conexiones se realizan por HTTPS con SSL.
Para activar HTTP/2 o HTTP/3, hay que implementarlo en el servidor web y este debe ser
compatible. Por ejemplo, LiteSpeed es compatible tanto con HTTP/2 como con HTTP/3.
Servicios CDN como CloudFlare CDN o KeyCDN también lo son.
https://raiola.link/enlace44
50 técnicas WPO para WordPress
Álvaro Fontela
74
45.SERVIDOR WEB POTENTE
Uno de los problemas habituales al optimizar un sitio web es el servidor o hosting.
Junto con una versión antigua de PHP, una dificultad añadida es contar con un servidor
web Apache.
Apache no resulta eficiente ni rápido. De hecho, tanto Nginx como LiteSpeed son
muchísimo más veloces al servir peticiones.
Actualmente, utilizar Apache solo (sin un proxy inverso como Nginx o Varnish por
delante) es estar en clara desventaja al servir contenidos.
Apache es el servidor web más “compatible” con paneles y complementos,
además del .htaccess. Como contrapartida, es poco eficiente y lento.
Nginx resulta muchísimo más veloz y eficaz que Apache, pero no es compatible
con el .htaccess y es menos compatible con paneles.
LiteSpeed es de pago, más o menos igual de rápido que Nginx, pero es
compatible con el archivo .htaccess y tiene ventajas interesantes en lo que se refiere al
rendimiento.
Apache es el servidor web más utilizado del mundo, pero esto se debe a que fue el
primero y a su compatibilidad.
Para tener un sitio web rápido y eficiente es muy recomendable que la web se ejecute
sobre un Nginx o LiteSpeed con una versión reciente de PHP.
Si pagar LiteSpeed no es una opción, se pueden servir sitios web de forma eficaz
combinando Nginx como proxy inverso para Apache.
Apache consume hasta 10 veces más recursos y tarda 3 veces más en servir la misma
imagen que Nginx o LiteSpeed.
https://raiola.link/enlace45
50 técnicas WPO para WordPress
Álvaro Fontela
75
46.DNS GEODISTRIBUIDOS ANYCAST
La mayoría de proveedores de hosting ofrecen DNS para sus productos.
Salvo que exista un problema grave, en la carga de un sitio web no se consume mucho
tiempo en la resolución DNS. Sin embargo, si se desea afinar al máximo la carga y ya se
usa un CDN, el siguiente paso sería utilizar un DNS geodistribuido.
Lo que hace un DNS geodistribuido anycast es propagar los registros DNS por servidores
DNS sincronizados alrededor del mundo y contestar los dns lookup desde puntos
geográficos más cercanos al visitante. De este modo, al igual que con los CDN, se
reducen mucho los tiempos de respuesta y las latencias.
Además, no todos los DNS son igual de rápidos, ya que existen proveedores
especializados que son más rápidos que los demás.
Las de CloudFlare y las Route53 de Amazon AWS son las DNS geodistribuidas anycast
más rápidas que existen en Internet. Tanto CloudFlare como Amazon AWS gestionan las
DNS geodistribuidas anycast a través de la misma red de nodos de sus servicios CDN.
Hay que reiterar que la mejora, en muchos casos, puede ser de solo unos milisegundos.
Sin embargo, con este tipo de DNS no solo se gana velocidad, sino también
estabilidadad al servir tráfico desde la web a cualquier parte del planeta.
Cambiar las DNS resulta muy sencillo. Tan solo hay que cambiar los nameservers en el
panel del registrador del dominio y, a continuación, configurar los registros en el
servicio DNS.
https://raiola.link/enlace46
50 técnicas WPO para WordPress
Álvaro Fontela
76
47.ELEGIR UN THEME SIMPLE Y MOBILE
FIRST
Puede parecer obvio, pero actualmente se crean muchos sitios web con un
planteamiento inicial erróneo.
Debido al aumento considerable de la cuota de visitantes que utilizan navegadores
móviles para acceder a Internet, es importante desarrollar y diseñar los nuevos sitios
web utilizando mobile first.
El estándar mobile first consiste en diseñar o desarrollar primero para dispositivos
móviles (pantalla pequeña) y después “expandirlo” para ordenadores (pantalla grande).
El objetivo es construir interfaces web mucho más sencillas y así ofrecer una
experiencia de usuario óptima.
50 técnicas WPO para WordPress
Álvaro Fontela
77
Al crear una web con WordPress y un theme multipropósito, en el 90% de los casos se
renuncia al estándar mobile first.
En cambio, maquetadores visuales como Bricks Builder, Elementor Pro o Beaver
Builder permiten diseñar sitios web siguiendo este planteamiento
No hay que olvidar que desde 2019 el mobile first ha cobrado una importancia especial.
¿El motivo? Que Google anunció ese año que usaría GoogleBot en formato móvil para
rastrear todas las webs.
https://raiola.link/enlace47
50 técnicas WPO para WordPress
Álvaro Fontela
78
48.DETECTAR PROBLEMAS DE RENDIMIENTO
Muchos WordPress que están en activo tienen problemas de rendimiento PHP por sus
plugins y no lo saben.
Instalar plugins en WordPress es muy fácil. Sin embargo, siempre hay que ser consciente
de que cada plugin produce, en mayor o menor medida, un impacto sobre el
rendimiento de la web.
Un solo plugin puede provocar unos consumos tan altos en el hosting o servidor que
provoque la caída de toda la web por sobreuso de recursos.
Las razones por las que un plugin puede causar un problema de rendimiento pueden ser
varias, desde un wait en la ejecución de código hasta una consulta SQL demasiado larga
y compleja a la base de datos.
50 técnicas WPO para WordPress
Álvaro Fontela
79
No existen muchas herramientas para hacer profile de los plugins y ver cuántos recursos
consume una web al ejecutar PHP y en qué se los gasta. Query Monitor es un plugin para
WordPress que ofrece esta información de forma estructurada.
Otra opción es utilizar el plugin Code Profiler o, si tu hosting tiene X-Ray también puedes utilizarlo para detectar el consumo de CPU y RAM de los plugins.
Si un plugin consume demasiados recursos de CPU y memoria pero no es posible
prescindir de él o cambiarlo por otro, lo único que se puede hacer es mitigar la espera
de respuesta o wait cambiando a un servidor más potente o implementando un cache
de objetos como Memcached o Redis.
Es muy común que instalaciones con muchos plugins o muy complejas tengan consultas
muy largas que provocan retrasos y sobreuso de recursos.
https://raiola.link/enlace48
50 técnicas WPO para WordPress
Álvaro Fontela
80
49.DISPONER DE LOS RECURSOS
NECESARIOS
Para que un servidor web pueda servir páginas a los visitantes, debe tener recursos
disponibles para realizar la ejecución de PHP, las consultas a la DB y para que el
servidor web pueda enviar los contenidos solicitados.
Algo que puede parecer lógico pero que no se cumple en muchos sitios web es tener
“abundancia” de recursos para evitar problemas en situaciones extremas como picos de
tráfico y ataques.
El usuario principiante no suele ser consciente de que los planes de hosting, los
servidores VPS y los servidores dedicados tienen un límite de potencia de
procesamiento y de memoria RAM. Estos dos recursos son los principales para que el
servidor web funcione.
50 técnicas WPO para WordPress
Álvaro Fontela
81
Si los recursos se acaban o empiezan a ir justos, se darán errores y ralentizaciones
importantes en la carga de las webs. Además, en esa situación ninguna de las técnicas
WPO explicadas en este book servirán de nada.
Por este motivo, el servidor es lo primero que se debe revisar antes de empezar a
aplicar técnicas de optimización web.
Siempre es recomendable contar al menos con el triple de recursos de los que se
utilizan normalmente.
https://raiola.link/enlace49
50 técnicas WPO para WordPress
Álvaro Fontela
82
50.LÓGICA Y PLANIFICACIÓN REALISTA
La última y más importante técnica de optimización de todas: la lógica.
La lógica es la técnica WPO más eficaz, ya que en la mayoría de los sitios web se
mejorarían los tiempos de carga simplemente aplicando la lógica al hacer el desarrollo
o implementación.
Al fin y al cabo WordPress, en conjunto con sus plugins y theme, es una aplicación web
como cualquier otra.
Si se utiliza la lógica desde el principio, no se necesitarán ni la mitad de las técnicas
WPO explicadas en este ebook.
Hay que ser conscientes de que los milagros no existen. En la mayoría de los casos, para
mejorar significativamente la velocidad de carga y el consumo de recursos, será
necesario sacrificar elementos o funcionalidades del sitio web.
50 técnicas WPO para WordPress
Álvaro Fontela
83
Adictos al buen hosting
Email: [email protected]
Web: raiolanetworks.es
Descargar