Three steps. No iFrames. No third-party subdomains. No JavaScript-dependent indexing. Just your domain, your rankings, your leads.
Your server authenticates with the Trestle RESO Web API using OAuth 2.0 credentials. On each request, it fetches live property data directly from Bright MLS -- status, price, photos, agent details, and MLS fields.
Astro's server-side runtime processes the Trestle response and renders a complete HTML page before it leaves the server. The browser receives finished markup -- no client-side data fetching, no blank loading states.
Googlebot crawls the full HTML page at yourdomain.com/listings/123-main-st. It sees address, price, bedrooms, description, photos -- everything. The listing is indexed on your domain and contributes to your authority.
The technical difference between an iFrame IDX and a Trestle API integration is not subtle. Here is what Googlebot retrieves when it crawls a listing page in each approach.
<html>
<head>
<title>Search Listings</title>
</head>
<body>
<!-- Your header -->
<iframe
src="https://vendor.idxbroker.com/..."
width="100%"
height="800"
></iframe>
<!-- Your footer -->
</body>
</html> Googlebot stops at the iFrame boundary. The listing content lives on the vendor's domain and is indexed there -- or not indexed at all.
<html>
<head>
<title>4BR 3BA in Bethesda MD | yourdomain.com</title>
<meta name="description"
content="Spacious colonial, updated kitchen...">
<script type="application/ld+json">
"@type": "RealEstateListing",
"price": 875000, "bedrooms": 4
</script>
</head>
<body>
<h1>123 Main St, Bethesda MD 20814</h1>
<p>$875,000 · 4 bed · 3 bath</p>
<p>Spacious colonial with updated kitchen...</p>
<!-- Full listing detail, photos, agent info -->
</body>
</html> Googlebot reads every field. The page ranks on your domain for the address, neighborhood, price range, and property type.
Every IDX integration includes the following pages and features. Nothing is sold as an add-on upsell after the project starts.
Filterable search interface with city, zip code, price range, bedrooms, bathrooms, property type, and status. Search results are server-rendered with pagination. URL parameters make results shareable and crawlable.
Each active listing gets its own URL at yourdomain.com/listings/[mls-number]. Full address, price, photos, description, features, and agent details -- all rendered as HTML and indexed by Google.
Registered users can save search criteria and receive email alerts when new matching listings appear. Alert frequency and format are configurable. Works without third-party services.
Contact forms on listing detail pages send directly to your email or CRM via webhook. Schedule a showing, ask a question, or request more info -- all tied to the specific listing MLS number.
Bright MLS logo, required disclaimer text, listing agent name, broker name, office name, and data timestamp -- all rendered server-side on every listing page and search results page. No compliance gaps.
Property search and listing detail pages are fully responsive at all viewport widths. Photo galleries use native lazy loading. Forms are touch-optimized. Core Web Vitals pass on mobile.
Trestle API integration, search page, listing detail pages, lead capture, compliance elements, and deployment to your server.
Trestle API access fee pass-through plus hosting, monitoring, and ongoing compliance updates as Bright MLS requirements change.
Trestle API access requires a Bright MLS subscriber license. If you are not already a Bright MLS member, your broker must be. I will handle the Trestle application process as part of onboarding.
Bright MLS data licensing has specific display requirements. Every integration I build includes all of them from day one -- they are not afterthoughts bolted on before launch.
The official Bright MLS logo is displayed on all listing pages and search results pages in the position and size required by the display rules. It is rendered as an image element, not a background.
Listing agent name, license number where required, broker name, and office phone are displayed on every individual listing detail page. Data comes directly from the Trestle API feed.
The Bright MLS disclaimer ("The data relating to real estate for sale on this website appears in part through the Bright MLS IDX program...") is included verbatim on all applicable pages and cannot be removed or collapsed.
Each listing shows the date and time the data was last updated from the Trestle feed. Search result pages show when the results were generated. Both are rendered server-side, not via JavaScript after page load.
If you have an existing IDX setup and want to know exactly what Google sees when it crawls your listing pages, send me the URL and I will send back a written audit at no charge.
If you are starting fresh, we can usually have a working integration live within three weeks of Trestle API approval.