Cómo insertar un widget de mapa en cualquier web
Crea el código una sola vez: escribe tu dirección en el generador de mapas insertables, arrastra el pin hasta tu entrada exacta y copia una línea de iframe. Funciona en cualquier plataforma que tenga un bloque HTML o de inserción. En WordPress puedes instalar el plugin y usar un shortcode en su lugar. En ambos casos no hay clave de API, ni cuenta de facturación, ni cookies. Y el pin nunca puede desplazarse, porque el código lleva tus coordenadas finales en vez de volver a geocodificar la dirección.
Con permiso · Privado · Funciona en Chrome, Safari, Firefox, Edge
Empieza en el generador (el único trabajo real)
Todo empieza en el generador de mapas insertables. La geocodificación ocurre una sola vez, ahí — el fragmento que copias lleva coordenadas fijas, así que una caída del geocodificador o una «normalización de la dirección» nunca podrán mover tu pin después. Escribe la dirección, mira dónde cae el pin y arrástralo hasta tu entrada real antes de copiar: esos diez segundos de arrastre son la diferencia entre «la calle correcta» y «la puerta correcta».
¿Quieres ver una configuración multisede ya terminada antes de crear la tuya? Abre la demo del generador — carga una empresa de ejemplo con tres sedes, con direcciones, pines numerados de colores y el panel de ubicaciones en vivo dentro de la vista previa, listo para trastear.
WordPress: ¿shortcode del plugin o iframe puro?
Las dos rutas terminan en el mismo widget — elige según tu gusto.
Ruta del plugin (recomendada): descarga whatismylocation-widget.zip → wp-admin ▸ Plugins ▸ Añadir nuevo ▸ Subir plugin → Activar. Después añade un bloque Shortcode:
[whatismylocation_map lat="48.858400" lng="2.294500" name="Acme SARL" address="Champ de Mars, Paris"]
Los atributos se leen igual que las opciones del generador: theme, marker, zoom, height, directions, y para las sedes pins="lat,lng,Label~Address|…" con panel= y motion= (mira la tabla de referencia más abajo). La sección de WordPress del generador crea el shortcode completo por ti — no hay que escribir nada.
Ruta sin plugin: pega el iframe del generador en un bloque HTML personalizado. El mismo widget, sin plugin que actualizar; a cambio, tu contenido lleva más marcado y luego no podrás editarlo por atributos.
Squarespace, Shopify, Notion — y el resto
Fuera de WordPress el trabajo suele ser un solo pegado: añade el elemento HTML o de inserción de tu plataforma (Wix Embed HTML, bloque Code de Squarespace, Embed de Webflow) y coloca ahí el iframe. Hay una diferencia que hace el widget de mapa más fácil que el widget de ubicación: no necesita el atributo allow="geolocation", porque nunca le pide nada a quien visita tu web. Así que no hay nada frágil que conservar cuando un maquetador reescribe tu HTML.
Squarespace: añade un bloque Code y pega. Un detalle que conviene saber de entrada: los bloques Code requieren el plan Business o superior — en el plan Personal el bloque muestra tu código como texto plano en lugar de renderizarlo.
Shopify merece algo mejor que un pegado: ofrecemos una sección de tema lista para usar — un archivo en tu tema te da un panel de ajustes nativo con las sedes como bloques que se reordenan arrastrando, sin app y sin clave de API.
Notion y Google Sites insertan por URL, no por HTML. No aceptan un fragmento iframe — en su lugar, pulsa Copiar URL del widget en el generador y pégala en el bloque /embed de Notion o en Insertar ▸ Por URL de Google Sites. El widget es una página independiente completa, así que se ve perfecto de las dos maneras.
Salesforce Experience Cloud (sitios de comunidad públicos): coloca el iframe en un componente HTML Editor — después pide a tu administrador que añada whatismylocation.ai en Configuración ▸ Trusted URLs con la directiva CSP frame-src, o Salesforce bloqueará el marco en silencio. Quien trabaje con código puede envolver esa misma URL en un Lightning Web Component de unas 10 líneas:
<!-- wimlMap.html -->
<template>
<iframe src={src} width="100%" height="340"
loading="lazy" title="Map"></iframe>
</template>
// wimlMap.js
import { LightningElement } from 'lwc';
export default class WimlMap extends LightningElement {
src = 'https://whatismylocation.ai/widget/map?lat=48.858400&lng=2.294500&name=Acme';
} Varias sedes: el panel de ubicaciones
Caben hasta 10 ubicaciones en un mismo widget. En el modo Avanzado del generador, coloca cada pin, dale una etiqueta y una dirección, y pulsa Añadir ubicación. Quien visita tu web ve un panel de ubicaciones — un acordeón junto al mapa en escritorio, una tira de tarjetas deslizable en el móvil — con pines numerados: al elegir una sede, el mapa vuela hasta ella y muestra su dirección con su propio enlace de Cómo llegar.
panel=elige la disposición:auto(por defecto — al lado en iframes anchos, tira en los estrechos),side,bottomononepara pines simples con ventanas emergentes.motion=define la animación al cambiar de sede:smooth(el vuelo por defecto),fade,livelyonone. Quien tenga activado «reducir movimiento» en su sistema verá siempre la versión instantánea, elijas lo que elijas.open=noarranca con todas las entradas plegadas; el mapa se ajusta solo a todas las sedes y tuzoompasa a ser el máximo.
Referencia de opciones
| Opción | Valores | Notas |
|---|---|---|
lat / lng | grados decimales | Obligatorio para una sola ubicación (el generador los rellena). |
pins | lat,lng,Label~Address|… | Hasta 10 sedes; sustituye a lat/lng. Etiquetas ≤80 caracteres, direcciones ≤120; sin | ni ~ dentro. |
name | texto ≤80 | Título en negrita de la tarjeta o del panel — normalmente el nombre de tu negocio. |
address | hasta 3 líneas | Dirección de la tarjeta (una sola ubicación; las sedes usan Label~Address). El generador te da tres campos de línea; en el shortcode de WordPress, | separa las líneas. |
name_style / address_style | n · b · i · bi | Negrita o cursiva por línea — el título va en negrita por defecto y el estilo elegido sustituye ese valor. En el generador: los botones B/I del modo Avanzado. |
maps | google · apple · google,apple | Pequeños enlaces con icono «Abrir en Google Maps» / «Abrir en Apple Maps» con descripción al pasar el cursor, en la tarjeta y en cada sede del panel. Sin valor, sin iconos. |
zoom | 2–19, por defecto 16 | Con varias sedes pasa a ser el máximo tras el ajuste automático. |
theme | light · dark · golden | Combínalo con tu web. |
marker | emerald · red · amber · indigo · slate | Color del pin; por defecto, el azul clásico. |
panel | auto · side · bottom · none | Disposición del panel de ubicaciones (solo con varios pines). |
motion | smooth · fade · lively · none | Animación al cambiar de sede; quien reduce el movimiento lo ve siempre al instante. |
open | yes · no | Si la primera sede arranca desplegada (por defecto yes). |
directions | yes · no | Botones de Cómo llegar — uno por sede en el modo de varios pines. |
iframe height | 220–800 px | 340 va bien con un solo pin; con el panel, 400 o más respira mejor. |
attribution | yes · no | Leyenda opcional «Powered by» en tu página — desactivada por defecto en el plugin. |
Solución de problemas en WordPress
El shortcode aparece como texto literal en la página. Ese bloque no procesa shortcodes. En el editor de bloques usa un bloque Shortcode (no uno de código ni preformateado); en Elementor usa su widget Shortcode, en Divi un módulo Code. Con el editor clásico: escríbelo en la pestaña Visual como texto normal.
No aparece nada. Mira el código fuente de la página y busca whatismylocation. Un comentario HTML sobre lat/lng ausentes significa que faltan las coordenadas o no son válidas — copia el shortcode completo desde el generador en lugar de escribir los atributos a mano.
El iframe desaparece al guardar (ruta sin plugin). WordPress elimina los iframes en los roles de usuario que no tienen la capacidad unfiltered_html — en multisitio eso incluye a los administradores por defecto — y algunos plugins de seguridad hacen lo mismo. El shortcode del plugin es la solución limpia: no depende de que tu rol pueda guardar iframes en bruto.
El mapa está gris o las teselas no cargan. Las teselas vienen de tile.openstreetmap.org; un bloqueador de anuncios muy agresivo o una red corporativa pueden bloquearlas (la tarjeta superpuesta sí se ve). Compruébalo en otra red o en un móvil con datos.
No aparece el panel de ubicaciones. El panel aparece a partir de 2 pines — una sola ubicación muestra la tarjeta superpuesta clásica. Comprueba también que no esté puesto panel="none".
La animación al cambiar no se reproduce. Casi siempre es el ajuste «reducir movimiento» del sistema operativo de quien visita la web (o del tuyo). El widget lo respeta a propósito y cambia al instante. No es un fallo, y el resto de visitantes sigue viendo el preajuste que elegiste.
Los cambios no se ven. Un plugin de caché (o la caché de tu alojamiento) está sirviendo la página antigua. Vacía la caché de la página después de editar los atributos del shortcode — el widget en sí no tiene nada que cachear.
Paso a paso
- Abre el creador de mapa insertado, escribe tu dirección y pulsa Buscar en el mapa (o pega coordenadas en bruto como 48.8584, 2.2945).
- Arrastra el pin (o haz clic en el mapa) hasta que quede exactamente sobre tu entrada — los geocodificadores suelen situarse en el centro de la calle, no en tu puerta. El widget conserva estas coordenadas finales para siempre.
- Añade el nombre de tu negocio y elige un tema. ¿Tienes varias sucursales? Cambia el creador al modo Avanzado y pulsa Añadir ubicación por cada una — etiqueta más dirección.
- Copia el código de inserción — o, en WordPress, el shortcode ya preparado de la misma página — y pégalo en tu página.
- Publica y revisa la página: el mapa, el pin y el botón Cómo llegar deben aparecer de inmediato. Sin clave, sin cuenta, nada que configurar en el servidor.
Preguntas frecuentes
¿Necesito una clave de API para insertar el mapa?
¿Cuántas sedes caben en un mismo mapa?
Ver en inglés: How to Embed a Map Widget on Any Site · Español