Perraco …otro Geek en la red…

Algoritmo de Optimización SEO para Wordpress

Algoritmo SEOHace algún tiempo que uso mi propio algoritmo para la optimización SEO de Perraco, lo escribí pensando sólo en lo que me hacia falta así que si hay alguna carencia o nueva idea soy todo oídos. El concepto era crear algo eficiente y que pudiera integrarse directamente a cualquier plantilla haciendo que formara parte de esta. Existen varios plugins que hacen lo mismo o parecido así que si esta técnica te parece algo complicada es mejor que optes por otra alternativa. Al ser un algoritmo tendrás que ensuciarte un poco las manos con PHP, aunque más que ensuciar diría disfrutar, pero es todo más sencillo de lo que parece. Las optimizaciones que ofrece el algoritmo son las siguientes:

  1. Título dinámico el cual se adapta según el contenido de la página.
  2. Keywords dinámicas según el contenido de la página usando las Tags de los Post. Si no utilizas las Tags se usarán las Keywords que definas por defecto.
  3. Descripción dinámica a partir del fragmento inicial del Post o Página individual, en el caso de la Página Principal, Archivos, Búsquedas, etc., se usará una descripción que definirás por defecto. De momento no utilizo el Extracto Opcional.
  4. Robots dinámico para evitar la penalización por contenido duplicado. La indexación se permitirá sólo a la Página Principal, Posts y Páginas individuales.

A continuación tienes los pasos a seguir para su uso e integración a tu plantilla, he intentado escribirlo lo más claro posible:

  1. Modifica en el código del algoritmo las siguientes líneas acorde con tu blog, las encontrarás resaltadas al principio del algoritmo:

    $meta_description = 'En este blog encontrarás de todo, ..., etc.';
    $meta_keywords = 'blogs,internet,curiosidades,humor,tecnología,software';

    Pon en $meta_description la descripción larga por defecto de tu página con no más de 20 palabras, y en $meta_keywords las Keywords por defecto que reflejen el contenido general de tu blog.

  2. Copia y pega el algoritmo a tu fichero functions.php localizado en la carpeta de tu plantilla, si este no existe también puedes descargarlo con el código ya implementado. No cometas el error de sobrescribir o reemplazar tu fichero functions.php.
  3. Edita el fichero header.php de tu plantilla. Entre las etiquetas <head></head> busca y borra las Meta Tags enteras Title, Robots, Description y Keywords según exista cada una de estas.
  4. Añade la siguiente línea en le fichero head.php, casi al principio de entre las etiquetas <head></head>:

    <?php if (function_exists('get_seo_meta_tags')) {get_seo_meta_tags();} ?>

  5. Sube el fichero functions.php y head.php a tu servidor.
  6. No hay paso seis.

Para probar su funcionamiento, abre varios Posts, Páginas, Archivos, etc., y examina el código generado, deberás encontrar las Seo Meta Tags casi al principio. A continuación tienes el algoritmo o este enlace donde podrás también descárgalo.

<?php
function get_seo_meta_tags() {
// -- MODÍFICA LAS SIGUIENTES VARIABLES ACORDE CON TU BLOG
$meta_description = 'En este blog encontrarás de todo, ..., etc';
$meta_keywords = 'blogs,internet,curiosidades,humor,tecnología,software';

// -- NO NECESITAS CAMBIAR NADA A PARTIR DE AQUÍ

//--------------------------------------------------------------
// Inicializa variables
global $posts;

$meta_robots = 'noindex';
$meta_title = get_bloginfo('name') . ' | ' . get_bloginfo('description');
//--------------------------------------------------------------

//--------------------------------------------------------------
// Calcula el Title, Description y Robots
if (is_home()) {
    $meta_robots = 'index';
}
elseif (is_single() || is_page()) {
    $meta_robots = 'index';
    $meta_title = single_post_title('', false) . ' | ' . $meta_title;

    //--------------------------------------------------------------
    // Descripción dinámica
    if (count($posts) > 0) {
        $temp = strip_tags($posts [0]->post_content);
        $temp = substr($temp, 0, 400);
        $temp = ereg_replace("/\n\r|\r\n|\n|\r/", "", $temp);

        $word_list = explode(' ', trim($temp));

        if (count($word_list) > 0) {
            $meta_description = '';

            for ($word_item = 0; $word_item < 35; $word_item++)
                $meta_description .= $word_list [$word_item] . ' ';

            $meta_description = utf8_encode(html_entity_decode($meta_description));
            $meta_description = trim(str_replace(']]>', ']]&gt;', $meta_description));
        }
    }
    //--------------------------------------------------------------
}
elseif (is_category()) {
    $meta_title = single_cat_title('', false) . ' | ' . $meta_title;
}
elseif (is_tag()) {
    $meta_title = single_tag_title('', false) . ' | ' . $meta_title;
}
elseif (is_archive()) {
    $meta_title = wp_title('', false) . ' | ' . $meta_title;
}
elseif (is_search()) {
    $meta_title = $meta_title;
}
elseif (is_404()) {
    $meta_title = '404 | ' . $meta_title;
}
else {
    $meta_title = wp_title('', false) . ' | ' . $meta_title;
}
//--------------------------------------------------------------

//--------------------------------------------------------------
// Keywords
if (count($posts) > 0) {
    $keywords_array = array();

    foreach ($posts as $post_item) {
        $tags_array = get_the_tags($post_item->ID);

        if (!empty($tags_array)) {
            foreach ($tags_array as $tag_item)
                $keywords_array [] = trim(strtolower($tag_item->name));
        }
    }

    if (count($keywords_array) > 0) {
        $meta_keywords  = '';
        $keywords_array = array_unique($keywords_array);

        foreach ($keywords_array as $keyword_item)
            $meta_keywords .= apply_filters('the_tags', $keyword_item) . ',';
    }
}
//--------------------------------------------------------------

//--------------------------------------------------------------
// Construye las tags
$meta_robots  = "<meta name=\"robots\" content=\"" . $meta_robots . ",follow\" />";
$meta_title = "<title>" . $meta_title . "</title>";
$meta_description = "<meta name=\"description\" content=\"" . $meta_description . "\" />";
$meta_keywords = "<meta name=\"keywords\" content=\"" . $meta_keywords . "\" />";
//--------------------------------------------------------------

//--------------------------------------------------------------
// Emite el resultado
echo "\n\t<!-- Inicio Seo Tags -->";
echo "\n\t" . $meta_title . "\n\t" . $meta_description;
echo "\n\t" . $meta_keywords . "\n\t" . $meta_robots;
echo "\n\t<!-- Final Seo Tags -->\n";
//--------------------------------------------------------------
} ?>

3 Respuestas

  1. Dogguie Windows XP Mozilla Firefox 2.0.0.11 Comentario
    7 Diciembre 2007 - 21:38

    Yo utilizo el All in SEO pack, y me va muy bien con ese. Es mas, recibi un leve incremento en las visitas desde que lo estoy utilizando (1 mes)

  2. Perraco Windows XP Mozilla Firefox 2.0.0.11 Comentario
    7 Diciembre 2007 - 21:47

    Dogguie, yo también he usado bastante el All-in-one-seo-pack, pero queriendo tener algo que pudiera optimizar yo mismo en vez de pedir y esperar decidí escribir mi propio algoritmo. Mi idea es tener algo sencillo dentro de lo que cabe, que se integre en la plantilla sin tener que llamar pluguins y que sobretodo sea ráaaapido. Pero bueno, el plugin que usas la verdad es que está bastante bien. Por otro lado para la gente que decida usarlo estoy abierto a sus sugerencias para optimizarlo aun más.

  3. optimizacion seo Mac OS X Mozilla Firefox 3.5.6 Comentario
    6 Enero 2010 - 22:36

    espectacular el post! el sitio va derecho a marcadores! dejo info de un post que hice sobre otros items de optimizacion seo tambien, espero que os guste, saludos y felicitaciones por alla

Deja tu comentario




Teclea la palabra de seguridad: *

Anti-Spam Image

Sugerencias:
  • Se paciente, respondo siempre aunque a veces tarde un poco.
  • Si tu comentario no aparece tranquilízate, está en moderación.
  • No envies publicidad, pornografía, etc. Esta no será publicada.
  • Se respetuoso, ya sabes, no mentar a madres, padres, hermanas, hermanos, abuelos, abuelitas, primos, vecinos, ni siquiera el perro o el hámster.
Cerrar
Enviar por Correo