SAGE owns the CMSAugust 27, 2026You own copy, images, and Cloudflare DNS

Exchange Promo Shop is slow because it ships a 13 MB homepage

myexchangepromos.com is a SAGE PromoPlace / WebExpress storefront. SAGE is the CMS and has complete control of the site except copy and images. You own the Cloudflare zone; they told you not to orange-cloud www, and they run no CDN of their own. On a mid-range phone over Slow 4G, Lighthouse recorded a 59-second Largest Contentful Paint. Almost all of that is oversized PNGs you can replace — one of them is 6.81 MB.

Executive summary

This is a new site (banner: “eff. 8-26-26”) on Kenberma’s catalog, running on SAGE WebExpress. SAGE owns the theme, the JavaScript, compression, cache headers, the iframe catalog, and the Dallas origin. You can change copy and images. You also own the Cloudflare zone for myexchangepromos.com. SAGE instructed you not to turn the proxy on, so www is DNS-only and every visitor hits origin with no CDN. HTML is uncached and uncompressed. The homepage still loads 20 JavaScript files and 13 stylesheets. None of that is the main problem.

The main problem is images, and those are yours to fix. 89% of the homepage is pictures. Several category tiles are print-resolution PNGs displayed at a few hundred pixels. Replace those files this week. Do not wait on SAGE. After that, the rest is a platform ticket: gzip, a real CDN (theirs, or a Cloudflare config they will support), unused JS/CSS, and the iframe catalog. Do not orange-cloud www against their written instruction.

What a visitor downloads on Home
Lighthouse mobile, 60 requests, 12.8 MB transferred.
  • Images11.3 MB
  • Fonts878 KB
  • CSS341 KB
  • JavaScript208 KB
  • HTML36 KB

A healthy marketing homepage is usually 1–2 MB. This one is about 13 MB, and a single PNG is more than half of it.

Platform (from the outside)
Observed from DNS, headers, and HTML — no server login.
CMS
SAGE WebExpress / PromoPlace — SAGE owns the platform
Catalog vendor
Kenberma Products
Origin
208.215.218.15 · www.promoplace.com
Where
Origin in Dallas, TX · AS63148 Quick Technologies Inc.
You can change
Copy, images, and the Cloudflare DNS zone
Cloudflare
Your zone, grey cloud on www — SAGE forbade the proxy, and they run no CDN
HTML cache
Cache-Control: no-cache
Gzip on HTML
None. 36,634 bytes raw.
Catalog
Parent page + iframe to ws.dll/Showroom

Who can change what

SAGE is the CMS and the host. If a row says you cannot change it, it belongs on a SAGE ticket — not in the page builder.

AreaYouSAGE
Copy and images in the page builderYes — this is the only content you can changeProvides the CMS fields
Cloudflare DNS for myexchangepromos.comYes — you own the zoneTold you not to orange-cloud www
CDN / edge cache in front of the storeTechnically possible; SAGE forbade itAlso did not provide a CDN of their own
HTML, theme JS/CSS, compression, cache headersNoComplete control
Catalog iframe (ws.dll/Showroom), image DLL pipelineNoComplete control
IIS / origin servers in DallasNoComplete control

Measured performance

Google Lighthouse 12, mobile emulation, simulated Slow 4G, August 27, 2026. Time to First Byte from this environment was fine (~170–520 ms). The site does not feel slow because the server is “down.” It feels slow because the first screen cannot paint until megabytes of tile images finish.

Performance

55

0–100. 90 is healthy.

LCP

59.2 s

Should be under 2.5 s

FCP

8.1 s

First text/image paint

Speed Index

21.1 s

How fast the page looks filled in

Time to Interactive

59.9 s

Page weight

12.8 MB

60 requests

Total blocking time

50 ms

JS is not the bottleneck

CLS

0.038

Layout shift is acceptable

LCP element: Bags category image (1.png), displayed ~330×330px. 82% of that 59 s is render delay while a 6.81 MB neighboring PNG saturates the connection.

Homepage of myexchangepromos.com showing Exchange category tiles for Bags, a hiring poster used as Events, and Give-Aways

Homepage capture, August 27, 2026. Those three tiles look like small cards. Two of them are multi-megabyte PNGs.

The homepage image bill

Lighthouse estimated 10,176 KB of savings from sizing images to their display size, and 9,315 KB from using JPEG/WebP instead of PNG. Those two audits overlap — they are the same files.

FilePixelsSizeUsed as
kcb33.png2700 × 34956.81 MBGive-aways For Kids tile
m2180-04.png1466 × 12851.52 MBMilitary Star / Bags tile
joinourfamilybanner.png657 × 14781.00 MBEvents tile (hiring poster)
k9714.png1944 × 1828669 KBOffice Products tile
1.png1000 × 1000577 KBBags tile — Lighthouse LCP element
ktk102_navy.png750 × 543326 KBHealth, Fitness & Safety tile
banner.jpg2000 × 650293 KBBottom carousel (one slide)

Ten reasons the site is slow

Ranked by how much they hurt real users, not by how interesting they are. Reasons 1 and 2 are the same fire: the homepage tiles.

  1. 01Critical impactEasy to fixYou (images)
    Homepage tiles are full-resolution product photos, not web images

    The homepage is a grid of category tiles, but several tiles are original camera/PNG files. Give-aways For Kids uses kcb33.png: a 2700×3495 PNG weighing 6.81 MB. Military Star Bags is 1.52 MB. Lighthouse estimates 10,176 KB of savings from sizing images to the pixels they actually display. On a Slow 4G phone that is the difference between a 3-second page and a 60-second page. This is the one high-impact fix you can make without SAGE: export web-sized JPEGs and replace the files in the CMS.

    • Homepage transfer size: 13.1 MB. Images are 11.6 MB of that (89%).
    • LCP 59.2 s; TTI 59.9 s. Main-thread blocking is only 50 ms — this is a download problem, not a JavaScript problem.
    • kcb33.png is displayed in a column that is a few hundred pixels wide. The file is 9.4 megapixels.
  2. 02Critical impactEasy to fixYou (images)
    Photographs are served as PNG instead of JPEG or WebP

    PNG is a lossless format meant for graphics with sharp edges or transparency. Product photos should be JPEG or WebP. Lighthouse’s next-gen format audit estimates 9,315 KB of extra weight from the current files. Re-export the same pictures at 70–80 JPEG quality, 600–800 px on the long side, and land under 80 KB each. SAGE would have to add WebP negotiation; you do not need it if the JPEGs are small.

    • 7 of 8 heavy homepage assets are PNG.
    • The well-behaved tiles (drinkware.jpg, events.jpg, office-products.jpg) are already 11–21 KB JPEGs at 300×300 — proof the platform can serve small images.
    • No srcset, no WebP/AVIF, no width/height attributes, no loading="lazy".
  3. 03High impactPolicy, not engineering to fixYou own the zone · SAGE blocked the proxy
    You own Cloudflare, SAGE forbade the proxy, and nobody is running a CDN

    The zone is yours. Nameservers are Cloudflare, but www is grey-clouded to 208.215.218.15 (Quick Technologies origin in Dallas, hostname www.promoplace.com) because SAGE explicitly told you not to turn the proxy on. That leaves the storefront with no CDN, no edge cache, no Brotli at the edge, and no HTTP/3. SAGE also did not put their own CDN in front. The instruction is not crazy from their side — PromoPlace is sticky-IIS, we.dll cookies, and client-IP logic that breaks if they have never tested orange-cloud — but it is not a reason to have zero CDN. It is a reason for SAGE to either bless a Cloudflare config or provide theirs. Do not orange-cloud www against their written instruction; they will blame Cloudflare on the next outage and close the ticket. Do push back in writing.

    • No cf-ray header. HTTP/2 from origin, serverid rotating 2–11 — PromoPlace IIS farm, not Cloudflare.
    • Images get max-age=1209600 (14 days) but still come from Dallas with no edge copy.
    • Apex myexchangepromos.com 301-redirects to www, adding a round trip before the heavy page even starts.
    • Hosting a static report on webreport.myexchangepromos.com via Cloudflare Pages is unrelated: it does not proxy SAGE’s origin.
  4. 04High impactEasy for SAGE to fixSAGE / QTI
    HTML and the theme stylesheet are not gzipped or Brotli-compressed

    Requesting the homepage with Accept-Encoding: gzip or br still returns 36,634 bytes of uncompressed HTML. The generated theme CSS (/we/we.dll/StyleSheet) is 173 KB uncompressed. Lighthouse estimates 195 KB of text-compression savings. Static files under /distsite/ often are gzipped; the dynamically generated we.dll and ws.dll responses are not. That is a server-config gap, not a content issue.

    • Homepage HTML: Content-Length 36634, no Content-Encoding, Cache-Control: no-cache.
    • Theme CSS: 173,076 bytes, no Content-Encoding, even though it is public and cacheable for 14 days.
    • Font CSS files (source-sans-3.css, archivo.css) are also uncompressed.
  5. 05High impactMedium to fixSAGE theme
    Render-blocking CSS waterfall: 10 stylesheets plus chained @imports

    The <head> loads Bootstrap, Owl Carousel, Flexslider, the entire Font Awesome Pro kit, Slick, Lightbox, Yamm, jQuery UI, Glider, then a 173 KB generated theme sheet. That theme @imports Source Sans 3, Archivo, and webexpress.css. The browser cannot paint until this chain finishes. Lighthouse: 5,920 ms of render-blocking time. 94% of the theme CSS and 99.6% of Font Awesome CSS is unused on the homepage.

    • 13 stylesheet requests, 341 KB transferred.
    • Theme CSS is unminified (Lighthouse: 45 KB of minify savings on CSS alone).
    • CSS references a dead Unsplash URL (source.unsplash.com/… returns 503) and a dozen we.dll/Pic background slots.
  6. 06High impactMedium to fixSAGE theme
    Font Awesome Pro is loaded in full — three icon fonts for a handful of icons

    all.min.css is the complete Font Awesome Pro stylesheet (~98 KB compressed). The homepage actually uses a few solid, regular, and brand icons (search, sign-in, cart, card logos). The browser therefore downloads fa-regular-400.woff2 (386 KB), fa-solid-900.woff2 (320 KB), and fa-brands-400.woff2 (108 KB) — 814 KB of icon fonts. Those fonts also lack font-display: swap, so they delay first paint. Two additional display fonts (Source Sans 3 with weights 200–900, Archivo 100–900) are imported for body text.

    • Fonts are the second-largest resource class: 878 KB across 5 files.
    • Lighthouse font-display insight: 220 ms + 150 ms + 35 ms of invisible text.
    • Light, thin, duotone, and v4-compatibility files exist on the server (another ~1.3 MB) even if unused today.
  7. 07Medium-High impactMedium to fixSAGE theme
    Every page ships a 20-file jQuery plugin kitchen sink

    Homepage JavaScript is 20 separate files: jQuery, jQuery UI (67 KB, ~89% unused), jquery-migrate, Bootstrap, Slick, Owl Carousel, Flexslider, Lightbox, Highslide, Superfish, hoverIntent, Validate, Backstretch, iframeResizer, a French-Canadian datepicker (datepicker-fr-ca.js) on an English US store, plus custom/builder scripts. Most of these power widgets that are not on the homepage. They still parse, and they still compete with images for connections. Product pages add AddToAny, ElevateZoom, Noty, html5shiv from oss.maxcdn.com, and another Highslide copy inside the iframe.

    • 20 script requests / 208 KB on the homepage. Unused JS audit flags jQuery UI at 59 KB wasted.
    • Three empty <video autoplay muted loop> tags with blank src sit in the page-builder output.
    • Main-thread work is only 0.8 s — JS is not the primary slowness, but it is dead weight on every navigation.
  8. 08High on browse/PDP impactHard to fixSAGE platform
    Catalog and product pages load twice: chrome document + iframe storefront

    bags.html (and every category and product URL) is a full WebExpress chrome page that then embeds an iframe to /ws/ws.dll/Showroom or ShowroomDtl. The iframe re-downloads Bootstrap, Font Awesome, the theme CSS (twice — WETheme and WETheme-PS), jQuery, and iframe-resizer. Visitors pay for two documents, two JS runtimes, and a resizer that keeps measuring height. Product detail also pulls third-party AddToAny. This is why category pages feel slow even when they only list two products.

    • bags.html → iframe Showroom?UID=1044294&PageID=23738058&StoreID=457118.
    • PDP /si/3311974233/… → iframe ShowroomDtl?siteID=1044294&ProdID=11974233 (56 KB inner HTML, 18 scripts).
    • iframe HTML is also uncompressed and uncached.
  9. 09Medium impactHard to fixSAGE platform
    Images and CSS are generated through we.dll / ws.dll instead of static files

    Logos, theme CSS, and product thumbs are URLs like /we/we.dll/Pic?UN=1044294&F=C&T=801 and /ws/ws.dll/ShowroomPic?…. That is a Windows ISAPI/DLL pipeline on origin, not a file on a CDN. It adds origin CPU, makes caching headers inconsistent, and prevents easy format negotiation (WebP). Combined with no CDN, every new visitor hits application servers for bytes that should be objects in an edge cache.

    • Logo: /we/we.dll/Pic?UN=1044294&F=C&T=801&Age=1554282924 (18 KB PNG, 455×125).
    • Showroom thumbs are 300×300 JPEGs (~12 KB) — the DLL can resize, the homepage builder just is not using it.
    • CSS still references we.dll/Pic HomeSection1–10 and Age=-1 placeholders (1×1 GIFs).
  10. 10Medium impactEasy–Medium for SAGE to fixSAGE (headers) · you (only if the builder exposes img attributes)
    HTML is uncacheable, static cache is short, and LCP is not prioritized

    Every HTML document is Cache-Control: no-cache, so browsers and any future CDN must re-fetch the page on every visit. Versioned /distsite/ assets are only cached 4 hours. The LCP image has no fetchpriority="high", no preload, and no dimensions. SAGE’s page builder does not expose those attributes as copy/image fields, so this is a platform ticket unless you find an HTML widget. Lighthouse’s LCP breakdown: 82% of the 59 s is render delay after the Bags image has started loading — the 7 MB Kids PNG is clogging the pipe in front of it. Replacing that PNG (step 1) does more for LCP than fetchpriority ever will.

    • All sampled HTML routes (/, /bags.html, /signin.htm, /cart.htm, PDP) send no-cache.
    • Lighthouse: “fetchpriority=high should be applied” on the LCP <img>.
    • Images missing width/height: every homepage tile.
JavaScript loaded on every chrome page
20 files, including plugins the homepage does not use.
  1. 1. jquery.min.js
  2. 2. jquery-ui.min.js
  3. 3. jquery-migrate.js
  4. 4. bootstrap.min.js
  5. 5. slick.min.js
  6. 6. hoverIntent.min.js
  7. 7. superfish.min.js
  8. 8. jquery.validate.min.js
  9. 9. lightbox.js
  10. 10. jquery.flexslider-min.js
  11. 11. iframeResizer.min.js
  12. 12. IFrameUtils.js
  13. 13. jquery.backstretch.min.js
  14. 14. owl.carousel.min.js
  15. 15. scripts.js
  16. 16. datepicker-fr-ca.js
  17. 17. custom.js
  18. 18. builder-scripts.js
  19. 19. highslide-full.packed.js
  20. 20. highslide.config.js
CSS before first paint
10 <link> tags in head, then @imports from the theme sheet.
  1. 1. bootstrap.min.css
  2. 2. owl.carousel.min.css
  3. 3. flexslider.css
  4. 4. all.min.css (Font Awesome Pro, complete)
  5. 5. slick.css
  6. 6. lightbox.css
  7. 7. yamm.css
  8. 8. jquery-ui.min.css
  9. 9. glider.min.css
  10. 10. we.dll/StyleSheet (173 KB theme, uncompressed)
  11. 11. + @import source-sans-3.css, archivo.css, webexpress.css

What should be done, in order

Ordered by a mix of ease, cost, and impact — and by who can actually do the work. Steps 1–2 are yours this week. Step 4 is the Cloudflare fight: do not proxy www against SAGE’s instruction; make them own the “no CDN” outcome. Everything else is SAGE.

1

Replace the homepage tile images with web-sized JPEGs

MassiveEasy

Who: You — image upload in the SAGE CMS|Cost: None — export and re-upload

This is the only change that does not require SAGE. Export each category photo at 800 px on the long side, JPEG quality ~75, sRGB. Target under 80 KB per tile. kcb33.png (6.81 MB) should become ~50 KB. Expected homepage weight: ~13 MB → well under 1.5 MB. LCP should drop from ~60 s toward a few seconds on mobile.

2

Stop using PNG for photographs; keep PNG only for the logo

MassiveEasy

Who: You — same image uploads|Cost: None

Same files as step 1. SAGE would have to add WebP; you do not need it. The existing 300×300 JPEGs on Military Star tiles (drinkware.jpg, events.jpg) are the template to copy.

3

Ask SAGE for lazy-load, width/height, and fetchpriority on builder images

High after the files themselves are smallEasy for them

Who: SAGE — the builder does not expose these as copy/image fields|Cost: None–low

You can replace the bytes; you probably cannot add loading="lazy" or fetchpriority="high" unless SAGE’s widget has those checkboxes. Put it on the platform ticket. After step 1, this is no longer the difference between 60 s and 3 s — it is polish.

4

Do not orange-cloud www against SAGE’s instruction. Demand a CDN in writing.

HighMedium politically

Who: You (Cloudflare zone) + SAGE (origin)|Cost: Free either way

You control the zone. SAGE told you not to proxy www. Honor that on the storefront — if cart/sign-in/we.dll break, they will close the ticket and blame Cloudflare. What is ridiculous is the combination: they forbid the CDN you already pay for, and they run none of their own. Ask them, in writing, for one of: (a) a blessed Cloudflare config (Full Strict SSL, cache /files/ and /distsite/, bypass HTML/POST/cart/signin, restore client IP), or (b) their CDN in front of PromoPlace. A static Pages host on webreport.myexchangepromos.com does not proxy their origin and is not this fight.

5

Enable gzip/Brotli on HTML and we.dll / ws.dll responses

HighEasy for them

Who: SAGE / QTI — you cannot change this|Cost: None (server config)

Static /distsite/ files already gzip. Dynamic HTML (36 KB) and theme CSS (173 KB) do not. Ask SAGE: “Please enable dynamic compression on WebExpress HTML and StyleSheet responses for site 1044294.”

6

Strip unused JS/CSS from the theme: carousels, Highslide, FR datepicker, empty videos

Medium-HighMedium

Who: SAGE theme — you cannot remove these files|Cost: Low (theme support time)

Homepage does not need Owl, Flexslider, Slick, Glider, jQuery UI, Highslide, Backstretch, or datepicker-fr-ca.js. The empty autoplay <video> blocks are page-builder output SAGE should stop emitting. Fewer render-blocking CSS files means FCP (currently 8.1 s) moves first.

7

Replace Font Awesome Pro “all.min.css” with a subset or inline SVGs

HighMedium

Who: SAGE theme|Cost: Low

The page needs ~10 icons. Shipping 814 KB of icon fonts is indefensible. A 10-icon SVG sprite is under 5 KB. If they must keep FA, load only fa-solid + fa-brands, subset the CSS, and set font-display: swap.

8

Cache HTML briefly; cache /distsite/ for a year

MediumMedium

Who: SAGE (and a CDN they approve)|Cost: None–low

HTML Cache-Control: no-cache forces a full origin fetch on every page view. A 60–300 s cache with purge-on-publish is enough. Static assets already have versioned paths and can be max-age=31536000, immutable. This is why SAGE’s “don’t use Cloudflare” stance hurts: without any CDN, these headers only help the one Dallas origin.

9

Stop embedding the catalog in an iframe (flat pages)

High on browseHard

Who: SAGE platform|Cost: Platform limitation

Category and PDP chrome + iframe doubles CSS/JS and delays product images until the parent has loaded. Ask SAGE whether WebExpress Pro can render showrooms inline. If not, this is a reason to evaluate a modern storefront that still pulls SAGE product data.

10

If SAGE will not compress, CDN, or flatten the iframe, plan an exit

Highest long-termHard

Who: Your team|Cost: Highest — rebuild

Steps 1–2 are yours and will make the site feel transformed. Everything else is SAGE. Only pursue a rebuild if they decline compression and a CDN after the image work is done. Do not rebuild first; the 7 MB PNG is the fire.

Your image work, then the SAGE ticket

Replace the tiles yourselves. Then send SAGE the platform list. Do not ask them for permission to resize JPEGs, and do not orange-cloud www until they put a supported config in writing.

Your checklist
CMS image uploads only. No SAGE ticket required.
Do this in the SAGE page builder. SAGE is not required.

Replace these homepage tiles with JPEGs, ~800px on the long side, quality ~75, under 80 KB each:

• files/kcb33.png — 6.81 MB, 2700×3495 — Give-aways For Kids
• files/m2180-04.png — 1.52 MB — Military Star Bags
• files/joinourfamilybanner.png — 1.00 MB — Events (hiring poster)
• files/k9714.png — 669 KB — Office Products
• files/1.png — 577 KB — Bags (this is the LCP image)
• files/ktk102_navy.png — 326 KB — Health, Fitness & Safety

Copy the pattern of the small Military Star JPEGs (drinkware.jpg, events.jpg, ~11–21 KB). Keep PNG only for the logo.
Suggested SAGE email
Compression, CDN policy, builder attributes, unused JS.
Subject: myexchangepromos.com (WebExpress site 1044294) — performance, compression, and CDN

We measured the new Exchange Promo Shop on 27 Aug 2026 (Lighthouse mobile, Slow 4G): Performance 55, Largest Contentful Paint 59.2 s, page weight 13 MB. Time to First Byte was fine (~170 ms). This is payload and platform, not an outage.

We will replace the oversized homepage PNGs ourselves. We need SAGE for everything else.

Please:
1. Enable gzip/Brotli on HTML and on /we/we.dll/StyleSheet and ws.dll responses. Static /distsite/ files already compress; dynamic responses do not. Theme CSS is 173 KB uncompressed.
2. Provide a CDN. You asked us not to orange-cloud www on our Cloudflare zone. We will not do that against your instruction. You also are not running a CDN of your own, so every visitor hits Dallas origin 208.215.218.15. Please either (a) bless a Cloudflare proxy config (Full Strict SSL, cache /files/ and /distsite/, bypass HTML/POST/cart/signin, restore client IP) or (b) put PromoPlace behind your CDN.
3. Add loading="lazy", width/height, and fetchpriority on page-builder images. Those attributes are not available to us as copy/image fields.
4. Stop shipping unused homepage JS/CSS: Owl, Flexslider, Slick, Glider, jQuery UI, Highslide, Backstretch, datepicker-fr-ca.js, and the empty autoplay <video> tags. Replace Font Awesome Pro all.min.css (three font files, 814 KB) with a subset.
5. Confirm whether showrooms can render inline instead of in an iframe (ws.dll/Showroom). Category and PDP currently load the theme twice.

We are not asking for a redesign. Item 1 is a server setting. Item 2 is the gap your “don’t use Cloudflare” policy created.

Method and limits

What was measured

  • curl timings, headers, compression, and redirects on HTML, CSS, JS, and images
  • Image dimensions via file inspection (PNG/JPEG headers)
  • DNS (Cloudflare NS, A record to QTI origin)
  • HTML of Home, category pages, product detail, and showroom iframes
  • Lighthouse 12 mobile performance, August 27, 2026

What this is not

  • Not a server-side profile — no IIS, database, or SAGE admin access
  • Not a CrUX/field-data report (too new / noindex on pages we sampled)
  • Pages send robots: noindex, so Google field data may stay empty
  • TTFB from a well-connected US probe is not the same as a phone in the field

Re-test after the image replacements: PageSpeed Insights. Target: LCP under 2.5 s on mobile, homepage under 1.5 MB.