Sitemap para foros SMF, Smf Pretty Sitemap

Si tienes un foro SMF con versión 1.X permanece en este artículo, si tienes la versión 2.X usa el siguiente enlace: Sitemap para foros SMF versión 2.0 o superiores.

Siguiendo con el curso de optimización de mi foro de informática smf, he decidido añadir un sitemap para aprovechar la creciente subida de visitantes.

Ya aprendimos a poner urls amigables, sin duda un paso muy importante, pero si queremos que los buscadores sepan todos los cambios que ocurren en nuestro foro necesitaremos un sitemap.

Sitemap para foros SMF

Buscando (comprobar antes de reinventar) encontré un mod en la página oficial pero.. no era apto para la última versión (1.1.7) así que lo descarté.

Ya estaba pensando en hacerlo yo cuando encontré en google code un código bastante sorprendente que hacía exactamente lo que estaba pensando hacer.

Su autor comentaba que incluso había sido adaptado para funcionar con pretty urls, así que aún me lo ponía más fácil.

Instalar Smf pretty sitemap

Como siempre suele pasar en la informática, nunca sale nada como debería, así que lo que simplemente iba a ser descargar y activar se complicó un poco más, explico los pasos a seguir para tener tanto pretty urls (v0.8) como smf pretty sitemap (v0.9) funcionando juntos en un foro smf (v1.1.7).

  1. Descargamos el archivo php
  2. Lo subimos a nuestro directorio principal con el nombre de sitemap.php
  3. Navegamos hasta http://tuforo.com/sitemap.php
  4. Si no da fallo, ya lo tienes instalado
  5. Si da un fallo, abre el fichero sitemap.php y ve a la línea 63, sustituye $request=”…”; por lo siguiente
    $request = db_query("
    SELECT t.ID_TOPIC, p.pretty_url, t.ID_BOARD
    FROM {$db_prefix}topics t, {$db_prefix}pretty_topic_urls p
    where p.ID_TOPIC = t.ID_TOPIC
    ORDER BY numViews + numReplies DESC
    LIMIT 20000", __FILE__, __LINE__);
  6. Ahora ya tendrás funcionando el sitemap, pero aún puede haber errores. Por defecto pretty urls conserva las comillas, tanto simples como dobles en la url, y al volcarlas en el sitemap provoca fallos.
  7. Abrimos el fichero Sources/Subs_PrettyUrls.php
  8. En la línea 136 sustituimos chr(18) por . La línea quedaría así
    ''    =>    array ("'", '"', 'ﺀ', 'ع'),

Si hemos seguido bien los pasos tendremos un sitemap como este.

PD: Si te aparecen fallos en el sitemap, significa que tenías ya algunas urls guardadas con comillas, para solventarlo, tendrás que ir una por una modificándolas a mano en la base de datos.

- Si tienes dudas puedes participar en nuestro foro de seo.

Artículos relacionados



Comentarios en Sitemap para foros SMF, Smf Pretty Sitemap

Hay 31 Comentarios en el artículo Sitemap para foros SMF, Smf Pretty Sitemap, ¿a qué esperas para dar tu opinión?


  1. Mundote dice:

    oye en el ultimo paso tengo problemas.

    En la línea 136 sustituimos chr(18) por ” . La línea quedaría así

    A mi me parece en esa linea:

    foreach ($pretty_board_lookup_old as $board => $id)

    Asi que busque el “chr(18)” y lo encontre en la linea 14 y aparece asi:

    SET pretty_url = REPLACE(pretty_url, ‘\\”, ‘” . chr(18) . “‘)”, __FILE__, __LINE__);

    pero no se que debo ahi remplazar o como quedaria..

  2. Emirodgar dice:

    ¿has comprobado que sea la misma versión? A lo mejor tu versión ya no tiene problema, prueba a escribir un título con comillas, tanto dobles como simples y mira ver si la url que te genera las lleva o no, si las lleva, tendrás que buscar esta línea y sustituirla por la que he mencionado antes.

    chr(18) => array (“‘”, ‘”‘, ‘ﺀ’, ‘ع’),

  3. Mundote dice:

    Mira no he modificado aun nada esta las url como se instalo carge el sitempa pero checa el error que me marca, la url esta en el campo de pagina (para no hacer spam).

    Bueno agradeceria bastante si me ayudas… mi msn es el del campo mail

  4. Mundote dice:

    Mira te dejo el Subs-Pretty para que lo chequees y veas que hace falta eso que dices.

    Solo el paso 7 y 8 y seria el supertutoroial……

  5. Emirodgar dice:

    Sip, te pasa como a mi, las comillas las mete en las url y eso no puede ser, ¿no encuentras la fila chr(18) => array (”‘”, ‘”‘, ‘ﺀ’, ‘ع’), en tu fichero Subs_PrettyUrls.php? que versión tienes?

    Si no lo encuentras dímelo que te mando el mio…

  6. Emirodgar dice:

    Por cierto, las que ya estás así, tienes que modificarlas a mano en la base de datos, borrando el carácter ese raro este apaño es simplemente para evitar que vuelva a pasar.

  7. Mundote dice:

    La version que estoy usando es SMF 1.1.7 Sin modificaciones ya que ayer limpie de nuevo todo el Foro, asi que esta completamente limpio el foro.

    Y pretty URL Version 9 estoy usando este: http://prettyurls.googlecode.com/files/prettyurls-0-9.tar.gz

    Haz de cuenta que instale mi foro desde Cero, osea completamente limpio, luego le instale el Pretty y luego subi el archivo sitemap, me marcaba el error en el sitemap, asi que hice la modificacion que indicas arriba, pero aun asi marcaba error asi que quise hacer el paso 7 y 8 pero no aparece la linea que dices, no se si hayan modificado algo, de cualquier modo si tienes tu archivo o tienes el pretty url que usas ojala me lo puedas compartir, apenas como funcione yo hago una entrada en mi web hacia tu tutorial vale, y grax por la ayuda…

  8. Emirodgar dice:

    Claro, es que ese es diferente, se llaman igual pero yo lo descargué de la página oficial de SMF, aquí:

    http://custom.simplemachines.org/mods/index.php?mod=636

  9. Mundote dice:

    jejeje la URL que me das es la misma simplente que en SMF pero es exactamente el mismo archivo man es el mismo igual pesos checa abajo de la pag que me diste y te manda igual a la pagina del creador…

  10. Emirodgar dice:

    Si pero no, si le das a descargar desde esa página (no vayas a la página del autor) bajas un paquete listo para instalar en SMF y en el que sí que se incluye el archivo Subs_PrettyUrls.php para poder modificar eso.

  11. Mundote dice:

    Ya baje el que me dices de la pagina y abri el sub_prety… pero trare exactamente lo mismo, mejor me podrias pasar tu subpretyy

  12. Emirodgar dice:

    He estado revisando y tienes toda la razón, ambos son el mismo archivo, me despisté.

    Supongo que bajé el de la página oficial (v0.9) y lo instalé desde el panel de administración, digo supongo por que ya no tengo el archivo que instalé en mi ordenador y desconozco el proceso que sigue SMF para cargar mods.

    De todas maneras te he enviado mi fichero Subs_PrettyUrls.php para que le eches un vistazo.

  13. Senege dice:

    Hola bueno, eh hecho las modificaciones:

    $request = db_query(”
    SELECT t.ID_TOPIC, p.pretty_url, t.ID_BOARD
    FROM {$db_prefix}topics t, {$db_prefix}pretty_topic_urls p
    where p.ID_TOPIC = t.ID_TOPIC
    ORDER BY numViews + numReplies DESC
    LIMIT 20000″, __FILE__, __LINE__);

    Pero cuando le doy a mi sitio siguen aparecien fallos como este:

    Unknown column ‘pretty_url’ in ‘field list’
    Archivo: /home/nombredeladb/public_html/foro/sitemap.php
    Línea: 68

    A ver tu experiencia.
    saludos

  14. Emirodgar dice:

    @Senege: A ver, te comento, por lo que he podido ver algunas versiones cambian en pequeñas cosas, en el punto en el que estás lo que tienes que hacer es simplemente una consulta a la base de datos.

    Por lo que veo en tu caso falla el campo “pretty_url” entra en la base de datos y comprueba el nombre de ese campo y de esa tabla y actualiza la consulta en consecuencia, eso fue lo que hice yo, espero que logres solucionarlo.

  15. Mauro dice:

    Hola, tengo el mismo problema d elas comillas, uso smf 1.1.7 e instale la ultima version de pretty url, como edito la base de datos para actualizar la consulta en consecuencia que decis vos??

    Saludos

  16. Emirodgar dice:

    @Mauro: En la base de datos, al instalar pretty urls se crearon un par de tablas, en una de ellas vienen las direcciones, pues en esa tendrás que ir una por una revisando los fallos (los que contienen comillas) no recuerdo si el nombre de la tabla es algo como prettyUrls_topic y la otra prettyUrls_cache o algo así.

    Simplemente eliminas los caracteres raros y listo, verás que lo haces bien cuando en el sitemap.php no aparezcan errores.

  17. daniel dice:

    bueno la solucion es siemple gracias a ese tuto lo puse solucionar ! chekeen

    en Subs-PrettyUrls.php
    de la linea 14 a la 60 aparesen cosas asi
    ’3′ => array (’3′, ‘³’),
    ’4′ => array (’4′),
    ’5′ => array (’5′),
    ’6′ => array (’6′),
    ’7′ => array (’7′),
    ’8′ => array (’8′),
    ’9′ => array (’9′),
    );

    lo que tiene que hacer es agregar al final en entre la linea 60 y 61 es lo que dice Emilio
    ” => array (“‘”, ‘”‘, ‘ﺀ’, ‘ع’),

    eso es todo y veran que los caracteres ” ya no existen mas en los link !
    espero que le sea de ayuda a alguien saludos

  18. Mauro dice:

    Hola daniel hice lo que dijiste, pero todavía me siguen apareciendo las comillas en las urls.

    ” => array (”‘”, ‘”‘, ‘ﺀ’, ‘ع’),

    Alguna otra solución??

    Emilio me podrías pasar tu archivo Subs-PrettyUrls.php al emial para ver si se soluciona este problema.

    Saludos

  19. Emirodgar dice:

    @Mauro: Claro que te siguen apareciendo, las que ya estaban no se habrán quitado, este apaño es para evitar que vuelvan a aparecer, si ya tenías urls mal escritas tendrás que retocarlas a mano en la base de datos.

  20. daniel dice:

    pones el numero??

    por ejemplo
    ‘3′ => array (’3′, ‘³’),
    ‘4′ => array (’4′),
    ‘5′ => array (’5′),
    ‘6′ => array (’6′),
    ‘7′ => array (’7′),
    ‘8′ => array (’8′),
    ‘9′ => array (’9′),
    ‘10′ => array (”‘”, ‘”‘, ‘ﺀ’, ‘ع’),
    );

    el numero ponlo entre las comillas ” que quede asi ‘numero′

  21. Celulosis dice:

    Hola Emilio una pregunta eh seguido todos los pasos tal como lo describes en el paso 7 y 8 en Subs-PrettyUrls.php, chr(18) no hay en ninguna parte del script.

    mi sitemap tiene el siguiente error http://www.esdeperu.com/foros/sitemap.php

    Error de lectura XML: no se encuentra elemento
    Ubicación: http://www.esdeperu.com/foros/sitemap.php
    Número de línea 4, columna 1:

    Podrias poner tu sitemap zipeado para poder bajarlo y comparar?

    • Emilio dice:

      El error que te da es por que este script no es compatible con tu versión (2.0) de SMF.

      Si ves el código fuente de tu sitemap verás que no encuentra la función db_query(), para usarlo tendrás que volver a la rama 1.x

  22. Atomsk dice:

    tengo la version 9.3 de pretty url, y he probado a añadir la linea
    ” => array (“‘”, ‘”‘, ‘ﺀ’, ‘ع’),
    en subs-pretty, pero no pasa nada, creo temas nuevos con comillas en el título para comprobar si funciona pero todo sigue igual.

    Y si uso la opcion de mantenimiento de pretty urls me tira error 500 y tengo que restaurar backup D:

    Ahora me voy a poner a investigar si no será más sencillo hacer que el sitemap reconozca comillas en vez de hacer que el pretty urls no las use xD

  23. Atomsk dice:

    Al final lo conseguí ^^ habia otra linea que sustituir
    en la que está \x12

    El problema de usar el mantenimiento de pretty urls persiste, asi que tocará hacerlo a mano

    Rezo porque en los últimos 3 años no les haya dado por usar muchas comillas en los títulos de los temas xD

  24. Anthony dice:

    Para la versión 2.X de los foros SMF hay que sustituir donde ponga

    db_query(

    por

    $smcFunc['db_query'](”,

    Si no, no funcionará

  25. magarto dice:

    Perfecto!!!
    Para los que usamos SMF 2.0, si juntamos este hilo al siguiente funciona:
    http://foro.aesinformatica.com/seo/sitemap-para-foros-smf-version-2/msg5143/#msg5143

    Gracias

  26. kaiser1313 dice:

    Tengo un problema, el sitemap incluye dentro de él direcciones de areas y temas que yo tengo ocultos a los miembros del foro y visitantes (areas del staff por ejemplo), como evito que se incluyan estas areas y temas dentro del sitemap??

  27. kaiser1313 dice:

    Ah y otra duda que tengo es hasta cuantas direcciones guarda el sitemap??, recordar que son maximo 50000 por archivo y que pasa si sobrepasa ese maximo?? Se crea otro archivo de sitemap o que??

Deja un comentario