Joaquín Cuenca

Si habeis conseguido crear una aplicación web (¡felicidades!), lo más probable es que la hayais escrito en inglés o en castellano. No creo que tenga que convencer a nadie de que en ese caso, estais dejando pasar un mercado potencial enorme, ya que hay más gente en el mundo qué no habla inglés o castellano qué la que lo hablan. Para aprovechar el trabajo que teneís hecho y lanzaros a esos nuevos mercados es necesario (aunque tal vez no sea suficiente) traducir vuestra página web a otros idiomas.
Joaquín Cuenca

Si habeis conseguido crear una aplicación web (¡felicidades!), lo más probable es que la hayais escrito en inglés o en castellano. No creo que tenga que convencer a nadie de que en ese caso, estais dejando pasar un mercado potencial enorme, ya que hay más gente en el mundo qué no habla inglés o castellano qué la que lo hablan. Para aprovechar el trabajo que teneís hecho y lanzaros a esos nuevos mercados es necesario (aunque tal vez no sea suficiente) traducir vuestra página web a otros idiomas.

El mayor problema con el que os vais a encontrar es la falta de conocimientos sobre internacionalización. Es increíble como muchos programadores, por lo demás perfectamente capacitados, parecen convertirse en Paris Hilton cuando hablan de internacionalización. Eso si llegan a hablar... Vamos a empezar sentando las bases de lo que es un juego de carácteres (charset) y una codificación (encoding). El juego de carácteres es la tabla que traduce de un número a un "carácter" (o para ser más precisos un "codepoint"), y la codificación es el algoritmo que hemos seguido para guardar ese número.

Por ejemplo, el juego de carácteres ISO-8859-1 (también conocido como ISO-Latin-1) es una tabla idéntica a ASCII para números menores de 128, y entre 128 y 255 incluye todos los carácteres necesarios para las lenguas usadas en Europa occidental, excepto por los carácteres Š, š, Ž, ž, Œ, œ, Ÿ, y el €. ISO-8859-15 es idéntico a ISO-8859-1 excepto por la inclusión de estos ocho carácteres. Si usais ISO-Latin-1 y siempre os habeis preguntado por qué había que usar € para conseguir el € en HTML en lugar de poder escribirlo directamente, ya conoceis el motivo. Dado que estos dos charsets, al igual que todos los de la familia ISO-8859 sólo contienen 255 carácteres, el encoding que siempre se usa es el más trivial: guardar cada carácter en un byte.

Sirviendo las páginas siempre en este juego de carácteres podremos tener textos en cualquier idioma de europa occidental. Pero ¿qué pasa con el resto del mundo? podríamos imaginarnos un sistema donde elegimos un juego de carácteres en función del idioma, pero esto no funcionaría si tenemos una página con una mezcla en varios idiomas (muy común si tenemos un sistema de comentarios, y una audiencia internacional) y en general es engorroso e innecesario. Afortunadamente, este problema ha sido resulto por el consorcio Unicode, que se lanzó a la creación de un juego de carácteres que incluyese todos los carácteres usados en el mundo.

Para codificar Unicode se empezó usando dos bytes por carácter. Este encoding se llama UCS-2, y se sigue usando en Windows y en Java. Por algún motivo, en toda la documentación tanto para usuarios como para desarrolladores, a UCS-2 se le llama "Unicode". Dependiendo de la arquitectura en la que estemos, el byte menos significativo de un carácter puede ser el primero, o el segundo, así que tenemos dos variantes de UCS-2, UCS-2LE (LittleEndian) y UCS-2BE (BigEndian). Para distinguir qué variante se está usando se le añade al principio del texto el carácter 0xFEFF "ZERO WIDTH NO-BREAK SPACE" (también conocido como el "BOM", Byte Order Marker). Así, si nos encontramos con un carácter BOM sabemos que estamos leyendo UTF-16 en el orden correcto. Si nos encontramos con un BOM reflejado (0xFFFE) sabemos que estamos leyendo al revés, ya que 0xFFFE no existe en Unicode.

Cuando UCS-2 se quedó corto para almacenar todos los carácteres del mundo y hubo que ir más allá de 0xFFFF, se añadió una extensión y se le llamó UTF-16, donde se usan dos carácteres especiales (llamados surrogates pair) para indicar que los bytes siguientes están fuera del plano básico. Se pierde así el único interés que tenía UTF-16, y es que se podía saltar directamente al carácter en la posición "n", ya que se conocía el tamaño de cada carácter (2 bytes). En realidad UCS-2 nunca tuvo esta cualidad, ya que ciertos carácteres en Unicode no son tales (por eso su nombre técnico es¨"codepoint"). Algunos codepoints son sólo un indicador que dice que hay que modificar el carácter que le sigue, por ejemplo añadiéndole un acento. ¿Y por qué no podían codificar cada carácter con un acento por separado, sin tener que recurrir a modificadores? Empezaron así, por eso tenemos un carácter independiente para "á", pero este método dejó de funcionar cuando se llegó al vietnamita (echadle un vistazo a un texto en vietnamita y vereis en seguida el motivo...).

También se creó otra codificación alternativa, UTF-32 (o UCS-4), qué consistía en guardar cada codepoint con 4 bytes. En realidad 3 bastan, pero en aras de mantener todos los carácteres alineados para arquitecturas de 4 bytes se añade uno extra (ya que estamos desperdiciando espacio...). Este es el motivo por el que en linux wchar_t mide 4 bytes, mientras que en Windows mide 2.

Estos dos encodings tienen en común que para los carácteres occidentales incluyen un byte con valor 0. Pero en una cadena C, el byte con valor 0 tiene el significado especial de ser el final de la cadena de texto. Todos los programas que usan C y leen texto tienen que cambiarse, ya que strlen, strcpy, etc. ya no funcionan con estos textos.

Así estaban las cosas cuando Ken Thompson y Rob Pike inventaron un nuevo encoding de tamaño variable llamado UTF-8. UTF-8 es idéntico a ASCII para todos los carácteres inferiores a 128, y usa uno o varios bytes extra (hasta un máximo de 4) cuando tiene que almacenar un número superior a 128. Cualquier texto ASCII en inglés es automáticamente un texto UTF-8 válido. Los textos europeos son en torno a un 2% más grandes que usando ISO-8859-15, ya que sólo los carácteres acentuados aumentan de tamaño. Los únicos que realmente salen perdiendo son aquellos que tenían un alfabeto pequeño (griego, ruso, ...) sin nada en común con el inglés, ya que antes podían codificar cada carácter con un 1 byte y ahora necesitan más. UTF-8 no usa ningún byte 0 en su codificación, y funciones como strcpy funcionan con textos UTF-8.

Mi recomendación es usar UTF-8 tanto en la base de datos como en la interfaz web. Algunos consejos prácticos:

Si guardais un texto en Windows como UTF-8, teneis muchas posibilidades de que el editor añada un "BOM" (también llamado "signature"). El BOM era útil para UTF-16, pero para UTF-8 es totalmente irrelevante, ya que en UTF-8 los carácteres se leen en un array de bytes, y el orden de la arquitectura no cambia nada (no existe un UTF-8 LE o UTF-8 BE). Pero en Windows lo siguen escribiendo para poder distinguir texto codificado en UTF-8 del codificado con otro encoding. Cuidad de usar un editor que os permita guardar en UTF-8 sin BOM, o vereis como vuestras páginas escriben tres bytes de más al principio de cada página web (el carácter BOM escrito en UTF-8 es EF BB BF). Si no la función headers en PHP os da un error porque ya habeis escrito "algo" en la página, y no sabeis lo que es, comprobad si el BOM está ahí y quitadlo.

Codificar vuestros textos en UTF-8 es el primer paso, pequeño pero significativo, para la internacionalización de vuestra página. En el próximo artículo veremos un ejemplo práctico de como traducir una página web.

Por último, es interesante saber que no basta con conocer el carácter que se le quiere mostrar al usuario para saber que grafía (en inglés, el glyph) hay que mostrar en pantalla.

Algunos idiomas como el árabe son contextuales, el mismo carácter puede tener 4 grafías distintas según esté solo, empiece la palabra, esté en medio, o la termine. Otros idiomas comparten carácteres, pero cambian ligeramente (o radicalmente) su grafía. El ejemplo más conocido es el de los scripts hanzi (Chino), kanji (Japonés) y hanja (Koreano). Estos scripts tienen un origen común, pero con el tiempo la forma de representar esos carácteres ha ido evolucionando. Así, si tenemos que mezclar en un mismo documento un carácter kanji Japonés con su equivalente en Chino tradicional, debemos indicar de alguna forma que una parte del texto está en Japones y otra en Chino tradicional. El mismo problema tiene el serbio, que se puede escribir en latín, o en cirílico, pero con la particularidad de que en cirílico algunas grafías cambian con respecto al cirílico ruso (ver este artículo sobre tipografía para más información). A pesar de que en HTML podemos indicar el language del documento, o de trozos de texto, usando el atributo "lang".

Ningún navegador cambia las grafías en función del idioma elegido, así que podeis considerar el párrafo anterior como puramente teórico, pero aún así es interesante poner correctamente el atributo "lang" ya que la pronunciación al igual que las grafías dependen del idioma (¡y de forma muchísimo más marcada!) y para personas invidentes es importante que su lector sepa con que voz debe de leer el texto.

Por cierto, Rob Pike trabaja en Google. Si quieres trabajar en un ambiente genial, con brillantes compañeros, envía tu CV a Google.



Hoy tenemos un montón de cosas que contaros. En primer lugar, queremos compartir con vosotros un lanzamiento que nos tiene a todos muy ilusionados. Se trata del sandbox de iGoogle ...


Hoy tenemos un montón de cosas que contaros. En primer lugar, queremos compartir con vosotros un lanzamiento que nos tiene a todos muy ilusionados. Se trata del sandbox de iGoogle. Este sandbox soporta OpenSocial, una API común diseñada para crear fácilmente aplicaciones sociales que puedan ejecutarse en cada vez más contenedores web. El contenedor OpenSocial de iGoogle también soporta la vista a pantalla completa, lo que permite a los programadores crear potentes aplicaciones a gran tamaño, con multitud de opciones, y para iGoogle.

Con este lanzamiento también hemos inaugurado la página web del programador de iGoogle. Este sitio incluye información detallada sobre iGoogle y una guía para añadir nuevas dimensiones sociales a los gadgets.

Si os lanzáis a crear gadgets, tenéis dudas, y queréis resolverlas, hemos creado un grupo de ayuda para gadgets en español. En él podréis compartir con otros programadores todos los retos de código a los que os enfrentéis y, además, tendréis a tres programadores, Raúl, Guillermo y Jorge, a los que quizás ya conoceréis porque han participado activamente en el blog o en otros grupos de Google, contribuyendo y resolviendo dudas. Podreis identificar sus mensajes porque bajo sus nombres aparecerá escrito "Google Gadget Guru". Jorge ya ha probado la nueva funcionalidad de compartir preferencias. Ha creado un gadget para escribir notas que se puedan compartir, siguiendo el formato utilizado por muchos wikis como la wikipedia. Lo podéis probar en http://www.lamboratory.com/gadgets/wikinotes.xml y leer más y compartir en el grupo.

Por último, os anunciamos que este año el Google Developer Day se celebrará en 13 países entre los que se encuentran México (23 Junio) y España (25 Septiembre). ¡Reservad las fechas! Es todo lo que os podemos contar de momento. En cuanto esté abierto el plazo de inscripción os lo haremos saber en este blog.



Probablemente os habréis dado cuenta de que la frecuencia de las entradas en el blog durante estos últimos diez días ha bajado ligeramente. Y os preguntaréis... ¿qué habrá tenido ocupados a estos chicos de Google? Pues bien, en nuestro afán por acercaros todo el contenido posible en nuestro idioma, acabamos de lanzar el Code Site, el sitio de Google para programadores, en ...


Probablemente os habréis dado cuenta de que la frecuencia de las entradas en el blog durante estos últimos diez días ha bajado ligeramente. Y os preguntaréis... ¿qué habrá tenido ocupados a estos chicos de Google? Pues bien, en nuestro afán por acercaros todo el contenido posible en nuestro idioma, acabamos de lanzar el Code Site, el sitio de Google para programadores, en español. Todavía nos queda camino por andar, pero estamos muy contentos de poder ir ofreciéndoos este sitio tan útil en nuestro idioma. De momento, ya tenemos el directorio del sitio y las páginas de presentación de las distintas APIs en español, así como algunos documentos más técnicos, como el API de gráficos. Cuando intentéis acceder a las páginas que todavía no están traducidas, llegaréis a la versión inglesa, pero estamos trabajando para ofreceros todo en español lo antes posible. Este lanzamiento se enmarca en un lanzamiento a cinco idiomas (chino, japonés, portugués y ruso, además de español, claro). Esperamos que os resulte útil y que pronto podamos ofreceros mucho más.



El API de Google Maps además de ofrecer capacidades para incluir un mapa en tu sitio web, controlarlo (cambiar el zoom o punto central) y añadir objetos o imágenes sobre él, también ofrece ...


El API de Google Maps además de ofrecer capacidades para incluir un mapa en tu sitio web, controlarlo (cambiar el zoom o punto central) y añadir objetos o imágenes sobre él, también ofrece servicios. Estos servicios, podrían definirse como unas funciones destinadas a transformar, mejorar o procesar información del usuario antes de utilizarla para situarla en nuestro mapa o en nuestra web.

En este caso, vamos a analizar el servicio de geoposicionamiento que ofrece Google Maps. El geoposicionamiento consiste en convertir una dirección postal (Puerta del Sol 1, 28001, Madrid) en unas coordenadas de latitud y longitud (40.424931,-3.698187) que permiten posicionar inequívocamente esa dirección en el mundo y más concertamente en Google Maps o Google Earth.

Aunque a este servicio puede accederse directamente bajo HTTP, en este caso nos vamos a centrar en su versión en objeto Javascript que permite obtener fácilmente coordenadas dentro de nuestra página que luego pueden reutilizarse para realizar acciones sobre un mapa de Google Maps. Para ello necesitamos un objeto de la clase GClientGeocoder definida en el API de Google Maps.

La clase GClientGeocoder ofrece muchas posibilidades pero sin duda la más inportante es la que ofrece el método getLatLng. A este método se le pasa:
1. la dirección que se quiere geoposicionar
2. el nombre de la función que se invocará cuando el proceso de geoposicionamiento se haya completado, y a la que se le pasará como parámetro un punto de la clase GLatLng.

Con la función invocada, tras el intento de Geoposicionamiento, podrán relaizarse las acciones deseadas como situar el punto en el Mapa, o mostrar las coordenadas en pantalla. Siempre hay que tener en cuenta que si esta función recibe un null como parámetro, significará que Google Maps no consiguió geoposicionar esa dirección.

A continuación os muestro un ejemplo:



Y este es el principal código javascript utilizado:

function inicializar() { 
map = new GMap2(document.getElementById("map_canvas"));
map.addControl(new GLargeMapControl());
map.setCenter(new GLatLng(40.424931, -3.698187), 5);
geocoder = new GClientGeocoder();
geocoder.setBaseCountryCode("es");
}

function obtenerCoordenadas(direccion) {

geocoder.getLatLng(direccion, pintarCoordenadas);
}

function pintarCoordenadas(point) {
if (!point) { alert("No se encuentra la dirección proporcionada.\n\n
Por favor, escribe la dirección con el formato:\n
nombre_calle, número, código_postal, ciudad \n\nPor ejemplo\n Goya, 24, 28001, Madrid");}
else {
//1. escribimos las coordenadas en la página
coordenadas_txt="Las coordenadas (latitud,longitud) son: "+point.lat()+","+point.lng();
document.getElementById('coordenadas').innerHTML = coordenadas_txt;
//2. Pintamos en punto en el mapa
map.setCenter(point, 15);
var marker = new GMarker(point);
map.addOverlay(marker); }
}

¡Espero que este servicio os parezca interesante y que sigaís investigando las capacidades del servicio de geoposicionamiento de Google Maps!



Desde Colombia nos llega a nuestra dirección de correo ( programacongoogle@google.com) el Custom Search Engine ( CSE) que uno de nuestros lectores ha creado, Empleos Colombia ...


Desde Colombia nos llega a nuestra dirección de correo (programacongoogle@google.com) el Custom Search Engine (CSE) que uno de nuestros lectores ha creado, Empleos Colombia. Crear un CSE no requiere programación alguna, en realidad es un proceso sencillísimo, pero el resultado es una herramienta tan potente que merece la pena dedicar una entrada a los CSEs.

¿Qué es un CSE?
Un CSE es un buscador "personalizado" que usa la tecnología de búsqueda de Google.

La clave para entender lo que es un CSE y la potencia que aporta está en lo que "personalizado" significa. En este contexto "personalizado" significa que el creador de un CSE puede:

  • Decidir sobre que página o páginas se realizará la búsqueda
  • Priorizar o restringir resultados basándose en websites y las páginas
  • Aplicar el look&feel de su website a los resultados
  • Crear etiquetas para búsquedas refinadas














  • Añadir sites a su CSE mientras navega por internet
  • Invitar a otros usuarios a colaborar en la construcción del CSE
  • Asociar el CSE con una cuenta de AdSense y ganar dinero con los anuncios que aparecen junto a los resultados
  • Incluir el CSE en su site o distribuirlo el CSE como un Gadget


¿Cómo se crea un CSE?
Crear un CSE es tan sencillo como ir a la dirección http://www.google.com/coop/manage/cse/create/1 y rellenar los campos que configurarán de forma básica el funcionamiento de nuestro CSE (descripción, idioma, sites sobre los que se buscará, etc). Una vez creado el CSE tendremos acceso al panel de control de CSEs donde ya podremos configurar todos los detalles y afinar el funcionamiento de nuestro CSE.

¿Que CSE existen?
En el registro de Google podréis encontrar miles de CSE de todos los tipos ya creados. Algunos buscadores claramente dirigidos al mundo de los programadores como The Programmers Search Engine que aporta una búsqueda personalizada en más de 2.500 sites sobre C, C++, C# y Java y otros orientados al público hispanohablante con intereses en un tema concreto como Blogs de cine que busca en más de 200 sites "información y reseñas de cine de los mejores blogs en castellano sobre el séptimo arte.".

¿Un mini "concurso"?
Os propongo un mini "concurso". Cread vuestros propios CSE y enviádnoslos antes del 30 de Abril a nuestra dirección de correo (programacongoogle@google.com). Los mejores los comentaremos en este blog y recibirán una camiseta exclusiva para los colaboradores de este blog.

Susan Moskwa y Trevor Foucher

En el foro de Google para webmasters recibimos muchas preguntas, pero no todo el mundo llega al grupo. Por si teníais dudas pero no conocíais el grupo, hemos seleccionado las más frecuentes y os las incluimos a continuación ...
Susan Moskwa y Trevor Foucher

En el foro de Google para webmasters recibimos muchas preguntas, pero no todo el mundo llega al grupo. Por si teníais dudas pero no conocíais el grupo, hemos seleccionado las más frecuentes y os las incluimos a continuación:

P: He enviado un Sitemap, pero mis URL aún no han sido rastreadas o indexadas. ¿No es ésta la utilidad del Sitemap?

R: Enviar un Sitemap ayuda a asegurarse de que Google conoce las URL de tu sitio. Puede ser especialmente útil cuando el contenido no es fácil de descubrir para el robot (como por ejemplo, las páginas que sólo son accesibles a través de un formulario). No obstante, no es una garantía de que esas URL vayan a ser rastreadas o indexadas. Utilizamos la información de los Sitemaps para aumentar nuestros procesos habituales de descubrimiento y rastreo. Más información.

P: Si un Sitemap no hace que me rastreen e indexen automáticamente, entonces ¿qué es lo que hace?

R: Sitemaps proporciona información a Google para ayudarnos a entender mejor tu sitio. Esto incluye asegurarse de que conocemos todas las URL, cuándo se actualizan y cuál es su importancia relativa. Además, si envías el Sitemap a través de las Herramientas para webmasters te mostraremos estadísticas, como por ejemplo cuántas URL de tu Sitemap se han indexado.

P: ¿Me ayudará un Sitemap a mejorar mi posicionamiento?

R: Un Sitemap no afecta al posicionamiento de las páginas. Sin embargo, si éste ayuda a obtener más páginas del sitio rastreadas (notificándonos qué URL no conocíamos y/o ayudándonos a priorizar las URL de su sitio), esto puede llevar a una mayor presencia y visibilidad de su sitio en nuestro índice. Más información.

P: Si establezco prioridad 1.0 para todas mis páginas, hará esto que estén mejor posicionadas (o que se indexen más rápido) que páginas de otros que tienen prioridad 0.8?

R: No. Como se indica en nuestro Centro de asistencia, la prioridad sólo indica la importancia de una URL concreta en relación a otras URL del mismo sitio y no afecta al posicionamiento de las páginas en los resultados de búsqueda. Indicar que todas las páginas tienen la misma prioridad es lo mismo que no proporcionar información alguna.

P: ¿Cuál es la utilidad de enviar un Sitemap si todos los metadatos (, , etc.) son los mismos para cada URL, o si no estoy seguro de que sean precisos?

R: Si el valor de una etiqueta en concreto es el mismo para todas las URL de tu Sitemap, no necesitas incluirla. Incluirla no te perjudicará, pero es básicamente lo mismo que no enviar ninguna información, ya que no ayuda a distinguir entre tus URL. Si no estás seguro de si los metadatos son precisos (por ejemplo, no sabes la última vez que se modificó una URL), es mejor omitir esa etiqueta para esa URL en lugar de especificar un valor que podría ser incorrecto.

P: He oído casos de gente que envió un Sitemap y fueron penalizados justo después. ¿Puede un Sitemap perjudicarte?

R: Sólo si te cae encima de la cabeza. En serio, si alguna vez ocurrió que alguien fue penalizado después de enviar un Sitemap, ha debido ser pura coincidencia. Google no te penaliza por enviar un Sitemap.

P: ¿Dónde puedo colocar mi Sitemap? ¿Debe estar en la raíz de mi sitio?

R: Recientemente hemos habilitado los envíos de Sitemap multidominio, lo que significa que puedes colocar el Sitemap en cualquier sitio siempre y cuando hayas verificado los sitios siguientes en la cuenta de Herramientas para webmasters:
  • el sitio en el que se encuentra el Sitemap
  • el/los sitio/s a cuyas URL se hace referencia en el Sitemap

Ten en cuenta que los Sitemaps multidominio pueden no funcionar en otros motores de búsqueda diferentes a Google. Más información sobre Sitemaps multidominio (en inglés).

P: ¿Puedo enviar el mapa del sitio que hizo mi webmaster? No acabo de entender esto del XML.

R: Hay una diferencia entre un mapa del sitio (normalmente en HTML) elaborado para ayudar a los humanos a navegar por tu sitio y un Sitemap en XML elaborado para los motores de búsqueda. Ambos son útiles, y es bueno disponer de ambos. Un mapa del sitio en tu dominio también puede ayudar a los motores de búsqueda a encontrar el contenido (ya que los robots pueden seguir los enlaces en la página). No obstante, si envías un mapa del sitio en HTML en vez de un Sitemap, las Herramientas para webmasters reportarán un error, ya que una página en HTML no es uno de los formatos reconocidos. Además, si creas un Sitemap en XML, podrás darnos más información de la que puedes proporcionar con un mapa del sitio en HTML (que es sólo una compilación de enlaces). Más información acerca de los formatos reconocidos de Sitemaps.

P: ¿Cuál es el mejor formato para un Sitemap?

R: Recomendamos el protocolo de Sitemap en XML como se define en Sitemaps.org. Los Sitemaps en XML tienen la ventaja de poder ser mejorados: puedes empezar con uno sencillo si quieres (con tan sólo una lista de las URL) pero, al contrario de un Sitemap en archivo de texto, después se puede mejorar fácilmente para que incluya más metadatos. Los Sitemaps en XML son también más comprensibles que un feed de Atom o RSS enviado como Sitemap, ya que los feeds suelen contener únicamente una lista con las URL más recientes, en vez de todas las URL que quieres que conozcan los motores de búsqueda.

P: Si tengo muchas URLs que apuntan al mismo contenido, puedo usar mi Sitemap para indicar mi URL preferida para acceder a ese contenido?

R: Sí. Aunque no podemos garantizar que nuestros algoritmos mostrarán una URL en concreto en los resultados de búsqueda, es útil que indiques tu preferencia incluyendo dicha URL en el Sitemap. Tenemos esto en cuenta, junto con otras señales, a la hora de decidir qué URL se muestra en los resultados de búsqueda. Más información sobre contenido duplicado (en inglés).

P: ¿Importa la ubicación de una URL dentro de un archivo Sitemap? ¿Las URL al principio del archivo obtendrán un mejor trato que las URL del final?

R: No y no.

P: Si mi sitio tiene muchas secciones (por ejemplo, un blog, un foro y una galería de fotos), debo enviar un Sitemap para el sitio entero, o varios Sitemaps (uno para cada sección)?

R: Puedes enviar todos los Sitemaps que quieras dentro de estos límites. Organízalos de una manera que facilite su mantenimiento. Si creas varios Sitemaps, puedes usar un Sitemap índice para enumerarlos todos. Más información.

Si aquí no has encontrado una respuesta para tu pregunta, podrás encontrar más preguntas y respuestas en nuestro Grupo de ayuda de Sitemaps.