“A polished parts dealer with a traffic jam disguised as a homepage.”
Al-Kadi’s site looks like it knows the road, then immediately swerves into a beige-panel pileup. The trust badges are shouting from the sidelines while the hero, navigation, and cookie banner all fight for the ball like it’s extra time and nobody remembered the playbook.
https://al-kadi.com/
screenshot
TECHNICAL SUMMARY
The site is broadly indexable and socially ready, but the execution keeps tripping over itself. Performance is the main drag: LCP is 2.6 s, FCP is 2.5 s, Interactive is 12.3 s, TBT is 1,670 ms, and Speed Index is 18.1 s, which is a brutal sprint for a truck parts brand that should feel dependable. SEO is decent with a valid robots setup and 2 JSON-LD blocks, but the empty canonical and broken heading order are leaving duplicate-signal and structure confusion on the table. UX also takes hits from 3 layout shifts, 1 broken asset request, and a hero that competes with itself instead of guiding the user.
🔥Your LCP of 2.6 s isn’t a disaster, but your Interactive time of 12.3 s makes the page feel like it’s changing tires in slow motion.
💀
The page shows up reasonably fast, then spends the rest of the match standing around arguing with its own JavaScript.
→
Defer non-critical scripts and split the 185 KiB of unused JavaScript so the main thread stops acting like a toll booth.
→
Inline critical CSS and reduce render-blocking assets to recover the estimated 1,940 ms.
→
Audit the hero images and above-the-fold media so the largest content paints before the page starts its full existential crisis.
02
SEO
75
SEO score83JSON-LD blocks2CanonicalmissingHeading skips5 skip patterns
🔥You’ve got 2 JSON-LD blocks and 0 parse errors, which is nice, but the empty canonical URL is basically SEO saying ‘pick a favorite child’ and walking away.
💀
The crawl signals exist, but the canonical gap and broken heading ladder make the page feel semantically overcaffeinated.
→
Add a self-referencing canonical tag on every indexable page so search engines stop guessing.
→
Rebuild headings so the page starts at H1 and moves in order without the h1→h4 and h3→h6 detours.
→
Keep the existing schema, but add breadcrumb and product markup where relevant to strengthen rich-result eligibility.
03
DESIGN
80
Images36Missing alt attributes2Layout shifts3CLS0.129
🔥You’ve got 36 images and 2 missing alt attributes, which is a small but very specific way to whisper ‘we almost cared.’
💀
The design is professional, but the moving parts and font pileup make it feel like a showroom with a slightly loose display rack.
→
Trim the font stack to 2–3 families max and standardize heading weights for cleaner hierarchy.
→
Set explicit width and height on all images to eliminate the 3 layout shifts and stabilize the page.
→
Fix the 2 missing alt attributes with descriptive, product-specific text so accessibility doesn’t get left in the showroom dust.
04
COPY
84
Word count954Sentence count54H1 count2CTA texts4 CTAs, including Facebook twice
🔥954 words across 54 sentences means the page has plenty to say, but the H1s—‘Together on the Roads’ and the FORVIA HELLA partnership—are doing brand poetry while the product story waits in the lobby.
💀
The writing sounds established and credible, but the CTA language keeps drifting toward branding theater instead of buyer momentum.
→
Make one H1 the primary product/value statement and move partnership messaging into a secondary section.
→
Replace the duplicate Facebook CTAs with action-first labels like Request Quote, Browse Catalog, or Talk to Sales.
→
Turn the citability blocks into tighter proof points with scannable bullets for inventory, coverage, and response speed.
05
UX
64
Interactive12.3sTBT1,670msCLS0.129Broken assets1
🔥Interactive at 12.3 s with 1,670 ms of TBT means the page makes users wait long enough to question their career choices.
💀
The user can get around, but every major interaction arrives with enough friction to make the journey feel heavier than it should.
→
Reduce main-thread work by deferring non-essential scripts and splitting long tasks above 50 ms.
→
Reserve space for media, banners, and hero elements so the 3 layout shifts stop shuffling the interface.
→
Fix or remove the broken analytics request so monitoring works without tripping over a net::ERR_ABORTED faceplant.
06
CONVERSION
95
CTAs4Forms3Inputs34Links69 total
🔥You’ve got 4 CTAs, 3 forms, and 34 inputs, which is either a lead engine or a paperwork simulation depending on how brave the visitor feels.
💀
The conversion machinery exists, but the page throws so many exits, forms, and links at users that commitment becomes a side quest.
→
Collapse the page to one primary conversion goal and make every CTA support that single action.
→
Shorten the forms by removing optional fields and grouping the 34 inputs into fewer, smarter steps.
→
Reduce the number of competing links above the fold so the quote path is the loudest thing on the page.