Damos una charla y taller sobre WPO en Congreso Web 2017

Como sabéis apostamos por la importancia del marketing digital como pieza clave para impulsar los proyectos online ya sean sitios webs, blogs, e-commerce o cualquier idea materializada de forma online. Creemos que cualquier profesional y negocio deben estar al día en este área para poder triunfar en el mundo actual. Por ello, no nos podíamos perder Congreso Web 2017, una cita de referencia en Zaragoza para los profesionales del marketing online, al que hemos acudido como patrocinadores y en el que hemos aportado nuestro granito de arena con una charla y un taller sobre optimización web (WPO).

Una de las claves del éxito de todo proyecto online es que esté optimizado para conseguir el mejor rendimiento que le permitirá una carga más rápida, mejor experiencia de usuario, mejor posicionamiento en buscadores e incluso mayores ventas. Nosotros queremos seguir compartiendo nuestro conocimiento con todos vosotros sobre WPO para que vuestras webs, blogs y tiendas online sigan creciendo de la mano de grandes expertos con años de experiencia en el desarrollo y diseño web y el marketing digital.

Nuestro Country Manager en España, José Ramón Padrón, dio la charla titulada “Optimiza al máximo con WPO” en el Auditorio. Y por si eso fuera poco, después organizamos el “taller práctico de WPO: ¿Optimizas o enriqueces?” con Fernando Tellado, creador de Ayuda WordPress, administrador del sitio oficial de WordPress España y profesor experto en estrategia digital y WordPress, y Fernando Puente, CTO de La Estrategia de Chapman con 21 años de experiencia en TI.

Para los que fuisteis al taller, aquí os dejamos el plugin para WPO en WordPress del que hablaron para que os lo podáis descargar y a continuación los códigos que necesitaréis para trabajar con él.

¡Aquí podéis ver unas fotos de nuestros mejores momentos en Congreso Web 2017!

MUPLUGIN

 <?php
/*
Plugin Name: Taller WPO – CWZ 2017
Plugin URI: http://www.siteground.es
Description: MU Plugin para eliminar funcionalidades superfluas de WP desde ‘cwz2017-funciones.php’
Version: 1.0
Author: Fernando Puente y Fernando Tellado
License: GPLv2 o posterior
*/// remove really simple discovery link
remove_action(‘wp_head’, ‘rsd_link’);// remove wlwmanifest.xml (needed to support windows live writer)
remove_action(‘wp_head’, ‘wlwmanifest_link’);// remove rss feed and exta feed links
// (make sure you add them in yourself if you are using as RSS service
remove_action(‘wp_head’, ‘feed_links’, 2);
remove_action(‘wp_head’, ‘feed_links_extra’, 3);// remove the next and previous post links
remove_action(‘wp_head’, ‘adjacent_posts_rel_link’, 10, 0);
remove_action(‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0 );// remove the shortlink url from header
remove_action(‘wp_head’, ‘wp_shortlink_wp_head’, 10, 0 );// remove wordpress generator version
remove_action( ‘wp_head’ , ‘wp_generator’ );// remove emoji styles and script from header
remove_action( ‘wp_head’, ‘print_emoji_detection_script’, 7 );
remove_action( ‘wp_print_styles’, ‘print_emoji_styles’ );
remove_filter( ‘wp_mail’, ‘wp_staticize_emoji_for_email’ );
remove_filter( ‘the_content_feed’, ‘wp_staticize_emoji’ );
remove_filter( ‘comment_text_rss’, ‘wp_staticize_emoji’ );// disable json api and remove link from header
// remove json_api
remove_action( ‘wp_head’, ‘rest_output_link_wp_head’, 10 );
remove_action( ‘wp_head’, ‘wp_oembed_add_discovery_links’, 10 );
remove_action( ‘rest_api_init’, ‘wp_oembed_register_route’ );
add_filter( ’embed_oembed_discover’, ‘__return_false’ );
remove_filter( ‘oembed_dataparse’, ‘wp_filter_oembed_result’, 10 );
remove_action( ‘wp_head’, ‘wp_oembed_add_discovery_links’ );
remove_action( ‘wp_head’, ‘wp_oembed_add_host_js’ );
remove_action( ‘template_redirect’, ‘rest_output_link_header’, 11, 0 );// disable json_api
add_filter(‘json_enabled’, ‘__return_false’);
add_filter(‘json_jsonp_enabled’, ‘__return_false’);
add_filter(‘rest_enabled’, ‘__return_false’);
add_filter(‘rest_jsonp_enabled’, ‘__return_false’);// remove s.w.org dns-prefetch
remove_action( ‘wp_head’, ‘wp_resource_hints’, 2 );

//Remove jquery_migrate
add_filter( ‘wp_default_scripts’, ‘dequeue_jquery_migrate’ );
function dequeue_jquery_migrate( &$scripts){
if(!is_admin()){
$scripts->remove( ‘jquery’);
$scripts->add( ‘jquery’, false, array( ‘jquery-core’ ), ‘1.10.2’ );
}
}

//Remove oEmbed Scripts
add_action(‘init’, ‘deregister_wp_embed’);
function deregister_wp_embed() {
if (!is_admin()) {
wp_deregister_script(‘wp-embed’);
}
}

//Remove heartbeat
add_action( ‘init’, ‘stop_heartbeat’, 1 );
function stop_heartbeat() {
wp_deregister_script(‘heartbeat’);
}

// — dequeue Contact Form Builder script/style on every page except contact page
if ( !is_page(“contacto”) ) {
add_filter( ‘wpcf7_load_js’, ‘__return_false’ );
add_filter( ‘wpcf7_load_css’, ‘__return_false’ );
}

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 );
?>

HTACCESS-GZIP

 <IfModule mod_deflate.c>
SetOutputFilter DEFLATE
# Compress HTML, CSS, JavaScript, 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# Remove browser bugs (only needed for really old browsers)
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>

HTACCESS-CACHE

<IfModule mod_expires.c>
ExpiresActive On
# CSS
ExpiresByType text/css “access plus 1 year”
# Favicon
ExpiresByType image/x-icon “access plus 1 year”
# JavaScript
ExpiresByType application/javascript “access plus 1 year”
# Media
ExpiresByType image/gif “access plus 1 year”
ExpiresByType image/jpeg “access plus 1 year”
ExpiresByType image/png “access plus 1 year”
ExpiresByType image/svg+xml “access plus 1 year”
ExpiresByType application/pdf “access plus 1 month”
# Default
ExpiresDefault “now plus 5 minutes”
</IfModule>#Cache 1 mes para las fuentes
<FilesMatch “\.(eot|svg|ttf|woff|woff2)$”>
Header set Cache-Control “max-age=2592000, public”
</FilesMatch>

HTACCESS-EXTRA

 #Habilitar Keep-alive (con http/2 no ponerlo)
<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>#Quitar ETag a los estáticos
<FilesMatch “\.(ico|jpg|jpeg|png|gif|js|css|htm|html|eot|svg|ttf|woff|woff2)$”>
Header unset ETag
FileETag None
</FilesMatch>#Custom header
Header set X-TallerWPO “Gracias por venir al #CW17”

FUNCTIONS-SELECTIVO

 #cf7 selectivo
#Ejemplo
// — dequeue Contact Form Builder script/style on every page except contact page
if ( !is_page(“contacto”) ) {
add_filter( ‘wpcf7_load_js’, ‘__return_false’ );
add_filter( ‘wpcf7_load_css’, ‘__return_false’ );
}#disqus selectivo
// Disqus only in single
function disqus_only_in_single() {
if ( is_singular( array( ‘post’, ‘page’ ) ) && comments_open() ) {
return;
}remove_action( ‘loop_end’, ‘dsq_loop_end’ );
remove_action( ‘wp_footer’, ‘dsq_output_footer_comment_js’ );
}
add_action( ‘wp_enqueue_scripts’, ‘disqus_only_in_single’, 100 );#woo selectivo
/**
* Optimiza los scripts de WooCommerce
* Quita la tag Generator de WooCommerce, estilos y scripts de páginas no WooCommerce.
*/
add_action( ‘wp_enqueue_scripts’, ‘child_manage_woocommerce_styles’, 99 );function child_manage_woocommerce_styles() {
//quitamos la tag generator meta
remove_action( ‘wp_head’, array( $GLOBALS[‘woocommerce’], ‘generator’ ) );//Primero comprobamos si está instalado WooCommerce para evitar errores fatales
if ( function_exists( ‘is_woocommerce’ ) ) {
//y aplicamos el dequeue a scripts y estilos
if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() ) {
wp_dequeue_style( ‘woocommerce_frontend_styles’ );
wp_dequeue_style( ‘woocommerce_fancybox_styles’ );
wp_dequeue_style( ‘woocommerce_chosen_styles’ );
wp_dequeue_style( ‘woocommerce_prettyPhoto_css’ );
wp_dequeue_script( ‘wc_price_slider’ );
wp_dequeue_script( ‘wc-single-product’ );
wp_dequeue_script( ‘wc-add-to-cart’ );
wp_dequeue_script( ‘wc-cart-fragments’ );
wp_dequeue_script( ‘wc-checkout’ );
wp_dequeue_script( ‘wc-add-to-cart-variation’ );
wp_dequeue_script( ‘wc-single-product’ );
wp_dequeue_script( ‘wc-cart’ );
wp_dequeue_script( ‘wc-chosen’ );
wp_dequeue_script( ‘woocommerce’ );
wp_dequeue_script( ‘prettyPhoto’ );
wp_dequeue_script( ‘prettyPhoto-init’ );
wp_dequeue_script( ‘jquery-blockui’ );
wp_dequeue_script( ‘jquery-placeholder’ );
wp_dequeue_script( ‘fancybox’ );
wp_dequeue_script( ‘jqueryui’ );
}
}}

Ana García

Responsable de Marketing España

Una mezcla de Geek y Arty. Siempre curiosa por conocer lo último tanto en marketing online como offline, así como en nuevas tecnologías. Como SiteGrounder me involucro en todas las áreas de la gestión de la marca, desde la estrategia de marketing, contenido, relaciones públicas hasta eventos y mucho más.

Iniciar discusión

Artículos relacionados

Ha llegado el momento de practicar