This gold-trading site dresses like institutional money, then forgets to hand anyone the paperwork. The hero is doing all the talking while the actual trust signals and call-to-action are hiding in the basement.
https://sag-frontend-mb25.onrender.com/
screenshot
TECHNICAL SUMMARY
Performance is mostly respectable, but the page still wastes effort with 54 KiB of unused JavaScript, 830 ms of render-blocking savings, and an LCP of 3.0 s that’s just slow enough to make a buyer squint. SEO is hamstrung by a canonical pointing to localhost, zero schema, and no robots.txt, which is a charming way to confuse search engines while asking for institutional trust. The fix-first move is obvious: correct the canonical and add structured data, then surface a primary above-the-fold CTA with real trust proof so the page can actually convert the global buyers it’s trying to impress.
Unused JavaScript54 KiBRender-blocking savings830 msLCP3.0 sFCP2.8 s
🔥54 KiB of unused JavaScript is sitting there like dead weight in a bullion vault. The browser is carrying code it never asked for, and the page still thinks that’s a strategy.
💀
Fast enough to tease, not fast enough to impress anyone with money.
→
Compress hero images and switch them to WebP or AVIF so the headline can arrive before the buyer loses patience.
LCP: 3.0 sImpact: highEffort: medium
Why this matters
The LCP is still 3.0 s, so the hero payload is dragging the first meaningful view into a waiting room.
→
Defer non-critical JavaScript and trim render-blocking resources so the page stops making users stare at a blanking act.
TBT: 10 msImpact: highEffort: medium
Why this matters
Even with low TBT, Lighthouse still flagged render-blocking savings of 830 ms, which means the blocking work is hurting perceived speed.
→
Enable CDN caching and long cache TTLs for static assets so repeat visits don’t re-run the same delay theater.
FCP: 2.8 sImpact: mediumEffort: low
Why this matters
The first contentful paint is still 2.8 s, so static delivery is not getting users to visible content quickly enough.
🔥Your canonical points to http://localhost:5173/ while the live page is on https://sag-frontend-mb25.onrender.com/. That’s not SEO; that’s the site giving search engines the wrong office address.
💀
Search engines are being asked to trust a page that can’t even name its own home.
→
Update the canonical tag so it matches the live preferred URL instead of localhost.
The canonical points to localhost while the audited page is live, which confuses duplicate signals and weakens index confidence.
→
Add JSON-LD for Organization and WebSite at minimum so search engines get actual context instead of guessing.
Schema: NoneImpact: mediumEffort: medium
Why this matters
There is no structured data at all, so the page is skipping rich-result and entity context entirely.
→
Create a robots.txt file and explicitly define crawler access, including AI crawlers, so the site stops acting like a locked vault with no label.
robots.txt: MissingImpact: mediumEffort: low
Why this matters
robots.txt is absent, so crawler guidance is missing and crawl behavior is left implicit.
03
DESIGN
93
Images31Missing alt text4Heading count19Font families5
🔥The page has 31 images and 4 missing alt attributes, so the visual system is doing a lot while accessibility gets left outside the showroom. Even the gold bars are getting better treatment than the assistive tech users.
💀
Looks expensive, but the structure still needs adult supervision.
→
Add supporting imagery deliberately where the layout feels sparse so the page looks composed instead of overdecorated.
Images: 31Impact: mediumEffort: medium
Why this matters
The page already uses 31 images, so the issue is not lack of visuals but how the visual support is being deployed.
→
Fix the 4 missing alt attributes so assistive technologies get descriptions instead of silence.
Missing Alt: 4Impact: mediumEffort: medium
Why this matters
Four images lack alt text, which is an avoidable accessibility miss on a site selling trust and legitimacy.
→
Test spacing and alignment across mobile and desktop breakpoints before the page decides to reinvent itself on smaller screens.
Viewport: PresentImpact: lowEffort: medium
Why this matters
Viewport support exists, but responsive behavior still needs validation to ensure the layout holds up across breakpoints.
04
COPY
92
Word count764Sentence count58CTA count6H1 count1
🔥The H1 says "TRUSTED GLOBAL PARTNERS INPRECIOUS GOLD TRADING," and "INPRECIOUS" is welded together like the spacebar gave up. That typo is doing a hostile takeover of the brand story.
💀
It sounds confident until you read the headline and realize the copy tripped at the starting line.
→
Tighten the headline so it states the value proposition in one clean sentence without the glued-together typo.
H1 Count: 1Impact: mediumEffort: low
Why this matters
The page has a single H1, so that one line has to do the heavy lifting and currently stumbles on "INPRECIOUS".
→
Break long paragraphs into shorter sentences and bullets so the 58-sentence wall stops reading like a compliance memo.
Avg Words/Sentence: 13Impact: lowEffort: medium
Why this matters
The copy volume is high for a homepage, so skimmability matters if institutions are supposed to find the value fast.
→
Choose one primary CTA and make it visually dominant instead of repeating six versions of the same ask.
CTA Count: 6Impact: mediumEffort: low
Why this matters
Six CTA labels create choice without hierarchy, which blurs the intended next step.
05
UX
97
Console errors0Broken assets0Missing alt text4Form fields0
🔥Zero console errors is the one sensible adult in the room, and zero broken assets means the page at least shows up to work. That’s the bare minimum, but congratulations on not setting the server on fire.
💀
The page runs cleanly, but the path for a human to do anything useful is still weirdly absent.
→
Ensure navigation and footer links stay consistent across pages so the site feels like one system, not a collection of polite strangers.
Nav/Footer: Nav / FooterImpact: lowEffort: medium
Why this matters
Navigation and footer are present, but consistency still matters for a transactional brand that depends on trust and repeatability.
→
Keep runtime errors at zero with browser smoke tests so the page doesn’t quietly become a demo for preventable bugs.
JS Errors: 0Impact: lowEffort: low
Why this matters
The current console is clean, and that state is worth preserving because a single runtime issue would damage confidence fast.
→
Monitor failed asset requests in production so broken scripts and styles don’t sneak in after launch.
Broken Assets: 0Impact: lowEffort: low
Why this matters
No broken assets are reported now, but ongoing monitoring protects the current stable experience.
06
CONVERSION
79
Form fields0CTA count6Social proof3Canonicalhttp://localhost:5173/
🔥Zero forms and zero input fields on a contact-driven trading site is a bold way to say, ‘Please email us from elsewhere.’ Institutions don’t usually enjoy treasure hunts before they can inquire.
💀
It asks for trust like a seasoned trader, then forgets to make the handoff easy.
→
Add a primary CTA above the fold that matches the core offer so people can act before the hero finishes its monologue.
CTA Count: 6Impact: mediumEffort: low
Why this matters
There are multiple CTAs, but the page still lacks a clearly dominant primary action near the top.
→
Offer a low-friction contact option such as a form, chat, or visible email so contact doesn’t feel like a scavenger hunt.
Contact Path: PresentImpact: lowEffort: medium
Why this matters
A contact path exists somewhere, but the page has zero inputs and no direct capture mechanism visible in the content.
→
Place testimonials, logos, or hard stats near the CTA so the page stops asking for trust without showing receipts.
Social Proof: 3Impact: mediumEffort: low
Why this matters
Three social proof elements are thin relative to the copy volume and transactional intent, especially for institutional buyers.