twitterfacebookgoogledribbblepinterestmyspacetumblrvimeoyoutubebehancegithubflickrforrstrssmail
Ultimas Entradas
LuxePad: Teclado Portátil Bluetooth Ultrafino para iPad check it out →

Optimizar WordPress en los motores de busqueda, sin plugin

Un plugin que la mayoría de blogs usan para la optimización de los motores de búsqueda es el famoso All in One Seo Pack.

Es sin ninguna duda un estupendo plugin, pero si nos encontráramos en la situación de tener que aligerar nuestro sitio, ya que utiliza demasiada RAM y CPU, deberíamos empezar a deshabilitar algún que otro complemento.

Una vez eliminados los más superfluos, el siguiente paso seria sustituir los plugins necesarios con líneas de código más ligeras, pero igualmente eficaces. Por eso hoy os propongo dos pequeños trucos para sustituir cualquier plugin SEO y reducirlo a pocas líneas de código, veloces y eficaces.

Primero debemos optimizar el tag title de nuestro template. Abrimos el archivo header.php y sustituimos el actual <title>…..</title> con el siguiente código:

<title><?php
    wp_title('');
    if (function_exists('is_tag') and is_tag()) { ?>
        Tag per <?php echo $tag;
    }
    if (is_archive()) { ?>
        Archivio <?php
    } elseif (is_search()) { ?>
        Ricerca per <?php echo wp_specialchars($s,1);
    }
    if ( !(is_404()) && (is_search()) or (is_single()) or
(is_page()) or (function_exists('is_tag') and is_tag()) or
(is_archive()) ) { ?>
        | <?php
    } ?>
    <?php bloginfo('name');
    if(is_home()){ ?>
        - <?php bloginfo('description');
    }
?></title>

El otro elemento esencial, como sabéis, son los meta tag. Cogiendo prestadas algunas funciones del plugin All in One SEO pack y reelaborándolas, nos da una simple función que llevará a cabo perfectamente su objetivo.

function add_meta_tag(){
    global $wp_query;
    $post = $wp_query->get_queried_object();

    $desc = get_bloginfo('description');
    $keys = "LAS KEYWORDS DEL DEFAUT";

    if(is_single() || is_page()){
        $desc = cut($post->post_content, 25);
    }
    if(is_single()){
        $custom = get_post_meta($post->ID, 'keywords', true);
        if($custom != ''){
            $keys = $custom;
        }else{
            $keywords = array();
            $tags = get_the_tags($post->ID);
            $categories = get_the_category($post->ID);
            if(is_array($tags)){
                foreach ($tags as $tag)
                    $keywords[] = $tag->name;
            }
            if(is_array($categories)){
                foreach ($categories as $category)
                    $keywords[] = $category->cat_name;
            }
            $keys = implode(", ", $keywords);
        }
    }
    if(is_category()){
        $desc = strip_tags(category_description());
    }
    $desc = str_replace(array("n","r","t"), " ", $desc);
    $desc = str_replace('"', "'", $desc);

    echo '<meta name="description" content="' . $desc . '" />' . "n";
    echo '<meta name="keywords" content="'. $keys . '" />' . "n";
}

add_action('wp_head', 'add_meta_tag');

function cut($content, $cut = 0, $encode_html = 0) {
    if ( $cut && !$encode_html )
        $encode_html = 2;
    if ( 1== $encode_html ) {
        $content = wp_specialchars($content);
        $cut = 0;
    } elseif ( 0 == $encode_html ) {
        $content = make_url_footnote($content);
    } elseif ( 2 == $encode_html ) {
        $content = strip_tags($content);
    }
    if ( $cut ) {
        $blah = explode(' ', $content);
        if ( count($blah) > $cut ) {
            $k = $cut;
            $use_dotdotdot = 1;
        } else {
            $k = count($blah);
            $use_dotdotdot = 0;
        }
        for ( $i=0; $i<$k; $i++ )
            $excerpt .= $blah[$i].' ';
        $excerpt .= ($use_dotdotdot) ? '...' : '';
        $content = $excerpt;
    }
    $content = str_replace(']]>', ']]&gt;', $content);
    return $content;
}

Obviamente deberéis de copiar y pegar todo esto en el archivo functions.php de vuestro tema.

¿Qué hace? Crea meta tags dinámicos de la siguiente manera:

  • En la HOME deberéis de insertar la descripción del blog y las palabras clave que vosotros elegís (sustituyendo LAS KEYWORDS DEL DEFAUT con vuestras keywords)
  • En los artículos y en las páginas insertará las primeras 25 palabras de la cabecera, las etiquetas y las categorías como palabras clave.
  • En la página de categorías insertará como descripción aquella que hayamos especificado para las categorías.

Una vez hecho esto podréis deshabilitar todos esos pesados plugins para el SEO y podréis gozar de un blog aligerado de mucho código inútil.

Written by wbaseweb

1 Comment

  1. Jan · 3 marzo, 2011

    Muy interesante tu aporte, buscaba usar algunas de estas funciones sin tener que instalar el plugin.
    Pero parece que da algunos errores. He encontrado que a día de hoy las funciones wp_specialchars() y make_url_footnote() están ya obsoletas. ¿Tendrá que ver con esto?
    Quizá tocaría retocar o actualizar un poquito este código.
    No sé si eso sería mucho curro… Aquí uno que te lo agradecería un montón.
    Igualmente muchas gracias.

Leave A Reply