89. WPO: LO QUE
NADIE TE HA
CONTADO
… O CASI
@fernandot
AyudaWP.com
#CLINICSEO
90. ▸Culpable de
▸Consultor, desarrollador, divulgador, profesor
▸Escritor / Blogger
▸CEO de red de blogs con más de 80 canales
▸Admin y coordinador de es.WordPress.org
▸Autor de varios libros sobre WordPress
▸SiteGround’s
#CLINICSEO
¡HOLA!
@fernandot
AyudaWP.com
92. #CLINICSEO
MI 1ª SOLUCIÓN
@fernandot
AyudaWP.com
//Quitar las query strings from statics resources
function _remove_script_version( $src ){
$parts = explode( '?ver', $src );
return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );
define('WP_HOME', 'http://ayudawp.com'); // blog url
define('WP_SITEURL', 'http://ayudawp.com'); // site url
define('TEMPLATEPATH', '/ruta/absoluta/to/wp-content/themes/nombredemitema');
define('STYLESHEETPATH', '/ruta/absoluta/to/wp-content/themes/nombredemitema');
<?php
/* Carga eficaz de estilos del tema padre en vez de @import */
function child_theme_styles() {
wp_dequeue_style( 'parent-theme-style' );
wp_enqueue_style( 'child-theme-style', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'child_theme_styles' );
?>
// Aplazar JavaScripts
// Aplaza la carga de jQuery usando la propiedad HTML5 defer
if (!(is_admin() )) {
function defer_parsing_of_js ( $url ) {
if ( FALSE === strpos( $url, '.js' ) ) return $url;
if ( strpos( $url, 'jquery.js' ) ) return $url;
// return "$url' defer ";
return "$url' defer onload='";
}
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );
}
if(!is_admin()) {
// Mover todo el JS de la cabecera (header) al pié (footer)
remove_action('wp_head', 'wp_print_scripts');
remove_action('wp_head', 'wp_print_head_scripts', 9);
remove_action('wp_head', 'wp_enqueue_scripts', 1);
add_action('wp_footer', 'wp_print_scripts', 5);
add_action('wp_footer', 'wp_enqueue_scripts', 5);
add_action('wp_footer', 'wp_print_head_scripts', 5);
}
#Habilitar Keep-alive
<IfModule mod_headers.c>
Header set Connection keep-alive
# Number of requests to allow during a persistent connection
MaxKeepAliveRequests 60
# Number of seconds to wait for the next request from the # same
client on the same connection
KeepAliveTimeout 15
</IfModule>
//Desactivar Heartbeat API
add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat() {
wp_deregister_script('heartbeat');
}
117. ▸BUEN HOSTING = :
SSD, HTTP/3, PHP 7.X, ETC
▸MINIMIZA TODO: AUTOPTIMIZE /
SG OPTIMIZER
▸OPTIMIZA TODO: WPO TWEAKS /
SG OPTIMIZER
▸BASE DE DATOS: LIMPIEZA
MENSUAL
▸COMPRIME TODO: BROTLI, WPO
TWEAKS
▸CACHEA TODO: ESTÁTICA,
DINÁMICA, MEMCACHED, CDN
▸BUENAS ELECCIONES: TEMA SIN
EXTRAS, LOS PLUGINS JUSTOS
▸ACTUALIZA TODO: WORDPRESS,
PLUGINS, TEMA
#CLINICSEO
MIS BÁSICOS WPO
@fernandot
AyudaWP.com
SENTIDO COMÚN
118. ▸EMAIL EXTERNO: USA
SERVICIOS ASÍNCRONOS
▸QUITAR RSS: INNECESARIOS
ACTUALMENTE
▸REVISAR ENLACES ROTOS:
CADA 404 ES RETARDO DE
CARGA
▸BASE DE DATOS: LIMPIEZA
MENSUAL
▸JPG PROGRESIVOS:
OPTIMIZADOS PARA HTTP/2
▸AMP NATIVO: HTML BÁSICO,
PRIMERO MÓVIL
▸QUIC = HTTP/3: PRIMERO MÓVIL,
MEJORA HTTP/2
▸BORRA TODO LO QUE SOBRA:
ARCHIVOS, TRANSIENTS
#CLINICSEO
MIS TRUCOS + WPO
@fernandot
AyudaWP.com
SENTIDO COMÚN
119. #CLINICSEO
MI SUPER TRUCO WPO
@fernandot
AyudaWP.com
CADA WEB ES DISTINTA,
ANALÍZALA
NO APLIQUES
SOLUCIONES
ESTÁNDAR
ANALIZA TODO, ANALIZA
SIEMPRE