How to Own Multiple Cards in a Single Google Search Result
ItemList schema markup lets you claim a carousel of results in a single Google SERP. Here's how to implement it for real estate content and dominate visual search results.
Most SEO advice focuses on ranking one page for one keyword. What if you could own three, five, or eight positions in a single search result — not by ranking multiple pages, but by claiming a carousel that displays multiple content items from your site in a single rich result?
That is what ItemList schema does. And after deploying it across 52 websites, I can tell you that most sites — including major real estate platforms — are not using it.
What ItemList Schema Actually Does
Google supports a specific JSON-LD schema type called ItemList that tells the search engine: "This page contains an ordered list of items, and each item has its own URL." When Google processes this correctly, it can render your result as a horizontal carousel instead of a single blue link.
You have seen these carousels before. Recipe sites use them constantly — search for "chocolate chip cookie recipes" and you will see carousel results showing multiple recipes from a single domain. Those are powered by ItemList markup.
The same mechanism works for any content vertical. Real estate analysis, book reviews, financial comparisons, market data — any page that presents a curated list of items can use ItemList to claim carousel real estate in the SERP.
The Real Estate Application
Consider a page titled "HOA Fees by State: 2026 Rankings." Without ItemList markup, Google displays it as a single search result — one title, one description, one URL. It competes with every other result on the page for attention.
With ItemList markup, that same page can generate a carousel showing each state as a separate card within the result. The visual footprint expands from one line to a scrollable strip that dominates the above-the-fold SERP.
Here is the implementation:
{
"@context": "https://schema.org",
"@type": "ItemList",
"name": "HOA Fees by State: 2026 Rankings",
"description": "Average monthly HOA fees ranked across all 50 states with year-over-year trends.",
"numberOfItems": 50,
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Florida – $425/month average",
"url": "https://thecondotrap.com/blog/hoa-fees-by-state-2026/#florida"
},
{
"@type": "ListItem",
"position": 2,
"name": "New York – $390/month average",
"url": "https://thecondotrap.com/blog/hoa-fees-by-state-2026/#new-york"
},
{
"@type": "ListItem",
"position": 3,
"name": "California – $375/month average",
"url": "https://thecondotrap.com/blog/hoa-fees-by-state-2026/#california"
}
]
}
Each ListItem points to an anchor within the same page. Google can render each as a separate card in the carousel. The user sees a visual array of options instead of a single result — and your site occupies the visual space that would otherwise belong to three or four competitors.
Where It Works Best
Not every page benefits from ItemList markup. The pages that perform best with carousels share specific characteristics:
Ranked lists. "Top 10 states for condo investment" or "Best cities for first-time buyers" — any page with a numbered, ordered list of items where each item could stand alone as a useful result.
Comparison pages. "Condo vs. Townhouse vs. Single-Family" — where each comparison option becomes a carousel card that users can scan visually before clicking.
Guide collections. "The Complete Condo Buyer's Guide" with chapters on insurance, HOA, inspections, financing, and closing — each chapter becomes a card in the carousel.
Data tables. State-by-state or city-by-city data pages where each geographic entry is a distinct item with its own analysis.
The common thread is structured, enumerable content. If your page contains a list of distinct items that each have a name and a URL (even an anchor URL), it is a candidate for ItemList markup.
Implementation Across a Site Network
When I deployed ItemList schema across our network, I identified every page that contained a qualifying list and added the markup programmatically. The process:
Step 1: Audit for list content. Scan every page for ordered lists, comparison tables, ranked items, and multi-section guides. Any page with three or more distinct, named items qualifies.
Step 2: Generate the schema. For each qualifying page, create an ItemList JSON-LD block with each item's name, position, and URL. The URL should point to either a separate page or an anchor within the current page.
Step 3: Inject at build time. In a static site, the schema gets injected into the <head> during the build process. For Eleventy, I use a Nunjucks template that checks for ItemList data in the page's frontmatter or a companion data file.
Step 4: Validate. Use Google's Rich Results Test to confirm the markup is valid. Then wait. Google typically processes ItemList markup within one to three crawl cycles — roughly two to six weeks for most sites.
Step 5: Monitor. In Google Search Console, check the "Search Appearance" section for carousel impressions. Track click-through rate on pages with ItemList markup versus pages without it.
The Results Across 52 Sites
After deploying ItemList markup on 187 qualifying pages across our 52-site network, the results were measurable within six weeks:
- Pages with ItemList markup saw an average 34% increase in click-through rate compared to their pre-markup baseline
- Impression counts increased on pages where Google rendered the carousel, because the expanded visual footprint attracted more attention even at the same ranking position
- Pages that previously received zero rich result features began appearing with carousel formatting in mobile results, where the swipeable card format is particularly effective
The investment was less than one hour of development time per site, deployed through the shared template system. The return — measured in incremental organic traffic — was immediate and compounding.
Common Mistakes
Too few items. Google typically requires at least three ListItems to trigger a carousel. Pages with only two items rarely generate the rich result.
Missing URLs. Each ListItem needs a URL. If you use anchor links, make sure the anchors actually exist on the page. Google validates them.
Duplicate content signals. If every ListItem URL points to a separate page with thin content, Google may interpret this as a doorway page strategy and suppress the carousel. Each destination should have substantial, unique content.
Ignoring mobile. Carousels are more prominent on mobile SERPs than desktop. Test your implementation on mobile devices and in Google's mobile-friendly test tool.
The Strategic Advantage
ItemList markup is one of the few SEO techniques that lets a single page claim disproportionate SERP real estate. In competitive verticals like real estate — where five or six sites are fighting for the same keywords — the ability to occupy three or four visual positions instead of one is a structural advantage.
It is also one of the few techniques that works equally well for small, niche sites and large authority sites. Google does not gate carousel rendering behind domain authority thresholds. If the markup is valid and the content is relevant, the carousel can appear regardless of site size.
The sites that deploy it first in a given keyword vertical own the visual landscape until competitors catch up. In real estate, that window is wide open.
The Condo Trap deploys ItemList schema across every ranking and comparison page — part of the structured data strategy that helps niche content compete with billion-dollar platforms. Get it on Amazon. For the full schema deployment playbook across multiple sites, see The $100 Network.