{"id":16452,"date":"2026-09-04T07:03:37","date_gmt":"2026-09-04T07:03:37","guid":{"rendered":"https:\/\/rb2f.com\/blogs\/?page_id=16452"},"modified":"2026-09-04T13:15:32","modified_gmt":"2026-09-04T13:15:32","slug":"royal-oak","status":"publish","type":"page","link":"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/","title":{"rendered":"Royal Oak"},"content":{"rendered":"\n<style>\n\/* ==========================================================================\n   RB2F \u2014 The Whole Truth Case Study\n   Scoped build: every class\/id\/custom-property is prefixed \"rb2f-\" and all\n   selectors are namespaced under .rb2f-case-study so nothing here can\n   collide with the host page's own CSS.\n   ========================================================================== *\/\n\n.rb2f-case-study,\n.rb2f-case-study *,\n.rb2f-case-study *::before,\n.rb2f-case-study *::after {\n  box-sizing: border-box;\n}\n\n.rb2f-case-study {\n  \/* ---------------- Design tokens (scoped, not on :root) ---------------- *\/\n  --rb2f-background: #faf6ed;\n  --rb2f-foreground: #000000;\n  --rb2f-primary: #ed3d63;\n  --rb2f-primary-foreground: #faf6ed;\n  --rb2f-secondary: #efe7d3;\n  --rb2f-accent: #ed3d63;\n  --rb2f-accent-foreground: #241804;\n  --rb2f-muted-foreground: #6e6656;\n  --rb2f-card: #ffffff;\n  --rb2f-card-foreground: #1e2a1f;\n  --rb2f-border: #e3d9bf;\n  --rb2f-max-w: 1280px;\n\n  margin: 0;\n  background: var(--rb2f-background);\n  color: var(--rb2f-foreground);\n\n  -webkit-font-smoothing: antialiased;\n  text-rendering: optimizeLegibility;\n  line-height: 1.5;\n}\n\n:where(.rb2f-case-study) img { display: block; max-width: 100%; }\n:where(.rb2f-case-study) a { color: inherit; text-decoration: none; }\n:where(.rb2f-case-study) h1, :where(.rb2f-case-study) h2, :where(.rb2f-case-study) h3, :where(.rb2f-case-study) p { margin: 0; }\n:where(.rb2f-case-study) ul { margin: 0; padding: 0; }\n:where(.rb2f-case-study) button { font: inherit; }\n\/* :where() keeps this scoped to the widget without adding specificity, so\n   any single-class utility below (e.g. .rb2f-btn-accent, .rb2f-link-underline)\n   always wins over this reset \u2014 no more fighting the cascade. *\/\n\n.rb2f-container {\n  width: 100%;\n  max-width: var(--rb2f-max-w);\n  margin-inline: auto;\n  padding-inline: 1.5rem;\n}\n@media (min-width: 1024px) {\n  .rb2f-container { padding-inline: 2rem; }\n}\n\n.rb2f-icon { width: 1rem; height: 1rem; flex-shrink: 0; }\n\n\/* ---------------- Section label (eyebrow) ---------------- *\/\n.rb2f-eyebrow {\n  display: inline-block;\n  margin-bottom: 1.5rem;\n  font-size: 0.875rem;\n  font-weight: 500;\n  letter-spacing: 0.08em;\n  text-transform: uppercase;\n  color: var(--rb2f-accent);\n}\n\n\/* ---------------- Buttons ---------------- *\/\n.rb2f-btn {\n  display: inline-flex;\n  align-items: center;\n  gap: 0.5rem;\n  border-radius: 999px;\n  font-weight: 600;\n  transition: opacity 0.2s ease;\n  white-space: nowrap;\n}\n.rb2f-btn:hover { opacity: 0.9; }\n\n.rb2f-btn-primary {\n  background: var(--rb2f-primary);\n  color: var(--rb2f-primary-foreground);\n  padding: 0.625rem 1.25rem;\n  font-size: 0.9rem;\n}\n.rb2f-btn-accent {\n  background: white;\n  color: var(--rb2f-accent-foreground);\n  padding: 1rem 2rem;\n  font-size: 1rem;\n}\n\n\/* Wrap any standalone CTA button in this (on a .rb2f-container) to center\n   it \u2014 margin:auto alone won't center an inline-flex button like .rb2f-btn,\n   it needs an ancestor with text-align:center. *\/\n.rb2f-cta-row { text-align: center; margin-top: 2.5rem; }\n\n\/* ---------------- Hero ---------------- *\/\n.rb2f-hero {\n  position: relative;\n  overflow: hidden;\n  background: color-mix(in srgb, var(--rb2f-secondary) 55%, transparent);\n  padding: 3rem 0 5rem;\n}\n@media (min-width: 1024px) {\n  .rb2f-hero { padding: 8rem 0 4rem; }\n}\n\n.rb2f-hero-top-row {\n  display: flex;\n  flex-wrap: wrap;\n  align-items: center;\n  justify-content: space-between;\n  gap: 1rem;\n  margin-bottom: 2.5rem;\n}\n\n.rb2f-hero-grid {\n  display: grid;\n  gap: 2.5rem;\n}\n@media (min-width: 1024px) {\n  .rb2f-hero-grid {\n    grid-template-columns: 1.15fr 0.85fr;\n    align-items: center;\n    gap: 3.5rem;\n  }\n}\n\nh1.rb2f-hero-title {\n  font-size: 2.75rem;\n  line-height: 1.08;\n  letter-spacing: -0.01em;\n  text-wrap: balance;\n}\n@media (min-width: 640px) { h1.rb2f-hero-title { font-size: 3.5rem; } }\n@media (min-width: 1024px) { h1.rb2f-hero-title { font-size: 4.25rem; } }\n\n.rb2f-hero-title .rb2f-accent { color: var(--rb2f-primary); font-style: italic; }\n\n.rb2f-hero-copy {\n  margin-top: 2rem;\n  max-width: 56ch;\n  font-size: 1.125rem;\n  line-height: 1.7;\n  color: var(--rb2f-muted-foreground);\n}\n.rb2f-hero-copy strong { font-weight: 600; color: var(--rb2f-foreground); }\n\n.rb2f-hero-stats {\n  margin-top: 2.5rem;\n  display: grid;\n  grid-template-columns: repeat(2, 1fr);\n  gap: 1rem;\n}\n@media (min-width: 640px) { .rb2f-hero-stats { grid-template-columns: repeat(3, 1fr); } }\n\n.rb2f-stat-chip {\n  border-radius: 1rem;\n  background: var(--rb2f-card);\n  padding: 1.25rem;\n  box-shadow: 0 0 0 1px var(--rb2f-border) inset;\n}\n.rb2f-stat-chip .rb2f-num {\n  font-size: 2.25rem;\n  font-weight: 500;\n  letter-spacing: -0.02em;\n  color: var(--rb2f-primary);\n}\n.rb2f-stat-chip.rb2f-accent .rb2f-num { color: var(--rb2f-accent); }\n.rb2f-stat-chip.rb2f-plain .rb2f-num { color: var(--rb2f-foreground); }\n.rb2f-stat-chip .rb2f-cap {\n  margin-top: 0.375rem;\n  font-size: 0.875rem;\n  line-height: 1.35;\n  color: var(--rb2f-muted-foreground);\n}\n\n\/* Hero image + floating badge *\/\n.rb2f-hero-media { position: relative; }\n.rb2f-photo {\n  display: block;\n  width: 100%;\n\n  object-fit: cover;\n  background: var(--rb2f-secondary);\n}\n.rb2f-photo-hero {\n  border-radius: 2rem;\n  box-shadow: 0 25px 50px -12px rgba(30, 42, 31, 0.25), 0 0 0 1px var(--rb2f-border) inset;\n}\n.rb2f-photo-rounded {\n  border-radius: 1.5rem;\n  box-shadow: 0 0 0 1px var(--rb2f-border) inset;\n}\n.rb2f-photo-rounded-dark {\n  border-radius: 1.5rem;\n  box-shadow: 0 0 0 1px rgba(250, 246, 237, 0.12) inset;\n}\n.rb2f-aspect-hero { aspect-ratio: 4 \/ 5; }\n@media (min-width: 640px) { .rb2f-aspect-hero { aspect-ratio: 3 \/ 2; } }\n@media (min-width: 1024px) { .rb2f-aspect-hero { aspect-ratio: 4 \/ 5; } }\n.rb2f-aspect-execution { aspect-ratio: 4 \/ 5; }\n.rb2f-aspect-wide { aspect-ratio: 21 \/ 9; }\n\n.rb2f-floating-badge {\n  position: absolute;\n  right: -0.5rem;\n  bottom: 2rem;\n  max-width: 220px;\n  border-radius: 1rem;\n  background: var(--rb2f-card);\n  padding: 1.25rem;\n  box-shadow: 0 20px 25px -5px rgba(30, 42, 31, 0.2), 0 0 0 1px var(--rb2f-border) inset;\n}\n@media (min-width: 640px) { .rb2f-floating-badge { right: 1.5rem; } }\n@media (min-width: 1024px) { .rb2f-floating-badge { right: -1.5rem; } }\n.rb2f-floating-badge .rb2f-label {\n  font-size: 0.8rem;\n  font-weight: 500;\n  letter-spacing: 0.03em;\n  text-transform: uppercase;\n  color: var(--rb2f-muted-foreground);\n}\n.rb2f-floating-badge .rb2f-client-name {\n  margin-top: 0.25rem;\n  font-size: 1.375rem;\n}\n.rb2f-floating-badge .rb2f-client-desc {\n  margin-top: 0.25rem;\n  font-size: 0.875rem;\n  color: var(--rb2f-muted-foreground);\n}\n\n\/* ---------------- Generic section spacing ---------------- *\/\n.rb2f-section { padding: 3rem 0; }\n@media (min-width: 1024px) { .rb2f-section { padding: 3rem 0; } }\n.rb2f-section-tight { padding: 3rem 0; }\n@media (min-width: 1024px) { .rb2f-section-tight { padding: 3rem 0; } }\n\n.rb2f-section-band {\n  border-top: 1px solid var(--rb2f-border);\n  border-bottom: 1px solid var(--rb2f-border);\n  background: color-mix(in srgb, var(--rb2f-secondary) 55%, transparent);\n}\n\nh2.rb2f-section-title {\n  font-size: 2.25rem;\n  line-height: 1.15;\n  text-wrap: balance;\n}\n@media (min-width: 640px) { h2.rb2f-section-title { font-size: 3rem; } }\n\n.rb2f-section-body {\n  margin-top: 1.25rem;\n  font-size: 1.125rem;\n  line-height: 1.7;\n  color: var(--rb2f-muted-foreground);\n}\n\n.rb2f-link-underline {\n  color: var(--rb2f-primary);\n  font-weight: 500;\n  text-underline-offset: 4px;\n  text-decoration: underline;\n}\n.rb2f-link-underline.rb2f-accent { color: var(--rb2f-accent); font-weight: 400; }\n\n\/* ---------------- Quick summary ---------------- *\/\n.rb2f-summary-grid {\n  display: grid;\n  gap: 1.5rem;\n}\n@media (min-width: 768px) { .rb2f-summary-grid { grid-template-columns: repeat(2, 1fr); } }\n\n.rb2f-summary-card {\n  display: flex;\n  align-items: flex-start;\n  gap: 1rem;\n  height: 100%;\n  border-radius: 1rem;\n  background: var(--rb2f-card);\n  padding: 1.5rem;\n  box-shadow: 0 0 0 1px var(--rb2f-border) inset;\n}\n.rb2f-summary-card .rb2f-icon { margin-top: 0.2rem; color: var(--rb2f-primary); width: 1.25rem; height: 1.25rem; }\n.rb2f-summary-card p { line-height: 1.7; color: var(--rb2f-muted-foreground); }\n\n\/* ---------------- Challenge (two column) ---------------- *\/\n.rb2f-two-col {\n  display: grid;\n  gap: 3rem;\n}\n@media (min-width: 1024px) {\n  .rb2f-two-col { grid-template-columns: repeat(2, 1fr); align-items: start; }\n}\n.rb2f-two-col.rb2f-center { align-items: center; }\n.rb2f-two-col.rb2f-reverse-media { grid-template-columns: 1fr; }\n@media (min-width: 1024px) {\n  .rb2f-two-col.rb2f-reverse-media { grid-template-columns: repeat(2, 1fr); }\n}\n\n.rb2f-prose-lg { font-size: 1.125rem; line-height: 1.7; color: var(--rb2f-muted-foreground); }\n.rb2f-prose-lg > * + * { margin-top: 1.5rem; }\n\n\/* ---------------- Audit grid ---------------- *\/\n.rb2f-audit-grid {\n  display: grid;\n  gap: 1px;\n  overflow: hidden;\n  border-radius: 1.5rem;\n  background: var(--rb2f-border);\n  box-shadow: 0 0 0 1px var(--rb2f-border);\n}\n@media (min-width: 640px) { .rb2f-audit-grid { grid-template-columns: repeat(2, 1fr); } }\n@media (min-width: 1024px) { .rb2f-audit-grid { grid-template-columns: repeat(3, 1fr); } }\n\n.rb2f-audit-cell {\n  background: var(--rb2f-card);\n  padding: 2rem;\n}\n.rb2f-audit-cell .rb2f-index {\n  font-style: italic;\n  font-size: 1.75rem;\n  color: var(--rb2f-accent);\n}\n.rb2f-audit-cell h3 { margin-top: 1rem; font-weight: 600; }\n.rb2f-audit-cell p { margin-top: 0.5rem; font-size: 0.9rem; line-height: 1.6; color: var(--rb2f-muted-foreground); }\n\n.rb2f-audit-cell.rb2f-cta {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  background: color-mix(in srgb, var(--rb2f-secondary) 70%, var(--rb2f-card));\n  padding: 2rem;\n  text-align: center;\n}\n.rb2f-audit-cell.rb2f-cta a { font-size: 0.9rem; }\n\n\/* ---------------- Dark sections (execution \/ footer) ---------------- *\/\n.rb2f-section-dark {\n  background: var(--rb2f-primary);\n  color: var(--rb2f-background);\n}\n.rb2f-section-dark .rb2f-muted { color: color-mix(in srgb, var(--rb2f-background) 70%, transparent); }\n.rb2f-section-dark h3 { font-size: 1.125rem; font-weight: 600; }\n.rb2f-execution-steps { margin-top: 2.5rem; display: flex; flex-direction: column; gap: 2.5rem; }\n.rb2f-execution-steps h3 { font-size: 1.125rem; font-weight: 600; }\n.rb2f-execution-steps p { margin-top: 0.75rem; max-width: 46ch; line-height: 1.7; }\n.rb2f-execution-steps a { text-decoration: underline; text-underline-offset: 4px; color: var(--rb2f-accent); }\n\n\/* ---------------- Process tabs (Challenge \/ Audit \/ Execution) ---------------- *\/\n.rb2f-tabs-wrap {\n  display: grid;\n  gap: 1.5rem;\n}\n@media (min-width: 1024px) {\n  .rb2f-tabs-wrap { grid-template-columns: 272px 1fr; gap: 2.5rem; align-items: start; }\n}\n\n\/* Mobile \/ tablet: sticky row of 3 equal-width tabs.\n   --rb2f-sticky-offset defaults to 0 (sticks to the very top of the\n   viewport). If your WordPress theme has its own sticky\/fixed header, it\n   can overlap this and swallow clicks \u2014 override the offset from outside\n   this file, e.g.:\n     .rb2f-case-study { --rb2f-sticky-offset: 72px; --rb2f-sticky-offset-desktop: 72px; }\n   (use your theme's actual header height in px). *\/\n.rb2f-tab-list {\n  position: sticky;\n  top: var(--rb2f-sticky-offset, 0);\n  z-index: 20;\n  display: grid;\n  grid-template-columns: repeat(3, 1fr);\n  gap: 0.5rem;\n  background: var(--rb2f-background);\n  padding: 0.75rem 0 1rem;\n  border-bottom: 1px solid var(--rb2f-border);\n}\n\n\/* Desktop: vertical sticky sidebar, one column *\/\n@media (min-width: 1024px) {\n  .rb2f-tab-list {\n    grid-template-columns: 1fr;\n    gap: 0.375rem;\n    top: var(--rb2f-sticky-offset-desktop, 1.5rem);\n    padding: 0;\n    background: transparent;\n    border-bottom: none;\n  }\n}\n\n.rb2f-tab-indicator {\n  display: none;\n}\n@media (min-width: 1024px) {\n  .rb2f-tab-indicator {\n    display: block;\n    position: absolute;\n    left: 0;\n    top: 0;\n    width: 3px;\n    border-radius: 999px;\n    background: var(--rb2f-primary);\n    opacity: 0;\n    transition: transform 0.3s cubic-bezier(0.65, 0, 0.35, 1), height 0.3s ease, opacity 0.2s ease;\n  }\n}\n\n.rb2f-tab-btn {\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  text-align: center;\n  gap: 0.25rem;\n  min-width: 0;\n  border: none;\n  border-radius: 0.875rem;\n  background: transparent;\n  color: var(--rb2f-muted-foreground);\n  padding: 0.625rem 0.375rem;\n  cursor: pointer;\n  transition: background 0.25s ease, color 0.25s ease;\n}\n\n\/* Desktop: switch to a horizontal row per tab, left-aligned *\/\n@media (min-width: 1024px) {\n  .rb2f-tab-btn {\n    flex-direction: row;\n    align-items: center;\n    text-align: left;\n    gap: 0.875rem;\n    width: 100%;\n    padding: 0.875rem 1rem 0.875rem 1.25rem;\n  }\n}\n\n.rb2f-tab-btn .rb2f-tab-index {\n  font-style: italic;\n  font-size: 1.125rem;\n  color: var(--rb2f-accent);\n  flex-shrink: 0;\n}\n@media (min-width: 1024px) { .rb2f-tab-btn .rb2f-tab-index { font-size: 1.375rem; } }\n\n.rb2f-tab-btn .rb2f-tab-text { display: flex; flex-direction: column; align-items: center; min-width: 0; }\n@media (min-width: 1024px) { .rb2f-tab-btn .rb2f-tab-text { align-items: flex-start; } }\n\n.rb2f-tab-btn .rb2f-tab-label {\n  font-weight: 600;\n  font-size: 0.8rem;\n  line-height: 1.25;\n  color: var(--rb2f-foreground);\n}\n@media (min-width: 1024px) { .rb2f-tab-btn .rb2f-tab-label { font-size: 1rem; white-space: nowrap; } }\n\n\/* Subtitle only makes sense with room to breathe \u2014 desktop sidebar only *\/\n.rb2f-tab-btn .rb2f-tab-sub { display: none; }\n@media (min-width: 1024px) {\n  .rb2f-tab-btn .rb2f-tab-sub {\n    display: block;\n    margin-top: 0.125rem;\n    font-size: 0.8rem;\n    color: var(--rb2f-muted-foreground);\n    white-space: nowrap;\n  }\n}\n\n.rb2f-tab-btn .rb2f-tab-arrow {\n  display: none;\n}\n@media (min-width: 1024px) {\n  .rb2f-tab-btn .rb2f-tab-arrow {\n    display: block;\n    margin-left: auto;\n    flex-shrink: 0;\n    color: var(--rb2f-muted-foreground);\n    opacity: 0;\n    transform: translateX(-4px);\n    transition: opacity 0.25s ease, transform 0.25s ease;\n  }\n}\n\n.rb2f-tab-btn[aria-selected=\"true\"] {\n  background: var(--rb2f-card);\n  color: var(--rb2f-foreground);\n  box-shadow: 0 0 0 1px var(--rb2f-border) inset;\n}\n.rb2f-tab-btn[aria-selected=\"true\"] .rb2f-tab-arrow {\n  opacity: 1;\n  transform: translateX(0);\n  color: var(--rb2f-primary);\n}\n.rb2f-tab-btn:hover { background: color-mix(in srgb, var(--rb2f-card) 60%, transparent); }\n\n.rb2f-tab-panels { position: relative; }\n.rb2f-tab-panel { display: none; }\n.rb2f-tab-panel.rb2f-is-active { display: block; animation: rb2f-tabFade 0.4s ease; }\n@keyframes rb2f-tabFade {\n  from { opacity: 0; transform: translateY(10px); }\n  to { opacity: 1; transform: translateY(0); }\n}\n\n.rb2f-panel-card {\n  border-radius: 1.5rem;\n  background: var(--rb2f-card);\n  padding: 1.75rem;\n  box-shadow: 0 0 0 1px var(--rb2f-border) inset;\n}\n@media (min-width: 768px) { .rb2f-panel-card { padding: 2.5rem; } }\n\n.rb2f-panel-card.rb2f-dark {\n  background: var(--rb2f-primary);\n  color: var(--rb2f-background);\n  box-shadow: 0 0 0 1px rgba(250, 246, 237, 0.12) inset;\n}\n.rb2f-panel-card.rb2f-dark .rb2f-muted { color: color-mix(in srgb, var(--rb2f-background) 70%, transparent); }\n.rb2f-panel-card.rb2f-dark a { color: white; }\n\n.rb2f-panel-title {\n  font-size: 1.625rem;\n  line-height: 1.15;\n  text-wrap: balance;\n}\n@media (min-width: 640px) { .rb2f-panel-title { font-size: 2rem; } }\n\n\/* ---------------- Result stats ---------------- *\/\n.rb2f-result-grid {\n  display: grid;\n  gap: 1.5rem;\n}\n@media (min-width: 640px) { .rb2f-result-grid { grid-template-columns: repeat(3, 1fr); } }\n\n.rb2f-result-card {\n  height: 100%;\n  border-radius: 1.5rem;\n  border: 1px solid var(--rb2f-border);\n  background: var(--rb2f-card);\n  padding: 2rem;\n  text-align: center;\n}\n.rb2f-result-card .rb2f-num {\n  font-size: 3.5rem;\n  font-weight: 500;\n  letter-spacing: -0.02em;\n  color: var(--rb2f-primary);\n}\n.rb2f-result-card .rb2f-cap { margin-top: 0.75rem; font-weight: 600; }\n.rb2f-result-card .rb2f-body { margin-top: 0.5rem; font-size: 0.9rem; line-height: 1.6; color: var(--rb2f-muted-foreground); }\n\n.rb2f-center-head { margin-bottom: 3.5rem; text-align: center; }\n.rb2f-center-head h2 { margin-inline: auto; max-width: 24ch; }\n.rb2f-center-head p { margin-inline: auto; max-width: 52ch; }\n\n\/* ---------------- FAQ ---------------- *\/\n.rb2f-faq-wrap { max-width: 48rem; margin-inline: auto; }\n.rb2f-faq-list { margin-top: 3rem; display: flex; flex-direction: column; gap: 1rem; }\n\ndetails.rb2f-faq-item {\n  border-radius: 1rem;\n  background: var(--rb2f-card);\n  box-shadow: 0 0 0 1px var(--rb2f-border) inset;\n  overflow: hidden;\n}\ndetails.rb2f-faq-item summary {\n  display: flex;\n  cursor: pointer;\n  list-style: none;\n  align-items: center;\n  justify-content: space-between;\n  gap: 1rem;\n  padding: 1.5rem;\n  font-weight: 600;\n}\ndetails.rb2f-faq-item summary::-webkit-details-marker { display: none; }\ndetails.rb2f-faq-item .rb2f-chevron {\n  color: var(--rb2f-muted-foreground);\n  transition: transform 0.25s ease;\n  width: 1rem; height: 1rem;\n  flex-shrink: 0;\n}\ndetails.rb2f-faq-item[open] .rb2f-chevron { transform: rotate(180deg); }\ndetails.rb2f-faq-item .rb2f-faq-answer {\n  padding: 0 1.5rem 1.5rem;\n  font-size: 0.9rem;\n  line-height: 1.7;\n  color: var(--rb2f-muted-foreground);\n}\n\n\/* ---------------- Footer ---------------- *\/\n.rb2f-footer-inner { max-width: 48rem; margin-inline: auto; text-align: center; }\n.rb2f-footer-copy { margin-top: 1.25rem; max-width: 48ch; margin-inline: auto; line-height: 1.7; }\n.rb2f-footer-cta { margin-top: 2.5rem; margin-left: auto; margin-right: auto; }\n\n\/* ---------------- Scroll reveal ---------------- *\/\n.rb2f-reveal {\n  opacity: 0;\n  transform: translateY(1.5rem);\n  transition: opacity 0.7s ease-out, transform 0.7s ease-out;\n}\n.rb2f-reveal.rb2f-is-visible {\n  opacity: 1;\n  transform: translateY(0);\n}\n@media (prefers-reduced-motion: reduce) {\n  .rb2f-reveal { opacity: 1; transform: none; transition: none; }\n}\n\n\/* ---------------- Focus ---------------- *\/\n:where(.rb2f-case-study) a:focus-visible,\n:where(.rb2f-case-study) summary:focus-visible,\n:where(.rb2f-case-study) button:focus-visible {\n  outline: 2px solid var(--rb2f-accent);\n  outline-offset: 2px;\n}\n<\/style>\n\n<div class=\"rb2f-case-study\">\n\n  <!-- ---------------- Hero ---------------- -->\n  <section class=\"rb2f-hero\">\n    <div class=\"rb2f-container\">\n      <div class=\"rb2f-hero-top-row rb2f-reveal\">\n        <span class=\"rb2f-eyebrow\">Case Study \u00b7 Ecommerce SEO Agency<\/span>\n        <a href=\"https:\/\/rb2f.com\/contact-us\" target=\"_blank\" rel=\"noreferrer\" class=\"rb2f-btn rb2f-btn-primary\">\n          Book a Revenue Audit\n          <svg class=\"rb2f-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M7 17L17 7\"\/><path d=\"M7 7h10v10\"\/><\/svg>\n        <\/a>\n      <\/div>\n\n      <div class=\"rb2f-hero-grid\">\n        <div class=\"rb2f-reveal\">\n          <h1 class=\"rb2f-hero-title\">How RB2F Grew Royal Oak&#8217;s Organic Impressions <span class=\"rb2f-accent\">6X<\/span> and Ranked in AI Overviews<\/h1>\n          <p class=\"rb2f-hero-copy\">\n            Royaloak struggled to scale a high-AOV furniture category online without an integrated marketing\n            strategy. RB2F stepped in as their ecommerce SEO agency and marketplace partner to align\n            marketplace management, performance marketing, creative production, and SEO into one system.\n          <\/p>\n\n          <div class=\"rb2f-hero-stats\">\n            <div class=\"rb2f-stat-chip\">\n              <div class=\"rb2f-num\">6X<\/div>\n              <div class=\"rb2f-cap\">Monthly organic impressions<\/div>\n            <\/div>\n            <div class=\"rb2f-stat-chip rb2f-accent\">\n              <div class=\"rb2f-num\">71%<\/div>\n              <div class=\"rb2f-cap\">Growth in ranking keywords<\/div>\n            <\/div>\n            <div class=\"rb2f-stat-chip rb2f-plain\">\n              <div class=\"rb2f-num\">60%<\/div>\n              <div class=\"rb2f-cap\">MoM Amazon revenue growth<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"rb2f-reveal\" style=\"transition-delay:150ms\">\n          <div class=\"rb2f-hero-media\">\n            <img decoding=\"async\"\n              class=\"rb2f-photo rb2f-photo-hero rb2f-aspect-hero\"\n              src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/11\/RoyalOak-960.jpg\"\n              alt=\"Furniture interior \u2014 placeholder mockup image\"\n              loading=\"eager\"\n            \/>\n            <div class=\"rb2f-floating-badge\">\n              <span class=\"rb2f-label\">Client<\/span>\n              <div class=\"rb2f-client-name\">Royal Oak<\/div>\n              <div class=\"rb2f-client-desc\">High-AOV furniture retail brand<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ---------------- Quick Summary ---------------- -->\n  <section class=\"rb2f-section-tight rb2f-section-band\">\n    <div class=\"rb2f-container\">\n      <div class=\"rb2f-reveal\">\n        <span class=\"rb2f-eyebrow\">Quick Summary<\/span>\n      <\/div>\n      <div class=\"rb2f-summary-grid\">\n        <div class=\"rb2f-reveal rb2f-summary-card\">\n          <svg class=\"rb2f-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><path d=\"M22 4L12 14.01l-3-3\"\/><\/svg>\n          <p>Royaloak&#8217;s marketplace listings, ad structure, creative output, and SEO were all fragmented across 800+ SKUs.<\/p>\n        <\/div>\n        <div class=\"rb2f-reveal rb2f-summary-card\" style=\"transition-delay:80ms\">\n          <svg class=\"rb2f-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><path d=\"M22 4L12 14.01l-3-3\"\/><\/svg>\n          <p>RB2F rebuilt Amazon and PepperFry marketplace management, performance marketing, AI-powered production, and technical SEO.<\/p>\n        <\/div>\n        <div class=\"rb2f-reveal rb2f-summary-card\" style=\"transition-delay:160ms\">\n          <svg class=\"rb2f-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><path d=\"M22 4L12 14.01l-3-3\"\/><\/svg>\n          <p>SEO work alone drove <b>6X more monthly organic impressions<\/b> and <b>71% growth in ranking keywords<\/b>.<\/p>\n        <\/div>\n        <div class=\"rb2f-reveal rb2f-summary-card\" style=\"transition-delay:240ms\">\n          <svg class=\"rb2f-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"\/><path d=\"M22 4L12 14.01l-3-3\"\/><\/svg>\n          <p>Amazon revenue grew <b>60% MoM<\/b>, and performance marketing achieved a <b>4.85 RoAS<\/b>.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"rb2f-container rb2f-cta-row\">\n      <a href=\"https:\/\/rb2f.com\/contact-us\" target=\"_blank\" rel=\"noreferrer\" class=\"rb2f-btn rb2f-btn-accent\">\n        Book a Revenue Audit\n        <svg class=\"rb2f-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M7 17L17 7\"\/><path d=\"M7 7h10v10\"\/><\/svg>\n      <\/a>\n    <\/div>\n  <\/section>\n\n  <!-- ---------------- Process Tabs: Challenge \/ Solution \/ Approach ---------------- -->\n  <section class=\"rb2f-section\" id=\"rb2f-process\">\n    <div class=\"rb2f-container\">\n      <div class=\"rb2f-reveal rb2f-center-head\" style=\"margin-bottom:3rem\">\n        <span class=\"rb2f-eyebrow\">Our Process<\/span>\n        <h2 class=\"rb2f-section-title\">The Challenge, The Solution &amp; The Approach<\/h2>\n        <p class=\"rb2f-section-body\">Three stages, one continuous system \u2014 step through each one below.<\/p>\n      <\/div>\n\n      <div class=\"rb2f-reveal rb2f-tabs-wrap\">\n        <div class=\"rb2f-tab-list\" role=\"tablist\" aria-orientation=\"vertical\" aria-label=\"Case study process stages\">\n          <span class=\"rb2f-tab-indicator\" aria-hidden=\"true\"><\/span>\n\n          <button class=\"rb2f-tab-btn\" type=\"button\" role=\"tab\" id=\"rb2f-tab-challenge\" data-tab-target=\"rb2f-challenge\" aria-selected=\"true\" aria-controls=\"rb2f-panel-challenge\" tabindex=\"0\">\n            <span class=\"rb2f-tab-index\">01<\/span>\n            <span class=\"rb2f-tab-text\">\n              <span class=\"rb2f-tab-label\">The Challenge<\/span>\n              <span class=\"rb2f-tab-sub\">Fragmented across 800+ SKUs<\/span>\n            <\/span>\n            <svg class=\"rb2f-icon rb2f-tab-arrow\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 18l6-6-6-6\"\/><\/svg>\n          <\/button>\n\n          <button class=\"rb2f-tab-btn\" type=\"button\" role=\"tab\" id=\"rb2f-tab-audit\" data-tab-target=\"rb2f-audit\" aria-selected=\"false\" aria-controls=\"rb2f-panel-audit\" tabindex=\"-1\">\n            <span class=\"rb2f-tab-index\">02<\/span>\n            <span class=\"rb2f-tab-text\">\n              <span class=\"rb2f-tab-label\">The Solution<\/span>\n              <span class=\"rb2f-tab-sub\">Four pillars, one system<\/span>\n            <\/span>\n            <svg class=\"rb2f-icon rb2f-tab-arrow\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 18l6-6-6-6\"\/><\/svg>\n          <\/button>\n\n          <button class=\"rb2f-tab-btn\" type=\"button\" role=\"tab\" id=\"rb2f-tab-execution\" data-tab-target=\"rb2f-execution\" aria-selected=\"false\" aria-controls=\"rb2f-panel-execution\" tabindex=\"-1\">\n            <span class=\"rb2f-tab-index\">03<\/span>\n            <span class=\"rb2f-tab-text\">\n              <span class=\"rb2f-tab-label\">The Approach<\/span>\n              <span class=\"rb2f-tab-sub\">Research to execution<\/span>\n            <\/span>\n            <svg class=\"rb2f-icon rb2f-tab-arrow\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 18l6-6-6-6\"\/><\/svg>\n          <\/button>\n        <\/div>\n\n        <div class=\"rb2f-tab-panels\">\n          <div class=\"rb2f-tab-panel rb2f-is-active\" role=\"tabpanel\" id=\"rb2f-panel-challenge\" data-tab-panel=\"rb2f-challenge\" aria-labelledby=\"rb2f-tab-challenge\" tabindex=\"0\">\n            <div class=\"rb2f-panel-card\">\n              <h3 class=\"rb2f-panel-title\">Scaling a High-AOV Category Without an Integrated Strategy<\/h3>\n              <div class=\"rb2f-prose-lg\" style=\"margin-top:1.25rem\">\n                <p>Royaloak struggled with a lack of integrated marketing strategy to scale a high-AOV category online \u2014 marketplace listings were inconsistent with tracking gaps across 800+ SKUs, performance marketing ads lacked structure and keyword optimization, creative production couldn&#8217;t match the SKU volume, and SEO visibility was fragmented.<\/p>\n              <\/div>\n              <img decoding=\"async\"\n                class=\"rb2f-photo rb2f-photo-rounded rb2f-aspect-wide\"\n                style=\"margin-top:2rem\"\n                src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2026\/09\/royal-oak-banner-image.jpg\"\n                alt=\"Furniture warehouse \u2014 placeholder mockup image\"\n                loading=\"lazy\"\n              \/>\n            <\/div>\n          <\/div>\n\n          <div class=\"rb2f-tab-panel\" role=\"tabpanel\" id=\"rb2f-panel-audit\" data-tab-panel=\"rb2f-audit\" aria-labelledby=\"rb2f-tab-audit\" tabindex=\"0\">\n            <div class=\"rb2f-panel-card\">\n              <h3 class=\"rb2f-panel-title\" style=\"max-width:24ch\">Marketplace Management, Performance Marketing, Production, and SEO<\/h3>\n              <p style=\"margin-top:1rem; max-width:52ch; line-height:1.7; color:var(--rb2f-muted-foreground)\">\n                Five connected workstreams carried the rebuild:\n              <\/p>\n\n              <div class=\"rb2f-audit-grid\" style=\"margin-top:2rem; box-shadow:none; border-radius:1rem;\">\n                <div class=\"rb2f-audit-cell\">\n                  <span class=\"rb2f-index\">01<\/span>\n                  <h3>Amazon management<\/h3>\n                  <p>Full-funnel advertising, A+ content, and pricing recs. 60% MoM revenue growth, 800+ SKUs listed.<\/p>\n                <\/div>\n                <div class=\"rb2f-audit-cell\">\n                  <span class=\"rb2f-index\">02<\/span>\n                  <h3>PepperFry management<\/h3>\n                  <p>Category optimization and listing enhancement. 50% MoM category growth, reduced returns.<\/p>\n                <\/div>\n                <div class=\"rb2f-audit-cell\">\n                  <span class=\"rb2f-index\">03<\/span>\n                  <h3>Performance marketing<\/h3>\n                  <p>GA4 setup and targeted campaigns. 4.85 RoAS achieved, TaCOS lowered from 30% to 20%.<\/p>\n                <\/div>\n                <div class=\"rb2f-audit-cell\">\n                  <span class=\"rb2f-index\">04<\/span>\n                  <h3>Production &amp; design<\/h3>\n                  <p>AI automation generating product images and videos in bulk, adapted for ad campaigns.<\/p>\n                <\/div>\n                <div class=\"rb2f-audit-cell\">\n                  <span class=\"rb2f-index\">05<\/span>\n                  <h3><a href=\"https:\/\/rb2f.com\/services\/seo-aeo-optimization.php\" target=\"_blank\" rel=\"noreferrer\" class=\"rb2f-link-underline\">SEO &amp; AI Overviews<\/a><\/h3>\n                  <p>1000+ product pages optimized. 6X impressions, 71% keyword growth, 55.1% session growth.<\/p>\n                <\/div>\n                <div class=\"rb2f-audit-cell rb2f-cta\">\n                  <a href=\"https:\/\/rb2f.com\/services\/seo-aeo-optimization.php\" target=\"_blank\" rel=\"noreferrer\" class=\"rb2f-link-underline\">See our SEO &amp; AEO work \u2192<\/a>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"rb2f-tab-panel\" role=\"tabpanel\" id=\"rb2f-panel-execution\" data-tab-panel=\"rb2f-execution\" aria-labelledby=\"rb2f-tab-execution\" tabindex=\"0\">\n            <div class=\"rb2f-panel-card rb2f-dark\">\n              <h3 class=\"rb2f-panel-title\">Research, Benchmarking, and a Reporting SOP<\/h3>\n              <p class=\"rb2f-muted\" style=\"margin-top:1rem; line-height:1.7;\">The plan aligned research with a repeatable operating system before scaling execution across two marketplaces and two countries.<\/p>\n\n              <div class=\"rb2f-execution-steps\" style=\"margin-top:2rem\">\n                <div>\n                  <h3>Research and benchmarking first.<\/h3>\n                  <p class=\"rb2f-muted\">Market research and competitive benchmarking identified visibility gaps and consumer search intent across platforms.<\/p>\n                <\/div>\n                <div>\n                  <h3>A reporting SOP next.<\/h3>\n                  <p class=\"rb2f-muted\">Standardized reporting streamlined operations for automation and volume delivery across 800+ SKUs.<\/p>\n                <\/div>\n                <div>\n                  <h3>Then scaled execution.<\/h3>\n                  <p class=\"rb2f-muted\">\n                    <a href=\"https:\/\/rb2f.com\/services\/revenue-growth.php\" target=\"_blank\" rel=\"noreferrer\">Performance marketing<\/a>,\n                    marketplace management, AI production, and SEO delivered in parallel across the Indian and UAE websites.\n                  <\/p>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ---------------- The Result ---------------- -->\n  <section class=\"rb2f-section\">\n    <div class=\"rb2f-container\">\n      <div class=\"rb2f-reveal rb2f-center-head\">\n        <span class=\"rb2f-eyebrow\">The Result<\/span>\n        <h2 class=\"rb2f-section-title\">6X Organic Impressions, 71% Keyword Growth<\/h2>\n        <p class=\"rb2f-section-body\">One integrated system across marketplaces, ads, production, and SEO moved every metric that mattered:<\/p>\n      <\/div>\n\n      <div class=\"rb2f-result-grid\">\n        <div class=\"rb2f-reveal rb2f-result-card\">\n          <div class=\"rb2f-num\">6X<\/div>\n          <p class=\"rb2f-cap\">Monthly organic impressions<\/p>\n          <p class=\"rb2f-body\">Content built to rank in AI Overviews and organic search across India and UAE.<\/p>\n        <\/div>\n        <div class=\"rb2f-reveal rb2f-result-card\" style=\"transition-delay:100ms\">\n          <div class=\"rb2f-num\">71%<\/div>\n          <p class=\"rb2f-cap\">Growth in ranking keywords<\/p>\n          <p class=\"rb2f-body\">Alongside a 55.1% growth in organic sessions.<\/p>\n        <\/div>\n        <div class=\"rb2f-reveal rb2f-result-card\" style=\"transition-delay:200ms\">\n          <div class=\"rb2f-num\">60%<\/div>\n          <p class=\"rb2f-cap\">MoM Amazon revenue growth<\/p>\n          <p class=\"rb2f-body\">Sales boosted up to \u20b91 Cr, with a 4.85 RoAS and 4.79% CTR in performance marketing.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ---------------- FAQ ---------------- -->\n  <section class=\"rb2f-section rb2f-section-band\">\n    <div class=\"rb2f-container rb2f-faq-wrap\">\n      <div class=\"rb2f-reveal\">\n        <h2 class=\"rb2f-section-title\" style=\"text-align:center\">Frequently Asked Questions<\/h2>\n      <\/div>\n\n      <div class=\"rb2f-faq-list\">\n        <details class=\"rb2f-faq-item rb2f-reveal\" open>\n          <summary>\n            <span>How did RB2F help Royal Oak rank in AI Overviews?<\/span>\n            <svg class=\"rb2f-icon rb2f-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n          <\/summary>\n          <div class=\"rb2f-faq-answer\">RB2F created web page content specifically built to rank in AI Overviews and organic search, optimized 150+ website pages and 1000+ product pages across India and UAE, and added schema markup after a full technical crawlability cleanup \u2014 driving 6X more monthly organic impressions.<\/div>\n        <\/details>\n\n        <details class=\"rb2f-faq-item rb2f-reveal\" style=\"transition-delay:60ms\">\n          <summary>\n            <span>What marketplaces does RB2F manage for Royal Oak?<\/span>\n            <svg class=\"rb2f-icon rb2f-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n          <\/summary>\n          <div class=\"rb2f-faq-answer\">Amazon and PepperFry, with full-funnel advertising, A+ content optimization, and category\/listing management across 800+ SKUs.<\/div>\n        <\/details>\n\n        <details class=\"rb2f-faq-item rb2f-reveal\" style=\"transition-delay:120ms\">\n          <summary>\n            <span>What results did Royal Oak see in performance marketing?<\/span>\n            <svg class=\"rb2f-icon rb2f-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n          <\/summary>\n          <div class=\"rb2f-faq-answer\">Sales boosted up to \u20b91 Cr, TaCOS lowered from 30% to 20%, a target RoAS of 4.85 achieved, and a 4.79% CTR with increased conversions.<\/div>\n        <\/details>\n\n        <details class=\"rb2f-faq-item rb2f-reveal\" style=\"transition-delay:180ms\">\n          <summary>\n            <span>Does RB2F work with enterprise furniture and home retail brands?<\/span>\n            <svg class=\"rb2f-icon rb2f-chevron\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M6 9l6 6 6-6\"\/><\/svg>\n          <\/summary>\n          <div class=\"rb2f-faq-answer\">Yes \u2014 this case study covers RB2F&#8217;s marketplace management, performance marketing, AI-powered production, and SEO work for Royaloak, a high-AOV furniture retail brand.<\/div>\n        <\/details>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ---------------- Footer CTA ---------------- -->\n  <section class=\"rb2f-section rb2f-section-dark\">\n    <div class=\"rb2f-container rb2f-footer-inner\">\n      <h2 class=\"rb2f-section-title\">Is your SKU catalog too big to manage by hand?<\/h2>\n      <p class=\"rb2f-muted rb2f-footer-copy\">Let an RB2F audit find the gaps in your marketplace, ads, and SEO \u2014 the same playbook that grew Royal Oak&#8217;s organic impressions 6X.<\/p>\n      <a href=\"https:\/\/rb2f.com\/contact-us\" target=\"_blank\" rel=\"noreferrer\" class=\"rb2f-btn rb2f-btn-accent rb2f-footer-cta\">\n        Book a Revenue Audit\n        <svg class=\"rb2f-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M7 17L17 7\"\/><path d=\"M7 7h10v10\"\/><\/svg>\n      <\/a>\n    <\/div>\n  <\/section>\n\n<\/div>\n<script>\n(function () {\n  function initCaseStudy(root) {\n    if (!root || root.getAttribute('data-rb2f-ready') === '1') return;\n    root.setAttribute('data-rb2f-ready', '1');\n\n    \/\/ ---------------- Scroll reveal ----------------\n    var revealEls = root.querySelectorAll('.rb2f-reveal');\n    if ('IntersectionObserver' in window) {\n      var observer = new IntersectionObserver(function (entries) {\n        entries.forEach(function (entry) {\n          if (entry.isIntersecting) {\n            entry.target.classList.add('rb2f-is-visible');\n            observer.unobserve(entry.target);\n          }\n        });\n      }, { threshold: 0.12 });\n      revealEls.forEach(function (el) { observer.observe(el); });\n    } else {\n      revealEls.forEach(function (el) { el.classList.add('rb2f-is-visible'); });\n    }\n\n    \/\/ ---------------- Process tabs ----------------\n    var tabList = root.querySelector('.rb2f-tab-list');\n    if (!tabList) return;\n    var tabButtons = Array.prototype.slice.call(root.querySelectorAll('.rb2f-tab-btn'));\n    var panels = Array.prototype.slice.call(root.querySelectorAll('.rb2f-tab-panel'));\n    var indicator = root.querySelector('.rb2f-tab-indicator');\n\n    function moveIndicator() {\n      if (!indicator) return;\n      if (window.innerWidth < 1024) { indicator.style.opacity = '0'; return; }\n      var active = tabList.querySelector('.rb2f-tab-btn[aria-selected=\"true\"]');\n      if (!active) return;\n      indicator.style.opacity = '1';\n      indicator.style.transform = 'translateY(' + active.offsetTop + 'px)';\n      indicator.style.height = active.offsetHeight + 'px';\n    }\n\n    function getStickyOffset() {\n      var computedTop = parseFloat(window.getComputedStyle(tabList).top) || 0;\n      if (window.innerWidth < 1024) {\n        var tabH = tabList.offsetHeight || 96;\n        return computedTop + tabH + 12;\n      }\n      return computedTop + 24;\n    }\n\n    function scrollToPanelTop() {\n      var activePanel = root.querySelector('.rb2f-tab-panel.rb2f-is-active');\n      if (!activePanel) return;\n      var rect = activePanel.getBoundingClientRect();\n      var offset = getStickyOffset();\n      if (rect.top < offset) {\n        var targetY = window.scrollY + rect.top - offset;\n        window.scrollTo({ top: Math.max(targetY, 0), behavior: 'smooth' });\n      }\n    }\n\n    function activate(targetId, focusButton) {\n      tabButtons.forEach(function (btn) {\n        var selected = btn.getAttribute('data-tab-target') === targetId;\n        btn.setAttribute('aria-selected', selected ? 'true' : 'false');\n        btn.tabIndex = selected ? 0 : -1;\n        if (selected) {\n          if (focusButton) { btn.focus(); }\n        }\n      });\n      panels.forEach(function (panel) {\n        panel.classList.toggle('rb2f-is-active', panel.getAttribute('data-tab-panel') === targetId);\n      });\n      moveIndicator();\n      scrollToPanelTop();\n    }\n\n    tabButtons.forEach(function (btn, idx) {\n      btn.addEventListener('click', function () {\n        activate(btn.getAttribute('data-tab-target'), false);\n      });\n      btn.addEventListener('keydown', function (e) {\n        var nextIdx = null;\n        if (e.key === 'ArrowDown' || e.key === 'ArrowRight') nextIdx = (idx + 1) % tabButtons.length;\n        else if (e.key === 'ArrowUp' || e.key === 'ArrowLeft') nextIdx = (idx - 1 + tabButtons.length) % tabButtons.length;\n        else if (e.key === 'Home') nextIdx = 0;\n        else if (e.key === 'End') nextIdx = tabButtons.length - 1;\n        if (nextIdx !== null) {\n          e.preventDefault();\n          activate(tabButtons[nextIdx].getAttribute('data-tab-target'), true);\n        }\n      });\n    });\n\n    window.addEventListener('resize', moveIndicator);\n    moveIndicator();\n  }\n\n  function initAll() {\n    var roots = document.querySelectorAll('.rb2f-case-study');\n    for (var i = 0; i < roots.length; i++) { initCaseStudy(roots[i]); }\n  }\n\n  \/\/ Guard against the block's script running before the DOM (or the block\n  \/\/ itself) is actually in the page \u2014 e.g. if a page builder, lazy-load, or\n  \/\/ caching plugin defers\/re-injects this HTML.\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initAll);\n  } else {\n    initAll();\n  }\n})();\n<\/script>\n\n\n\n<style>\r\n  \/* Scoped under .rb2f-slider \u2014 :where() keeps these resets at zero\r\n     specificity so nothing here fights the rest of the page's CSS. *\/\r\n  .rb2f-slider {\r\n    --rb2f-slider-bg: #faf6ed;\r\n    --rb2f-slider-fg: #000000;\r\n    --rb2f-slider-accent: #ed3d63;\r\n    --rb2f-slider-muted: #6e6656;\r\n    --rb2f-slider-card: #ffffff;\r\n    --rb2f-slider-border: #e3d9bf;\r\n\r\n    margin: 2rem 0;\r\n  }\r\n  :where(.rb2f-slider) *,\r\n  :where(.rb2f-slider) *::before,\r\n  :where(.rb2f-slider) *::after {\r\n    box-sizing: border-box;\r\n  }\r\n  :where(.rb2f-slider) a {\r\n    color: inherit;\r\n    text-decoration: none;\r\n  }\r\n  :where(.rb2f-slider) img {\r\n    display: block;\r\n    max-width: 100%;\r\n  }\r\n  :where(.rb2f-slider) h3 {\r\n    margin: 0;\r\n  }\r\n  :where(.rb2f-slider) button {\r\n    font: inherit;\r\n  }\r\n\r\n  .rb2f-slider-row {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 0.75rem;\r\n  }\r\n\r\n  .rb2f-slider-nav {\r\n    flex: 0 0 auto;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    width: 2.75rem;\r\n    height: 2.75rem;\r\n    border-radius: 999px;\r\n    border: 1px solid var(--rb2f-slider-border);\r\n    background: var(--rb2f-slider-card);\r\n    color: var(--rb2f-slider-fg);\r\n    cursor: pointer;\r\n    transition: opacity 0.2s ease, border-color 0.2s ease;\r\n  }\r\n  .rb2f-slider-nav:hover {\r\n    border-color: var(--rb2f-slider-accent);\r\n  }\r\n  .rb2f-slider-nav[disabled] {\r\n    opacity: 0.35;\r\n    cursor: default;\r\n    pointer-events: none;\r\n  }\r\n  .rb2f-slider-nav svg {\r\n    width: 1.1rem;\r\n    height: 1.1rem;\r\n  }\r\n\r\n  .rb2f-slider-track {\r\n    flex: 1 1 auto;\r\n    display: flex;\r\n    gap: 1rem;\r\n    overflow-x: auto;\r\n    scroll-snap-type: x mandatory;\r\n    scroll-behavior: smooth;\r\n    padding: 0.25rem 0.25rem 1rem;\r\n    scrollbar-width: none;\r\n    -ms-overflow-style: none;\r\n  }\r\n  .rb2f-slider-track::-webkit-scrollbar {\r\n    display: none;\r\n  }\r\n\r\n  .rb2f-slider-card {\r\n    flex: 0 0 auto;\r\n    width: 260px;\r\n    scroll-snap-align: start;\r\n    border-radius: 1rem;\r\n    background: var(--rb2f-slider-card);\r\n    border: 1px solid var(--rb2f-slider-border);\r\n    overflow: hidden;\r\n    transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n  }\r\n  @media (min-width: 640px) {\r\n    .rb2f-slider-card { width: 300px; }\r\n  }\r\n  .rb2f-slider-card:hover {\r\n    transform: translateY(-3px);\r\n    box-shadow: 0 12px 24px -12px rgba(0, 0, 0, 0.2);\r\n  }\r\n\r\n  .rb2f-slider-card-link {\r\n    display: block;\r\n  }\r\n  .rb2f-slider-card-image {\r\n   \r\n    overflow: hidden;\r\n    background: var(--rb2f-slider-bg);\r\n  }\r\n  .rb2f-slider-card-image img {\r\n    width: 100%;\r\n   \r\n    object-fit: cover;\r\n  }\r\n  .rb2f-slider-card-body {\r\n    padding: 1.1rem 1.25rem 1.4rem;\r\n  }\r\n  .rb2f-slider-card-title {\r\n    font-size: 1.05rem;\r\n    font-weight: 600;\r\n    line-height: 1.35;\r\n    color: var(--rb2f-slider-fg);\r\n  }\r\n  .rb2f-slider-card-tagline {\r\n    margin: 0.4rem 0 0;\r\n    font-size: 0.85rem;\r\n    line-height: 1.5;\r\n    color: var(--rb2f-slider-muted);\r\n  }\r\n<\/style>\r\n\r\n<div class=\"rb2f-slider\">\r\n  <div class=\"rb2f-slider-row\">\r\n    <button type=\"button\" class=\"rb2f-slider-nav rb2f-slider-prev\" aria-label=\"Previous\">\r\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M15 18l-6-6 6-6\"\/><\/svg>\r\n    <\/button>\r\n\r\n    <div class=\"rb2f-slider-track\">\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/the-whole-truth\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/06\/truth-bg.png\" alt=\"The Whole Truth\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">The Whole Truth<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">No BS. Just serious growth.<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/bliss-club\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/06\/bliss-bg.png\" alt=\"Bliss Club\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">Bliss Club<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">Stretch, scale, repeat.<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/sparkles\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/11\/Sparkles-card-thumbnail-jpg.jpg\" alt=\"Sparkles\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">Sparkles<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">A 30-year legacy that found its shine online.<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/curious-cub\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/11\/curiouscub.jpg\" alt=\"Curious Cub\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">Curious Cub<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">Piecing growth together, one product at a time.<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/royal-oak\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/11\/RoyalOak-960-03.jpg\" alt=\"Royal Oak\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">Royal Oak<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">A little 'polish' that elevated their digital growth!<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/neemans\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/11\/Neemans.jpg\" alt=\"Neeman's\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">Neeman's<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">A stride to success.<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/zivame\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/11\/Zivame-960.jpg\" alt=\"Zivame\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">Zivame<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">From core comfort to high growth.<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/shisenfox\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/06\/shisenfox-bg.png\" alt=\"Shisenfox\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">Shisenfox<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">Turning eyewear into identity.<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/hinduja-group\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/06\/hinduja-bg-1.png\" alt=\"Hinduja Group\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">Hinduja Group<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">Made a network speak 'digital'!<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/iksula\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/06\/iksula-12.png\" alt=\"Iksula\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">Iksula<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">E-comm got its suit tailored.<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/absorbia\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/06\/absorbia-bg.png\" alt=\"Absorbia\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">Absorbia<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">'Dampness' flipped into damn good brand positioning!<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/sugar-cosmetics\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/06\/sugar-bg-1.png\" alt=\"Sugar\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">Sugar<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">Beauty, clicks, and a whole lot of traction!<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n      <div class=\"rb2f-slider-card\">\r\n        <a class=\"rb2f-slider-card-link\" href=\"https:\/\/rb2f.com\/work\/the-hillcart-tales\">\r\n          <div class=\"rb2f-slider-card-image\">\r\n            <img decoding=\"async\" src=\"https:\/\/rb2f.com\/blogs\/wp-content\/uploads\/2025\/06\/hillcart-bg-1.png\" alt=\"The Hillcart Tales\">\r\n          <\/div>\r\n          <div class=\"rb2f-slider-card-body\">\r\n            <h3 class=\"rb2f-slider-card-title\">The Hillcart Tales<\/h3>\r\n            <p class=\"rb2f-slider-card-tagline\">We gave tea a brand voice. It spoke elegance!<\/p>\r\n          <\/div>\r\n        <\/a>\r\n      <\/div>\r\n\r\n    <\/div>\r\n\r\n    <button type=\"button\" class=\"rb2f-slider-nav rb2f-slider-next\" aria-label=\"Next\">\r\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 18l6-6-6-6\"\/><\/svg>\r\n    <\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function () {\r\n  function initSlider(root) {\r\n    if (!root || root.getAttribute('data-rb2f-slider-ready') === '1') return;\r\n    root.setAttribute('data-rb2f-slider-ready', '1');\r\n\r\n    var track = root.querySelector('.rb2f-slider-track');\r\n    var prevBtn = root.querySelector('.rb2f-slider-prev');\r\n    var nextBtn = root.querySelector('.rb2f-slider-next');\r\n    var cards = Array.prototype.slice.call(root.querySelectorAll('.rb2f-slider-card'));\r\n    if (!track) return;\r\n\r\n    function stepSize() {\r\n      if (!cards.length) return track.clientWidth;\r\n      var trackStyles = window.getComputedStyle(track);\r\n      var gap = parseFloat(trackStyles.columnGap || trackStyles.gap) || 0;\r\n      return cards[0].getBoundingClientRect().width + gap;\r\n    }\r\n\r\n    function updateNavState() {\r\n      if (!prevBtn || !nextBtn) return;\r\n      var maxScroll = track.scrollWidth - track.clientWidth - 1;\r\n      prevBtn.disabled = track.scrollLeft <= 0;\r\n      nextBtn.disabled = track.scrollLeft >= maxScroll;\r\n    }\r\n\r\n    if (prevBtn) {\r\n      prevBtn.addEventListener('click', function () {\r\n        track.scrollBy({ left: -stepSize(), behavior: 'smooth' });\r\n      });\r\n    }\r\n    if (nextBtn) {\r\n      nextBtn.addEventListener('click', function () {\r\n        track.scrollBy({ left: stepSize(), behavior: 'smooth' });\r\n      });\r\n    }\r\n\r\n    track.addEventListener('scroll', function () {\r\n      window.requestAnimationFrame(updateNavState);\r\n    }, { passive: true });\r\n\r\n    window.addEventListener('resize', updateNavState);\r\n    updateNavState();\r\n  }\r\n\r\n  function initAll() {\r\n    var roots = document.querySelectorAll('.rb2f-slider');\r\n    for (var i = 0; i < roots.length; i++) { initSlider(roots[i]); }\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', initAll);\r\n  } else {\r\n    initAll();\r\n  }\r\n})();\r\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Case Study \u00b7 Ecommerce SEO Agency Book a Revenue Audit How RB2F Grew Royal Oak&#8217;s Organic Impressions 6X and Ranked in AI Overviews Royaloak struggled to scale a high-AOV furniture category online without an integrated marketing strategy. RB2F stepped in as their ecommerce SEO agency and marketplace partner to align marketplace management, performance marketing, creative [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-16452","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Royal Oak - RB2F<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Royal Oak - RB2F\" \/>\n<meta property=\"og:description\" content=\"Case Study \u00b7 Ecommerce SEO Agency Book a Revenue Audit How RB2F Grew Royal Oak&#8217;s Organic Impressions 6X and Ranked in AI Overviews Royaloak struggled to scale a high-AOV furniture category online without an integrated marketing strategy. RB2F stepped in as their ecommerce SEO agency and marketplace partner to align marketplace management, performance marketing, creative [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/\" \/>\n<meta property=\"og:site_name\" content=\"RB2F\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-04T13:15:32+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/\",\"url\":\"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/\",\"name\":\"Royal Oak - RB2F\",\"isPartOf\":{\"@id\":\"https:\/\/rb2f.com\/blogs\/#website\"},\"datePublished\":\"2026-09-04T07:03:37+00:00\",\"dateModified\":\"2026-09-04T13:15:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/rb2f.com\/blogs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Royal Oak\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/rb2f.com\/blogs\/#website\",\"url\":\"https:\/\/rb2f.com\/blogs\/\",\"name\":\"RB2F\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/rb2f.com\/blogs\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Royal Oak - RB2F","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/","og_locale":"en_US","og_type":"article","og_title":"Royal Oak - RB2F","og_description":"Case Study \u00b7 Ecommerce SEO Agency Book a Revenue Audit How RB2F Grew Royal Oak&#8217;s Organic Impressions 6X and Ranked in AI Overviews Royaloak struggled to scale a high-AOV furniture category online without an integrated marketing strategy. RB2F stepped in as their ecommerce SEO agency and marketplace partner to align marketplace management, performance marketing, creative [&hellip;]","og_url":"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/","og_site_name":"RB2F","article_modified_time":"2026-09-04T13:15:32+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/","url":"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/","name":"Royal Oak - RB2F","isPartOf":{"@id":"https:\/\/rb2f.com\/blogs\/#website"},"datePublished":"2026-09-04T07:03:37+00:00","dateModified":"2026-09-04T13:15:32+00:00","breadcrumb":{"@id":"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rb2f.com\/blogs\/work\/royal-oak\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/rb2f.com\/blogs\/work\/royal-oak\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rb2f.com\/blogs\/"},{"@type":"ListItem","position":2,"name":"Royal Oak"}]},{"@type":"WebSite","@id":"https:\/\/rb2f.com\/blogs\/#website","url":"https:\/\/rb2f.com\/blogs\/","name":"RB2F","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rb2f.com\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/rb2f.com\/blogs\/wp-json\/wp\/v2\/pages\/16452","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rb2f.com\/blogs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rb2f.com\/blogs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rb2f.com\/blogs\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/rb2f.com\/blogs\/wp-json\/wp\/v2\/comments?post=16452"}],"version-history":[{"count":4,"href":"https:\/\/rb2f.com\/blogs\/wp-json\/wp\/v2\/pages\/16452\/revisions"}],"predecessor-version":[{"id":16483,"href":"https:\/\/rb2f.com\/blogs\/wp-json\/wp\/v2\/pages\/16452\/revisions\/16483"}],"wp:attachment":[{"href":"https:\/\/rb2f.com\/blogs\/wp-json\/wp\/v2\/media?parent=16452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}