Make an e-commerce catalog usable by AI shopping agents
A reliable agent-facing catalog pairs current product data in Markdown with narrowly scoped MCP actions for availability, cart changes and checkout.
A cleanup of image and icon loading shows how redundant preloads can compete with the content they are meant to speed up.
Preloading is a request to the browser: fetch this resource early because the page will need it soon. That can help when the browser would otherwise discover a critical asset late. It can also waste bandwidth and compete with more important work when the hint points at images that are below the fold or never used.
A recent asset cleanup at BuiltToWinWeb illustrates the distinction. The changes remove preload hints for gallery images that were also marked for lazy loading, keep a preload for the above-the-fold hero image, and replace a misapplied icon stylesheet loading pattern. The details offer a useful checklist for teams investigating slow Largest Contentful Paint (LCP) or browser warnings.
The hero mascot is the image above the fold, so it is the logical candidate for an early request. The site now preloads only that image. The supplied implementation notes identify the selected hero candidate as 240 pixels wide and 4.5 KB, and warn that the preload’s srcset and sizes values need to stay aligned with the image markup in the hero template.
That alignment matters. A preload that names one image while responsive markup selects another may fetch an asset the browser does not use. The hint then adds network work without advancing the visible page. When testing a responsive page, check the selected image at the viewport sizes that matter, not only the desktop source in the HTML.
Preload is also not a general-purpose way to make every image faster. Each early request competes for network capacity and browser attention. A useful rule is to reserve it for a small number of resources that are both important to the first screen and otherwise likely to be discovered late. The browser’s network panel and console can help confirm whether a hinted resource was requested and whether it was used.
The gallery contained eight previews for categories including accounting, boutique, electronics and cafes. They are rendered below the fold with loading="lazy". Yet the page also preloaded those images. Those instructions pull in opposite directions: one asks for an early, high-priority fetch; the other says the image can wait until it approaches the viewport.
Removing the gallery preloads gives the browser room to fetch assets needed for the initial view, including the hero and web font. It does not make the gallery images unavailable. Their normal markup can request them when needed. This is a small code change with a clear purpose: avoid spending early bandwidth on content the visitor has not reached.
When auditing a build, compare preload declarations with the rendered page, not just the asset list. Look for duplicate URLs, below-the-fold images, responsive image candidates that do not match, and resources already covered by browser discovery. A warning that a preloaded resource was not used is a prompt to inspect that relationship, not a reason to add more hints.
The same cleanup addressed an icon stylesheet. The previous loading approach left the CSS available only to users without JavaScript, so icons on the regular page did not render. The revised all.css is a 4.8 KB subset containing the 97 icons in use and loads as a plain stylesheet, without a JavaScript loader or a separate noscript copy.
For a small, known icon set, a compact stylesheet can be easier to reason about than a loading mechanism that depends on script execution. The important checks are practical: does the CSS reach normal visitors, does it contain only what the site needs, and does it arrive early enough for the icons to appear with the page? A file’s small size does not help if the loading path prevents it from applying.
These changes improve the loading plan, but the available implementation details do not include before-and-after LCP measurements. That means they are evidence of reduced preload waste and a repaired stylesheet path, not proof of a specific performance gain. Builders should verify the result in a browser with representative viewport sizes and network conditions, then compare field or lab measurements before claiming an LCP improvement.
The larger lesson is not to preload more aggressively. It is to make each hint agree with the page’s actual rendering strategy. Preload the critical image that will appear immediately. Let lazy-loaded gallery assets wait. Keep responsive image declarations in sync. Load essential CSS through a path that works for ordinary visitors. The browser can prioritize well when the page gives it consistent instructions.
A reliable agent-facing catalog pairs current product data in Markdown with narrowly scoped MCP actions for availability, cart changes and checkout.
A PHP service can verify callers and cap request volume before tool calls reach the database; WebAgentScan can help evaluate the exposed endpoint afterward.
Inspecting HTTP headers in PHP lets you serve lean Markdown to agents without duplicate static files.