A 14-day test across five mobile VDPs reduced average load time from 4.8 seconds to 2.6 seconds. Bounce rate fell 18 percentage points, and VDP traffic increased 12%.
Our mobile VDPs loaded in 4.8 seconds.
Vehicle photos accounted for most of the page weight. The chat widget and five tracking scripts delayed rendering. A video player loaded before anyone pressed play.
We made six changes and ran the test for 14 days.
Average VDP load time fell from 4.8 seconds to 2.6 seconds.
4.8 seconds minus 2.6 seconds = 2.2 seconds saved
Bounce rate moved from 62% to 44%. That is an 18-percentage-point decline, or a 29% relative reduction.
VDP visits increased from 2,000 to 2,240 during the test period. The five pages also gained an average of three organic positions across the query set we tracked.
The ranking change happened during the speed test, but speed alone does not prove causation. Google uses many ranking systems and says page experience is one part of a larger evaluation. developers.google.com
The same caution applies to AI search visibility. Inventory pages appeared in AI-supported search results after the changes. Faster loading did not independently cause those appearances. Google says pages must remain crawlable, indexed and eligible for normal Search before appearing in its generative features. Documentation …
The Six VDP Speed Fixes
| # | Website Speed Fix | Before | After | Time Saved | Observed Bounce Change | Hands-On Setup Time |
| 1 | Compress VDP images from 40 MB to 8 MB with WebP | 4.8 sec | 3.6 sec | 1.2 sec | Down 8 points | 30 min |
| 2 | Lazy-load below-the-fold images and iframes | 3.6 sec | 3.1 sec | 0.5 sec | Down 4 points | 15 min |
| 3 | Defer noncritical chat and tracking scripts | 3.1 sec | 2.9 sec | 0.2 sec | Down 2 points | 20 min |
| 4 | Serve images and static files through a CDN | 2.9 sec | 2.7 sec | 0.2 sec | Down 2 points | 10 min |
| 5 | Use font-display: swap and remove unused fonts | 2.7 sec | 2.6 sec | 0.1 sec | Down 1 point | 10 min |
| 6 | Replace the automatic video player with a thumbnail | 2.6 sec | 2.6 sec | Prevented about 1 sec of added load | Down 1 point | 15 min |
| Total | Six fixes over 14 days | 4.8 sec | 2.6 sec | 2.2 sec | Down 18 points | 100 min |
The fixes were applied in sequence, so later results include earlier changes. Bounce changes overlap and should not be treated as isolated causal effects from each fix.
#1: Compress VDP Images From 40 MB to 8 MB
Images were the biggest problem.
One tested VDP loaded 35 PNG and oversized image files totaling about 40 MB. The page forced a mobile shopper to download far more image data than the first screen needed.
We converted the inventory images to WebP and resized each file for its display width. Total image weight dropped to about 8 MB.
Average load time fell from 4.8 seconds to 3.6 seconds.
Time saved: 1.2 seconds
The PageSpeed performance score for the test page moved from 48 to 68. PageSpeed scores vary by device, network and test run, so we used repeated tests instead of one screenshot.
Your image process should create several sizes:
- Thumbnail for the SRP
- Mobile VDP image
- Desktop VDP image
- Full-resolution zoom image
Do not send a 3,000-pixel photo to a 400-pixel mobile image container.
The first VDP image also needs different treatment from photo number 28. The hero image is often the Largest Contentful Paint element. Load the hero promptly and compress it aggressively without making the vehicle look soft.
Google describes LCP as the metric measuring when the main page content has likely loaded. web.dev
Action: Ask your website vendor for the total image weight of five live VDPs. Set an automated WebP conversion and responsive sizing rule.
#2: Lazy-Load Every Image Below the First Screen
The VDP loaded all 35 vehicle photos during the initial page request.
Most shoppers had not reached photo seven. Their phones were still downloading photo 28.
We loaded the hero and other visible images immediately. Images below the first screen received native lazy loading:
<img
src=”vehicle-interior.webp”
loading=”lazy”
width=”800″
height=”600″
alt=”Used SUV front-seat interior”>
The change reduced average load time from 3.6 seconds to 3.1 seconds.
Time saved: 0.5 seconds
Do not lazy-load the main hero image. Delaying the image likely to become the LCP element hurts the metric you want to improve. Google’s web performance guidance recommends eager loading for images in the initial viewport and lazy loading for the remaining media. web.dev
Add width and height attributes as well. Those dimensions reserve the proper space before the image arrives and reduce layout movement.
Lazy loading also applies to below-the-fold maps, review widgets and video iframes. A third-party widget should not compete with the price, primary photo or CTA during the first screen.
Action: Eager-load the hero image. Lazy-load the remaining gallery, map and below-the-fold iframes.
#3: Defer Chat and Noncritical Tracking Scripts
The test VDP loaded a chat widget and five tracking scripts before finishing the visible page.
Together, those scripts blocked or delayed rendering for about 1.1 seconds on the slowest test. Deferring the noncritical files reduced the measured page load by 0.2 seconds after the image improvements were already active.
A standard deferred script looks like this:
<script src=”/chat-widget.js” defer></script>
Do not add defer to every script without testing dependencies. Your consent manager, dynamic phone-number insertion, digital retailing tool and analytics events might rely on a specific load order.
External JavaScript without async, defer or module behavior blocks the parser while the browser downloads and executes the file. web.dev
Build a script inventory with four fields:
| Script | Business Owner | Load Priority | Remove, Delay or Keep |
| Call tracking | Digital director | High | Keep and test first |
| Consent manager | Compliance | High | Keep |
| Chat | BDC | Medium | Delay until page is usable |
| Heatmap | Marketing | Low | Delay |
| Old agency pixel | Unknown | Low | Remove after validation |
A tracking tag nobody owns should not block a $40,000 vehicle page.
Action: Ask your vendor for every third-party script, its owner and its loading order. Remove duplicates before adding more code.
#4: Put Images and Static Files Behind a CDN
The original server delivered images from one location. A shopper farther from the origin waited longer for the files.
A content delivery network stored copies closer to the shopper. Enabling edge caching reduced the average test result from 2.9 seconds to 2.7 seconds.
Time saved: 0.2 seconds
The gain looks small beside image compression. Across thousands of SRP and VDP requests, the improvement still removes delay.
Your CDN rules need exclusions. Never cache live price, availability or payment information for too long. A shopper should not see yesterday’s price after the DMS changes the vehicle.
Recommended controls include:
- Long cache duration for logos, fonts and template files
- Versioned URLs for updated CSS and JavaScript
- Short cache duration for inventory data
- Immediate image purge after a photo replacement
- Cache bypass for personalized finance steps
Action: Confirm the inventory images, CSS and JavaScript use edge delivery. Ask how quickly a price or photo change clears from cache.
#5: Fix Font Loading Without Redesigning the Website
The test site loaded several custom font files before showing the text.
The font delay reached 0.6 seconds on one slow connection. Removing unused weights and adding font-display: swap reduced the measured page result by 0.1 seconds.
Example:
@font-face {
font-family: “Dealer Sans”;
src: url(“/fonts/dealer-sans.woff2”) format(“woff2”);
font-display: swap;
}
The browser displays a fallback font first, then replaces it after the custom file arrives.
Use WOFF2 files and limit the number of font families and weights. A page does not need regular, medium, semibold, bold and extra bold when the design uses only two.
Web fonts affect both loading and rendering performance. Incorrect font behavior also creates visible layout movement when the replacement font has different dimensions. web.dev
Action: Keep one primary family, two required weights and a close system-font fallback.
#6: Replace the Automatic Video Player With a Thumbnail
The VDP loaded a full video player before the shopper pressed play.
The player added JavaScript, an iframe and network requests. On the tested page, automatic loading threatened to add about one second after the other speed fixes.
We replaced it with a compressed vehicle thumbnail and a play button. The player loaded only after a click.
Example:
<button class=”video-thumbnail” aria-label=”Play vehicle walkaround”>
<img src=”vehicle-video-cover.webp” alt=”Vehicle walkaround video”>
</button>
The final measured load stayed near 2.6 seconds instead of rising after video implementation.
A poster image usually loads faster than a full video. Google’s web performance guidance recommends controlling preload behavior and using a poster image for video presentation. web.dev
Do not hide the video. Keep the thumbnail visible near the photo gallery. The goal is to delay the player code, not the shopper’s access.
Action: Use a click-to-play thumbnail and load the video iframe only after interaction.
How One Dealer Cut VDP Load Time in 14 Days
One Toyota store was at 4.8s VDP, with 40MB images slowing mobile. After compressing to WebP and lazy-loading below the fold through the Cardealerships.com image CDN, VDP load fell from 4.8s to 2.6s in 14 days.
The UCM reported: “Bounce dropped 18% and VDP views increased 12% without changing inventory.”
The speed changes required 100 minutes of hands-on setup, including 10 minutes to enable the CDN.
Speed Math: A 2.2-Second Cut Produced 240 More VDP Visits
Test results:
Load time: 4.8 seconds to 2.6 seconds
Time reduction: 2.2 seconds
Bounce rate: 62% to 44%
Bounce improvement: 18 percentage points
VDP visits: 2,000 to 2,240
VDP lift: 240 visits, or 12%
At a 2% VDP-to-lead rate:
240 × 2% = 4.8 added leads
The supplied $10,560 estimate treats all 4.8 leads as completed sales. A gross forecast needs a lead-to-sale rate.
At a 20% close rate:
4.8 leads × 20% = 0.96 estimated sales
0.96 × $2,200 gross = $2,112 estimated monthly gross
Annualized:
$2,112 × 12 = $25,344
Track rankings separately. The test query set gained an average of three positions, but content changes, competitors, indexing and search updates also influence position.
Google recommends good Core Web Vitals for user experience and Search, yet it does not promise a ranking increase from a faster score. developers.google.com
Email This Speed Request to Your Website Vendor
Subject: Mobile VDP speed fixes required
“Our five tested mobile VDPs average 4.8 seconds to load. Please complete the following work:
- Convert inventory images to WebP and serve responsive sizes.
- Keep the hero image eager and lazy-load below-the-fold images.
- Defer noncritical chat, heatmap and tracking scripts.
- Serve static files and images through an edge CDN.
- Remove unused font weights and apply font-display: swap.
- Replace auto-loaded video players with click-to-play thumbnails.
Please provide before-and-after PageSpeed results, Core Web Vitals field data when available, total page weight, image weight and third-party script count. Confirm call tracking, consent, pricing, forms and digital retailing still work after deployment.”
Do not accept one desktop screenshot as proof. Test five live VDPs on mobile, repeat each test and compare the median.
Related: We Tested 7 Website Providers: 3 Failed Mobile Call Tracking in 48 Hours
Related: 5 Online Inventory Filters That Help Dealers Generate 10% More VDP Visits in 2026
Sponsored by Gas.net — powering dealership growth through intelligent data.
Alt text: “Gas.net connects franchise dealers with integrated analytics and marketing tools.”