What’s in Cabo · investigación de campo · julio 2026

Cómo arman su directorio de restaurantes los mejores del mundo

Ocho radiografías instrumentadas con navegador real, en escritorio y en teléfono: estructura, tipografía, datos estructurados, peso de página y tamaño de los objetivos táctiles. No son opiniones — cada cifra sale de una medición guardada, y los scripts que la produjeron están conservados para poder repetirla.

Teardown 1 · 2026-07-27

Teardown Michelin Guide — lista Baja California Sur

¿Cómo arma Michelin una página de listado de restaurantes de un destino chico, y qué le falta?

El listado de BCS declara en H1 «Baja California Sur : 1-22 of 22 restaurants» pero el DOM tiene 26 tarjetas .js-restaurant__list_item, las 26 con data-lat/data-lng. Lo más fuerte: JSON-LD = [] — CERO structured data en la página de listado (michelin.json → jsonld). Grid desktop 4 columnas, tarjeta 321×399 (caja de imagen 321×268, ratio 1.2), 8 tarjetas completas sobre el fold; móvil 1 columna 342×399, 5 completas. La barra de 10 filtros (New, Distinction, Good for, Cuisine, Special diets, In MICHELIN Hotels, Price, Days open, Book Online + search) NO es sticky: position relative, z 1089, y tras scroll a 1500 queda en viewportY -1344 (visible: false). En móvil esa barra hace scroll horizontal (scrollWidth 1147 vs clientWidth 390) y 0 de 11 chips llegan a 44px (todos de 34px de alto). Accesibilidad táctil: 53/217 targets ≥44px en desktop (24%), 53/213 en móvil (25%); el dropdown de Cuisine tiene 9 filas de 20px, 0 llegan a 44px, y muestra los conteos reales (Mexican 16, Contemporary 6, Mediterranean 2, Asian/Bakery/Fusion/Indian/Japanese 1 c/u). Sin librería de mapa en el listado; en móvil solo un botón fijo 69×39 abajo que enlaza a ?showMap=true. Peso: 268 requests / 3.43 MB desktop (scripts 1.77 MB), 251 / 3.14 MB móvil. Tipografía Figtree (h1 20px/500, nombre de tarjeta 20px SemiBold, cuerpo -apple-system 13px). Distinciones: solo 2 de 26 fichas BCS traen data-dtm-distinction=BIB_GOURMAND (Cocina de Campo by Agricole y Flora's Field Kitchen); la estrella es michelin-star_8519.svg a 16px, verificado en /en/mx/restaurants/1-star-michelin (H1 «Mexico : 1-27 of 27 restaurants»). Escala en ciudad grande: San Francisco pagina de 48 en 48 («1-48 of 158 restaurants»).

Listado de Baja California Sur en escritorio
Listado de Baja California Sur en escritorio
El mismo listado en teléfono
El mismo listado en teléfono
El desplegable de cocinas, con sus conteos reales
El desplegable de cocinas, con sus conteos reales
Dónde está la evidencia cruda

Datos: /tmp/rest-research/data/michelin.json, michelin-deep.json, michelin-filters.json, michelin-extra.json, michelin-dropdown.json, michelin-mapswitch.json, michelin-secs.json (espejados en el rescate). Scripts que revelan qué se midió (SOLO en /tmp): /tmp/rest-research/measure.py (secciones, tipografía, sticky, JSON-LD, motion, tap targets, red), deep.py (anatomía de tarjeta, filtros, fold, mapas, paginación), mich.py (filter bar exacta + tarjeta + per_screen), mich2.py (distinciones, lat/lng, markup de estrella), mapsw.py y dd.py (dropdowns), sections.py. Capturas: 15 PNG en /tmp/michelin-shots/michelin-* (incluye michelin-desktop-CARD.png, -FILTERBAR.png, -FILTER-OPEN.png, -STARCARD.png, full desktop y móvil) + 2 PNG sueltos en /tmp (michelin-shot.png, michelin-top.png de la lista de San Francisco). Scrape Firecrawl SF: /tmp/michelin-out.json (76,537 chars de markdown) y michelin-top.json.

Ubicación: /tmp/rest-research/data/michelin*.json + /tmp/rest-research/*.py + /tmp/michelin-shots/ + /tmp/michelin-out.json | espejo parcial (solo JSON): /config/workspace/whats in cabo /storm-reports/rescate-tmp-2026-07-28/rest-research/data/ y michelin-out.json, michelin-top.json

Teardown 2 · 2026-07-27

Teardown Eater — mapa «38 Best Restaurants in Mexico City»

¿Cómo estructura Eater una guía-mapa de 38 restaurantes y qué schema publica?

Eater es el único del set que emite ItemList completo: 1 bloque JSON-LD de 11,650 bytes con 38 itemListElement, cada uno @type Restaurant con name, url (ancla #slug dentro de la misma página) e image. Página larguísima: 56,989px desktop (57,332 tras scroll) y 66,473px móvil. Desktop es 2 columnas: contenido 600px + riel sticky de 640×800 («MORE MAPS IN EATER», sticky top:84px, 20 enlaces). Bloques de entrada de 573px con imagen 530×353 (ratio 1.5), loading=lazy y SIN atributos width/height (hasWH false → riesgo de CLS). Cada entrada trae micro-campos en <strong>: «Open for:», «Price range: $$$», «Best for:». Tipografía: h1 40px/700 y h2 31px/700 en Degular, cuerpo 18px/30.6px en Literata (67 de 69 párrafos con el mismo estilo). Móvil: toggle LIST/MAP como botón fijo 133×38 (z=3) y hasta 6 capas fixed apiladas, incluida una interstitial de descarga de app a pantalla completa 390×844 (bx-slab, z=10899). Tap targets: 166/211 por debajo de 44px de alto, mediana 42px. CERO librerías de motion (gsap, ScrollTrigger, Lenis, Locomotive, Framer, AOS = false); solo 2 animaciones CSS activas. Sin paginación: botón «See more maps». Peso 172 requests / 3.01 MB transferidos pero 9.06 MB decodificados (scripts: 1.89 MB → 7.63 MB). Contraste de arranque brutal: domcontentloaded 0.87s en desktop vs 10.91s en móvil.

La guía de 38 en escritorio, con su riel lateral pegado
La guía de 38 en escritorio, con su riel lateral pegado
En teléfono, con el conmutador LISTA/MAPA fijo
En teléfono, con el conmutador LISTA/MAPA fijo
Dónde está la evidencia cruda

Datos: /tmp/eater-work/results.json (6 entradas: 3 URLs × desktop/móvil), probe2.json (eater_jsonld con el ItemList completo, eater_desk_grid, eater_cardImgs, eater_mob_toggle), probe3.json (eater_desk_entrySections con los 38 bloques, eater_desk_stickyRail), probe4.json (eater_mob_stickyDeep con la pila de fixed). Scripts que revelan qué se midió (SOLO en /tmp): /tmp/eater-work/measure.py (esqueleto, headings, JSON-LD, chipRows, tap, listItems, mapa, paginación, motion, tokens, fuentes), probe2.py, probe3.py, probe4.py, p5.py (clic al toggle MAP). Capturas: 14 PNG en /tmp/eater-shots (eater-cdmx-desk/mob × fold, list, scroll1400, bottom, FULL + X-eater-mob-toggle, Z-eater-mob-deep, Z-eater-mob-MAP, Z2-eater-MAP) + 4 PNG sueltos en /tmp del scrape de junio (eater-card, eater-card2, eater-hero, eater-la-shot). HTML crudo: /tmp/eater-work/maps.html, m2.html, m3.html. Scrape junio de la.eater.com heatmap: /tmp/eater-la.json (68,178 chars de markdown).

Ubicación: /tmp/eater-work/ (results.json, probe2-4.json, *.py, *.html) + /tmp/eater-shots/ + /tmp/eater-la.json | espejo parcial (solo JSON, sin scripts ni PNG): /config/workspace/whats in cabo /storm-reports/rescate-tmp-2026-07-28/eater-work/ y eater-*.json

Teardown 3 · 2026-07-27

Teardown The Infatuation — guía Top 25 LA + índice de reviews

¿Cómo monetiza The Infatuation la confianza editorial con puntuaciones numéricas, y a qué costo de usabilidad?

El diferenciador medible es la calificación numérica por restaurante: el TOC desktop lista «1 9.6 Anajak Thai THAI SHERMAN OAKS», «2 9.5 Holbox», «3 9.4 Bistro Na's», «4 9.4 Somni», «5 9.4 Dunsmoor» — un índice numerado de 25 tarjetas de 218×365 en grid con gap 24px 88px, bloque de 1200×2639 colocado en y=1802 ANTES del cuerpo. Schema: 2 bloques JSON-LD (Article + ItemList) de 33,239 bytes en la guía, pero el índice /los-angeles/reviews tiene CERO JSON-LD (blocks: 0). Tarjetas de entrada de 1200px con gap 40px e imágenes 576×432 exactamente 4:3 servidas por Cloudinary con c_fill,ar_4:3 y lazy. En el índice de reviews las filas son idénticas: 894×259, gap 0, imagen 292×219 (1.33), y cada fila comprime score + nombre + cocina + barrio + una línea + autor + fecha («7.9 Sonmari SUSHI KOREAN SILVER LAKE … NICOLAS ZHOU JULY 24, 2026»). El H1 del índice es «TOP RATED SPOTS» a 24px — o sea, el H1 es una etiqueta de sección, no el título de la página. Peor usabilidad táctil de todo el set: 701 de 927 targets por debajo de 44px, mediana 20px en la guía (337/354 y mediana 20px en reviews). Nav sticky de 116px desktop / 56px móvil (z 1000) con NEIGHBORHOODS / PERFECT FOR / CUISINES / GUIDES / REVIEWS; en móvil el filtro es una barra fija abajo de 390×48 con un solo botón «FILTER». Tipografía National 2: h1 Condensed 64px/700 desktop (40px móvil), h3 Narrow 24px, cuerpo National 2 15px/24px en los 40 párrafos. 25 enlaces a Google Maps y ningún mapa embebido. Peso: 223 requests / 3.62 MB, con una sola imagen de héroe de 1.90 MB; domcontentloaded 27.48s en desktop. Paginación: la guía usa «SEE MORE», el índice usa «LOAD MORE».

El índice numerado con puntuación, antes del cuerpo
El índice numerado con puntuación, antes del cuerpo
En teléfono: la barra fija de abajo con un solo botón
En teléfono: la barra fija de abajo con un solo botón
El índice de reviews: filas de 894×259
El índice de reviews: filas de 894×259
Dónde está la evidencia cruda

Datos: /tmp/eater-work/results.json (entradas inf-la-guide-desk/mob y inf-la-reviews-desk/mob), probe2.json (guide_desk_toc con las 25 puntuaciones, guide_desk_navbar, guide_desk_cardImgs, guide_mob_toggleBar, reviews_mob_explore, reviews_mob_sections), probe3.json (guide_desk_gridMetrics: nInner 25, wrapDisplay grid, gap «24px 88px»; guide_desk_sticky_at3000; guide_mob_sticky_at2200), probe4.json (mob_stickyStack, mob_filterPanel). Scripts SOLO en /tmp: /tmp/eater-work/measure.py, probe2.py, probe3.py, probe4.py. Capturas: 30 PNG en /tmp/eater-shots (inf-la-guide y inf-la-reviews × desk/mob × fold, list, scroll1400, bottom, FULL, más X-guide-desk-TOC, X-guide-mob-before-filter, X-reviews-mob-EXPLORE, Y-guide-desk-CUISINES, Y-guide-desk-FILTER-open, Y-guide-desk-sticky3000, Y-guide-mob-sticky2200, Z-guide-mob-FILTER-open, Z-guide-mob-stickystack) + 7 PNG sueltos en /tmp del scrape de junio. HTML crudo 2.45 MB: /tmp/eater-work/inf-la.html. Markdown: /tmp/infatuation-md.txt (80,070 chars) y /tmp/infatuation-out.json.

Ubicación: /tmp/eater-work/ + /tmp/eater-shots/ (inf-*, X-guide*, Y-guide*, Z-guide*, X-reviews*) + /tmp/infatuation-*.json + /tmp/infatuation-md.txt | espejo parcial (solo JSON/TXT): /config/workspace/whats in cabo /storm-reports/rescate-tmp-2026-07-28/infatuation-*.json, infatuation-md.txt, eater-work/

Teardown 4 · 2026-07-27

Teardown Time Out — «42 Best Restaurants in Los Angeles»

¿Qué pasa cuando un listado editorial se optimiza para publicidad en vez de para navegación?

Es el caso de qué NO hacer, y los números lo prueban. Filtros detectados: CERO, tanto en desktop como en móvil (filters: [] en ambos viewports) — 42 restaurantes en una sola tira sin ninguna forma de filtrar. 20 bloques de anuncio inline (_adsInline_1t43t_10) de 727×148 en desktop y 358×372 en móvil, y el PRIMER elemento sobre el fold es un contenedor de anuncio de 138px (124px móvil) colocado ARRIBA del header. Es la página más alta del set: 79,896px desktop y 112,299px móvil tras el scroll (vs 24,628 de Infatuation y 7,908 de Copenhagen). Red: 3,087 requests en desktop con una suma de content-length de 418 MB, dominada por 15 respuestas de tipo media (~377 MB); en móvil 3,548 requests / 45.9 MB con 1,216 imágenes y 783 scripts. Schema: solo VideoObject (679 B) + Article (1,118 B) — una lista de 42 ítems SIN ItemList. 6 capas sticky/fixed en desktop y 11 en móvil, incluidos rieles de anuncio sticky de 300×250, 728×90 y 300×600. Tipografía Franklin Gothic: h1 48px/800, h2 31px/800, h3 25px, cuerpo y enlaces 16px/24px. Tap targets: 164/294 ≥44px en desktop (56%), 169/286 en móvil (59%) — irónicamente mejor que Michelin e Infatuation. Detalle de SEO editorial: el mes va en el <title> («42 Best Restaurants in Los Angeles - June 2026»).

La portada del listado
La portada del listado
Las tarjetas del listado
Las tarjetas del listado
Dónde está la evidencia cruda

Datos: /tmp/rest-research/data/timeout-la.json (secciones, tipografía, sticky, JSON-LD, motion, red por tipo, tap targets) y timeout-la-deep.json (cardgroups con los 20 _adsInline_, filters vacío, fold, maps, paginación). Scripts SOLO en /tmp: /tmp/rest-research/measure.py y deep.py (invocados con NAME=timeout-la). Capturas: 8 PNG en /tmp/michelin-shots/timeout-la-* (desktop y móvil × top, fold, scroll1200, full; el full desktop pesa 30.9 MB y el full móvil 38.1 MB, lo que por sí solo confirma la altura de la página).

Ubicación: /tmp/rest-research/data/timeout-la.json y timeout-la-deep.json + /tmp/michelin-shots/timeout-la-*.png | espejo parcial (solo JSON): /config/workspace/whats in cabo /storm-reports/rescate-tmp-2026-07-28/rest-research/data/

Teardown 5 · 2026-07-27

Teardown Visit Copenhagen — hub editorial de restaurantes de un DMO

¿Cómo resuelve un DMO oficial la página «dónde comer» sin convertirla en un directorio?

Visit Copenhagen no publica un listado: publica un hub editorial que enruta. Solo 30 enlaces en <main> en toda la página, y una sola fila con tarjetas reales (5 tarjetas de 205×210, imagen 205×154 ratio 1.33 lazy) bajo el H2 «Still hungry?». Todo lo demás son 12 bloques paragraph-item encabezados por H2 conversacionales: «The big question: Where to eat and drink», «Copenhagen's Michelin Magic» (con el gancho «Get familiar with Copenhagen's 15 Michelin…»), «Eating out with kids or a special someone?», «Taste the whole world or go local», «A captivating restaurant scene». Es la página MÁS LIGERA de todo el set: 121 requests / 2.66 MB en desktop y 120 / 2.85 MB en móvil (vs 3.43 MB de Michelin, 3.01 MB de Eater y los 418 MB de header-sum de Time Out). Altura contenida: 7,908px desktop / 9,431px móvil. Héroe: 899px = 100% del viewport en desktop (imagen 1440×810, ratio 1.78) y 622px = 74% del viewport en móvil (imagen 390×520, ratio 0.75 — recorte vertical distinto, no la misma imagen escalada). Schema pobre: 1 solo bloque JSON-LD de tipo WebPage (887 bytes), sin ItemList ni Restaurant. 4 carruseles Swiper con overflow hidden y scrollWidth > clientWidth. Tipografía Montserrat: h1 48px/800 en desktop y 32px en móvil, h2 36px/800. Tap targets 40/76 ≥44px en desktop (53%) y 44/97 en móvil (45%). Header sticky de 66px desktop / 56px móvil (z 50). Cero librerías de motion. Nota operativa: el banner de cookies exigió clic real ("button[aria-label*='Accept']") en ambos viewports para poder medir.

El hub editorial del DMO danés
El hub editorial del DMO danés
Su versión de teléfono
Su versión de teléfono
Dónde está la evidencia cruda

Datos: /tmp/rest-research/data/copenhagen.json (medición base), copenhagen-deep.json (cardgroups, filtros, fold, tap), copenhagen-rows.json (las 12 filas con y, altura, nCards, overflow y scrollable, más el héroe con pctVh), copenhagen-secs.json (esqueleto de paragraph-items con sus H2). Scripts SOLO en /tmp: /tmp/rest-research/measure.py, deep.py, cph.py (este último es el que midió filas, héroe y taps de <main>), sections.py. Capturas: 8 PNG en /tmp/michelin-shots/copenhagen-* (desktop y móvil × top, fold, scroll1200, full).

Ubicación: /tmp/rest-research/data/copenhagen*.json + /tmp/michelin-shots/copenhagen-*.png | espejo parcial (solo JSON): /config/workspace/whats in cabo /storm-reports/rescate-tmp-2026-07-28/rest-research/data/

Teardown 6 · 2026-06-01

Análisis de brecha de contenido — Visit Los Cabos (visitloscabos.travel, EN)

¿Qué restaurantes tiene el DMO oficial de Los Cabos que WIC todavía no tiene?

Se rastrearon 3,005 enlaces de visitloscabos.travel, de los cuales 1,941 son URLs /listing/, y se consolidaron 317 filas de restaurantes candidatos. Contra el inventario de WIC de 50 restaurantes (wic-restaurants.csv), el cruce dio: 85 coincidencias y 212 de brecha con matching laxo; con matching ESTRICTO (≥2 tokens de marca compartidos, o contención de substring ≥6 chars, tras quitar 26 stopwords tipo «restaurant/cabo/san/jose/the») la brecha sube a 244. Se excluyeron 17 entradas por no ser restaurantes (resorts, beach clubs, tours: Hacienda del Mar, Playa Grande, Cactus Tours, El Ganzo Beach Club, Skypool Day Club…). El ranking por score de prioridad SEO pone arriba (estricto): Alma at Esperanza Auberge Collection (18), Nobu Café (18), Nobu Restaurant (18), Baja Brewing Co SJD (11), Baja Brewing Company (11), LíMo Heritage Kitchen at Suelo Sur (11), Estiatorio Milos (10), Manta at The Cape (10), Acre (8), El Squid Roe (8), Sage Limo (8), Talavera (8). El DMO tiene 15 URLs de categoría de restaurantes, incluidas dos dedicadas a Michelin: /restaurants/michelin-guide/ y /restaurants/michelin-guide/michelin-restaurants/. En la auditoría posterior del 8 de junio se capturaron 8 scrapes de categoría (american, asian, cabo-san-lucas, east-cape, fine-dining, mediterranean, san-jose-del-cabo, the-corridor), un shortlist de 23 URLs /listing/ y el inventario propio de WIC de 79 posts con estado publish/draft.

Dónde está la evidencia cruda

Cruces: /tmp/vlc-cross.js (laxo) y /tmp/vlc-cross2.js (estricto, con la función strictMatch y el scoring TIER_S/TIER_A/TIER_B + FAMOUS). Salidas: /tmp/vlc-all-restaurants.tsv (317 líneas), vlc-matched.tsv (85), vlc-gap.tsv (212), vlc-gap-strict.tsv (244), vlc-nonrest.tsv (17). Fuentes crudas: vlc-map.json (3,005 enlaces), vlc-listings.txt, vlc-restaurants-main.json, vlc-categories.txt (15 categorías), vlc-actions.json, vlc-rest-raw.html (967 KB), vlc-html.html. Auditoría 8-jun: /tmp/vlc-audit/ (vlc-main.json 201 KB, 8 vlc-cat-*.json, 3 vlc-extra-*.json, vlc-all-listings.txt, wic-slugs.txt, wic-publish.json, whatsincabo-inventory.csv 79 filas). ATENCIÓN: los dos insumos del cruce, /tmp/wic-restaurants.csv (50 filas) y /tmp/vlc-audit/whatsincabo-inventory.csv, NO están espejados — sin ellos el cruce no se puede reproducir.

Ubicación: /tmp/vlc-*.tsv, /tmp/vlc-cross*.js, /tmp/vlc-map.json, /tmp/vlc-listings.txt, /tmp/vlc-audit/ + /tmp/wic-restaurants.csv | espejo parcial: /config/workspace/whats in cabo /storm-reports/rescate-tmp-2026-07-28/vlc-*.tsv, vlc-cross*.js, vlc-audit/ (SIN whatsincabo-inventory.csv ni wic-restaurants.csv)

Teardown 7 · 2026-07-27

Teardown de diseño — Visita Los Cabos (visitaloscabos.travel, sitio ES del DMO)

¿Cómo se ve y qué tan bien construido está el sitio en español del DMO, página por página?

Se midieron 10 páginas en desktop y móvil (home, /restaurantes/, /restaurantes/mariscos/, /que-hacer/, /que-hacer/actividades-y-tours/, /que-hacer/playas/, /lugares-para-visitar/, /hospedaje/, /eventos/, /planea/). Los huecos de SEO son grandes y verificados: /restaurantes/ tiene JSON-LD = [] (cero schema), canonical = null (¡sin canonical!), y DOS H1 en la misma página («La Gastronomía en Los Cabos es única.» y «Restaurantes Recomendados»); sí declara hreflang es/en. Título «Mejores restaurantes en Los Cabos: playa, cocina local y más». El bug de rendimiento más caro está en el héroe: sirve un vídeo Vimeo de 1080p con object-fit: contain y transform matrix(1,0,0,1,-960,-540), es decir un vídeo de 1920×1080 metido a la fuerza en un héroe móvil de 390px de ancho y 499px de alto (medido en /restaurantes/, /hospedaje/ y /que-hacer/, este último con un vídeo de 2560×1440). Layout: grid de 12 tarjetas en 3 columnas de 341px con gap 20px, tarjeta 341×418 (ar 0.816), que en móvil colapsa a lista de 1 columna 350×194; carrusel Glide de 9 slides 253×401 desktop / 269×415 móvil con overflow hidden. Imágenes mal optimizadas: /restaurantes/ carga 73 imágenes (52 lazy, 34 <picture>) pero solo 14 con srcset; /mariscos/ carga 26 (24 lazy) con CERO srcset. Cero librerías de motion en las 10 páginas (gsap, aos, swiper, slick, owl, lenis, three = false), solo 97–182 transiciones CSS. Tipografía Romelio: h1 50px/55px desktop y 30px/33px móvil. Es Simpleview CMS (clases contentRender_NN_type_widget). Trae mapas, clima, favoritos y tripbuilder activos. Sitemap: 634 URLs, 26 con «restaurante».

La home del DMO en español
La home del DMO en español
Su página de lugares
Su página de lugares
Dónde está la evidencia cruda

Datos: 10 JSON en /tmp/vlc-shots/ (restaurantes.json, mariscos.json, home.json, que-hacer.json, actividades.json, playas.json, lugares.json, hospedaje.json, eventos.json, planea.json), cada uno con sections, videos, cardGroups, typo, filters, feats, motion, requests para desktop y móvil. Logs de sondeo SOLO en /tmp: /tmp/vlc-shots/probe2.log (métricas de héroe, child_widths, header, section_pad, glide/reveal; confirma gmaps=true, leaflet/mapbox false, 0 canvases) y probe3.log (sticky, hamburguesa y los 7 héroes móviles con sus vídeos Vimeo). Capturas: 48 PNG en /tmp/vlc-shots/ (desktop-full, desktop-hero, mobile-full, mobile-hero por página + probe-mapa, probe-quickview, probe-tripbuilder, probe2-mapa, probe2-menu, probe3-*) y 38 PNG de recortes en /tmp/vlc-shots/crops/. Sitemap: /tmp/vlc-sitemap.xml (93 KB, 634 <loc>).

Ubicación: /tmp/vlc-shots/ (10 JSON + 48 PNG + crops/ 38 PNG + probe2.log + probe3.log) + /tmp/vlc-sitemap.xml | espejo parcial (SOLO los 10 JSON, sin PNG ni logs ni sitemap): /config/workspace/whats in cabo /storm-reports/rescate-tmp-2026-07-28/vlc-shots/

Teardown 8 · 2026-06-15

Iteración de diseño de la propia guía /best-restaurants-in-cabo/ de WIC

¿Cómo quedó la guía de mejores restaurantes de WIC tras probar layout bento y variantes?

No es un sitio de referencia sino la aplicación de la investigación: 14 corridas de captura vía Firecrawl sobre whatsincabo.com/best-restaurants-in-cabo/ probando variantes por querystring — ?v=bennoshot, ?v=bentoshot, ?v=bento2, ?v=fix3, ?v=fullfix, ?v=topdetail — más capturas de fichas individuales (/restaurant/outpost-cabo/ tres veces, /restaurant/la-lupita-tacos-mezcal-cabo/). Todas devolvieron success=true con título «Best Restaurants in Cabo San Lucas & Los Cabos (2026)». El llms.txt borrador que acompaña la iteración describe la guía como «our editorial team's 12 best restaurants in Cabo, from MICHELIN Guide fine dining to casual taco favorites near El Médano, with browse-by-cuisine and area» y lista 15 restaurantes destacados con su gancho (Cocina de Autor, Tenoch by Paradero, Nobu Los Cabos, Estiatorio Milos, Cayao, Ilios, Omakai, Sunset Monalisa, Nicksan Cabo, Benno, Outpost, La Lupita, Chambao, Rosa Negra, Cabo Wabo). Los enlaces internos capturados suman 24: 4 de región, 12 de restaurante y 8 de restaurant-type (baja-mexican, contemporary-mexican, farm-to-table, italian, japanese-sushi, mediterranean, seafood, steakhouse).

Dónde está la evidencia cruda

18 JSON de Firecrawl en /tmp/best-restaurants/ (bn, bz, box, box2, box3, current, ff, final, fix, full, rd, top, topdetail, withbento), links.txt (24 URLs), links2.txt, llms.txt (6.4 KB), shot.txt. Evidencia visual SOLO en /tmp: 17 PNG (redesign.png, withbento.png, final.png, fullfix.png, topdetail.png, benno-card.png, box/box2/box3.png, top.png, current.png, preview.png…) + 6 JPG de candidatos (cand-cayao, cand-milos, cand-nobu, benno-p6/p7/p8). HTML guardados: bento.html, redesign.html, livepage.html, livepage2.html, live.html, content.html.

Ubicación: /tmp/best-restaurants/ | espejo parcial (solo los 18 JSON + links.txt, links2.txt, llms.txt, shot.txt; SIN los 23 PNG/JPG ni los HTML): /config/workspace/whats in cabo /storm-reports/rescate-tmp-2026-07-28/best-restaurants/

Qué se hizo con esto. De aquí salieron las decisiones del directorio de whatsincabo.com/restaurants/: los chips de filtro a 44 px reales —porque ninguno de los cinco referentes llega a ese mínimo táctil—, la hoja de filtros inferior con contador vivo tomada de The Infatuation, y la decisión de mantener las 100 fichas en el HTML en vez de paginar. También confirmó dónde les ganamos: Michelin publica cero datos estructurados en su listado y nosotros emitimos tres bloques.

Vuelve al Centro de investigaciones.