AXY Global

Conversion Rate Optimization Audit  ·  axyglobal.com/en  ·  September 2026

Overview of Issues

axyglobal.com is a single-page lead-generation site, so it was audited as one: the funnel is Hero → Services → Cases → Reviews → Team → Audit CTA → Contact form. The 15 blocks below map to that funnel rather than to an ecommerce catalogue. The good news first: the strategic foundation here is genuinely strong. The positioning (“We are active sellers, so we know every step”) is sharp, the case studies carry real numbers, the team is named and shown, and the analytics stack (GTM, GA4, Meta Pixel, Clarity, UTM + country capture) is better instrumented than most agency sites.

The problem is that almost every one of those strengths is undermined by a small technical defect — and the defects cluster exactly where money is made. Three findings stand out. First, the hero video is encoded in H.265/HEVC, a codec Chrome and Firefox cannot decode on Windows or Linux; we verified in-browser that an H.264 control video plays while this one reports a zero-pixel video track. With no poster fallback, a large share of desktop visitors land on a blank rectangle occupying half of the first screen. Second, the case-study “Learn More” buttons are styled opacity:0 and revealed only on :hover — which does not exist on touch devices, so the site’s single best sales asset (detailed Challenge / What-Was-Done breakdowns with their own CTA) is unreachable for every mobile visitor. Third, all six legal links across the EN and RU sites return 404, including the privacy-policy link inside the consent checkbox users must tick to submit the form.

The lead form itself is the biggest single conversion lever. It opens from a button that promises a “Free Audit” but is titled “Contact Us”, then asks — as its very first required field — how much money the visitor is ready to invest. It requires both a phone number and a messenger handle, and it never collects an email address, which means there is no nurture list, no way to deliver the promised audit document, and no email retargeting for the ~97 % who don’t convert on the first visit. On success the user gets a 1.5-second button flash and the modal closes — no confirmation, no expectations set, and no thank-you URL to use as a conversion goal.

Performance compounds all of it. Measured cold with caching disabled, the desktop page transfers 10.6 MB — including that 5.2 MB undecodable video and two team avatars shipped as 848×1000 PNGs (952 KB and 1.1 MB) to be displayed at 80×80 px. On a throttled mobile connection LCP lands at 12.3 seconds, and mobile still downloads a 1.6 MB hero image that is hidden on mobile and never rendered. Not one image on the site uses WebP or AVIF.

None of this requires a redesign. The layout, copy and proof assets are already good — they are being let down by a broken codec, an invisible button, six dead links, a mis-ordered form and an unoptimised image pipeline. Everything in this report is a fix, not a rebuild: 84 development hours in total, with the 11 Critical items — the ones standing directly between traffic and booked calls — accounting for 37 of them.

16
Critical Issues
28
Warnings
51
Done Right
12.3s
Mobile LCP

The three fixes that matter most

1. Re-encode the hero video to H.264 + add a poster image. Half of the first screen is currently blank for Chrome/Firefox desktop users — the single most expensive pixel-area on the site.   2. Make the case-study “Learn More” buttons always visible. One CSS rule unlocks your strongest proof content for 100 % of mobile traffic.   3. Rebuild the lead form: add an email field, move the budget question to last (or make it optional), retitle it to match the “Free Audit” promise, and add a real thank-you state. Combined, these are roughly 16 hours of work and they sit directly on the revenue path.

Suggestions — Entry & First Impression
Desktop 1440×900 · Homepage
1. Header & Navigation
Good
AXY header and navigation, desktop
Header on load — logo, 6-item nav, RU/EN switcher and a persistent “Book a Consultation” CTA.
Issues to Fix
⚠️ No direct phone or response-time signal in the header

The header offers only “Book a Consultation”. For a B2B agency asking visitors to commit budgets of $5k–$50k+, there is no phone number anywhere on the site (tel: links = 0) and no indication of how fast anyone replies.

Fix: add a clickable phone or a “We reply in <2h” micro-label next to the header CTA. Prospects who want to talk now currently have no fast path.

⏱ Estimated: 1 dev hour

What's Done Right
✅ Sticky header with smart hide-on-scroll

Verified across scroll positions: the header sits at top:12px at rest, retracts while scrolling down, and returns instantly on scroll-up — reclaiming screen space without ever losing the CTA. This is the correct pattern, implemented properly.

✅ Primary CTA is always one click away

“Book a Consultation” is pinned in the header on desktop and inside the mobile menu, and 6 separate CTAs across the page all open the same lead form with a tracked source value.

✅ Clean, non-overloaded navigation

Six items, no mega-menu, no clutter. Platform links (Amazon / TikTok Shop / Shopify) jump to the Cases section and switch the relevant tab — a smart way to serve three audiences from one page.

✅ Bilingual EN / RU switcher

Language toggle is visible in the header, and hreflang tags for en, ru and x-default are correctly declared in the markup.

Desktop 1440×900 · Hero / Above the fold
2. Hero Section & Primary CTA
Critical
AXY hero section with empty right-hand area
Captured in Chrome: the right half of the hero — where banner.mp4 should play — renders as an empty area.
Issues to Fix
🔴 Hero video uses H.265/HEVC — it cannot play in Chrome or Firefox

banner.mp4 is encoded as HEVC (H.265), 1920×1080, 7.8s, 5.2 MB. HEVC in MP4 is not decodable by Chrome on Windows/Linux without an OS-level HEVC extension, and is unsupported in Firefox.

Verified directly in-browser: canPlayType('hvc1') returns empty (unsupported), the hero video reports videoWidth: 0, while a control H.264 clip loaded on the same page decodes normally at 320×176. The video element is therefore rendering nothing.

Net effect: roughly half of the most valuable screen area on the entire site is blank for a large share of desktop visitors — while still costing them a 5.2 MB download.

Fix: re-encode to H.264/AVC (universal) with a WebM/VP9 alternate source, target ~1.5 Mbps — roughly 1.5 MB instead of 5.2 MB.

⏱ Estimated: 4 dev hours

⚠️ No poster image on the hero video

The <video> has no poster attribute. There is no fallback frame while the file downloads, if autoplay is blocked, if the user has data-saver or reduced-motion enabled — or, as here, if the codec cannot be decoded. A poster would have masked this bug entirely.

Fix: add poster="hero-frame.webp" so the area always shows a meaningful image.

⏱ Estimated: 1 dev hour

⚠️ Sub-headline is three dense sentences

The hero copy explains three visitor scenarios (don’t sell yet / already sell / Shopify audit) in one block of small text. The UVP should be readable in ~3 seconds; this needs closer to ten.

Fix: lead with one benefit line, then show the three scenarios as three short bullets or icon chips.

⏱ Estimated: 3 dev hours

What's Done Right
✅ Strong, specific H1

“Launch & Scale Your Brand on Amazon, TikTok Shop & Shopify” names the service and all three platforms — a visitor knows what this company does instantly. Exactly one H1 on the page.

✅ CTA above the fold on both breakpoints

“Get Free Audit” is visible without scrolling on desktop and on mobile (measured at 489px from top in a 844px viewport). Large, high-contrast, unmistakable.

✅ Credibility line directly under the CTA

“10+ years in e-commerce · 1000+ sellers helped” sits exactly where hesitation happens — immediately below the button.

✅ No auto-rotating carousel

A single static hero with one message and one CTA, rather than a rotating slideshow. This is the higher-converting choice and it loads faster.

Suggestions — Offer & Proof
Desktop 1440×900 · Services
3. Services Presentation
Needs Work
Services grid, 10 equal cards
Ten services, all identical visual weight.
Service detail modal
The detail modal is strong — deliverables plus a CTA.
Issues to Fix
⚠️ Ten services with zero hierarchy

All ten cards are visually identical, so nothing signals what AXY is best at or what most clients buy. A cold visitor facing ten equal options tends to choose none — and the page gives no guidance.

Fix: promote 3 flagship services to larger cards with a “Most popular” badge, and collapse the remaining seven into a secondary row.

⏱ Estimated: 5 dev hours

⚠️ Cards carry a name only — no outcome, no price anchor

Each card shows an icon and a title. There is no one-line outcome (“typically +30–40% organic traffic in 90 days”) and no “from $X” anchor, so the visitor must open a modal to learn anything — and has no way to self-qualify on budget before the form demands it.

Fix: add a result line and a starting price (or “custom quote”) to each card, plus an inline CTA inside the section.

⏱ Estimated: included above

What's Done Right
✅ Outcome-focused section headline

“We Impact Specific Metrics and Increase Your Net Profit in Your Pocket” talks about the client’s money rather than the agency’s services — the right framing.

✅ Genuinely useful service modals

Each service opens a modal with a “What’s Included” list, a 💡 Result summary and its own CTA (“I want registration”). This is well-built, persuasive content.

✅ Full-stack offering is clearly communicated

Ten services spanning company registration, sourcing, PPC, creative and SMM credibly support the “full marketing cycle” claim made in the sub-headline.

Desktop 1440×900 + iPhone 390×844 · Cases
4. Case Studies & Results
Critical
Case cards with result badges
Strong cards with metric badges — but note the empty strip at the bottom of each card.
Case detail modal with challenge and actions
What sits behind the invisible button: Challenge, What Was Done, and a CTA.
Issues to Fix
🔴 “Learn More” buttons are invisible — and unreachable on mobile

The stylesheet contains: .portfolio-case .case-details-btn { opacity: 0 } with the button revealed only by .portfolio-case:hover.

Verified on desktop: all four Amazon case buttons measure 240×40 px at opacity: 0 after a full scroll and settle. Verified on an emulated iPhone: the same buttons are 292×40 at opacity: 0 with pointer-events: auto.

Touch devices have no hover state, so on mobile these buttons are permanently invisible yet still tappable — users can trigger a modal by accident, and nobody can find it on purpose. The case modals are the most persuasive content on the site (Challenge / What Was Done / “I want the same project” CTA) and they are effectively hidden from all mobile traffic — which, for TikTok and Meta ad traffic, is the majority.

Fix: show the button by default; if a hover flourish is wanted, gate it behind @media (hover: hover) so touch devices always get the visible state.

⏱ Estimated: 2 dev hours

⚠️ Every case is anonymous

Cases are labelled by category — “Beauty Brand”, “Fashion Apparel”, “Kids Furniture”. With bold claims like “$100k+ in 2 days” and “ROAS 5.2x” and no brand name, logo, or client quote attached, a sceptical buyer has nothing to verify.

Fix: name the brands you have permission to name, add logos, or attach a screenshot of the Seller Central / Shopify dashboard behind each number.

⏱ Estimated: 3 dev hours

What's Done Right
✅ Ten cases segmented by platform

Amazon (4), TikTok Shop (3) and Shopify (3) in a clean tab system, so each traffic segment sees relevant proof. Tabs are also reachable straight from the header nav.

✅ Specific, believable metrics

“Sales +400% in 6 months, ACoS 18%”, “ACoS reduced 35%, organic traffic +80%”, “1,500 sales in 4–5 months”. Real KPIs in the language sellers actually use — far stronger than generic “we grow your brand” claims.

✅ Result badge on every card image

The headline metric is overlaid on the photo, so the outcome is readable at a glance without reading body copy.

✅ Case modals convert, not just inform

Each modal ends with a pinned “I want the same project” button that opens the lead form — the right way to turn proof into a lead. This asset just needs to be discoverable.

Desktop 1440×900 · Reviews
5. Reviews & Social Proof
Critical
Reviews section built from chat screenshots
“What Clients Say” — a wall of Telegram screenshots, mostly in Russian, many clipped.
Reviews lightbox showing a small Russian screenshot
“Open in Fullscreen Mode” renders a 716×166 image on a 1440px screen.
Issues to Fix
🔴 The reviews on the English site are written in Russian

The social-proof section is a grid of raw Telegram chat screenshots, and the large majority are in Russian — on the /en/ page, which targets English-speaking Amazon, TikTok Shop and Shopify sellers.

The lightbox we captured reads “Приветствую! Ещё вчера команда зап… / Супер! Отличные новости!! Спасибо!”. An English-speaking prospect gets zero persuasive value, and the mismatch signals that the page was not really built for them.

Fix: rebuild this as structured English testimonials — name, company, platform, result and photo — using the chat screenshots only as a secondary “verified” thumbnail. Keep the Russian originals on /ru/.

⏱ Estimated: 8 dev hours

🔴 “Fullscreen” mode opens a 716×166 px image

The lightbox image is only 716×166 px at natural size, displayed centred in a 1440×900 viewport surrounded by empty black space. Even at full attention the chat text is barely legible, and several cards in the grid are clipped by the container edges.

Fix: export the source screenshots at 2× and scale them to fit the lightbox, or replace with rendered testimonial cards that stay sharp at any size.

⏱ Estimated: included above

⚠️ No names, no ratings, no aggregate score

There is no star rating, no review count, no reviewer name, company or role, and no aggregate AggregateRating schema. Chat screenshots alone can’t carry the trust load at this stage of the funnel.

Fix: add a headline metric (“4.9/5 from 120+ sellers”) and attribute every testimonial.

⏱ Estimated: 2 dev hours

What's Done Right
✅ The raw material is authentic and worth keeping

Unedited client chats are inherently more credible than polished quote cards — “Real reviews from our working chats” is a strong, honest angle. The asset is right; only the language and presentation need fixing, which is why this is a rebuild of the section and not new proof-gathering.

Desktop 1440×900 · Team
6. Team & Authority
Good
Team section with orbital photo layout and counters
Named founder, six team members with roles, and animated 10+/1000+ counters.
Issues to Fix
⚠️ Faces are shown at 80×80 px — too small to build trust

Each team photo renders at 80×80 px. At that size faces are barely readable, which wastes the strongest trust asset on the page. (The same images are also the site’s worst performance offender — see Block 13.)

Fix: enlarge to 120–160 px, and make the founder’s card visually dominant.

⏱ Estimated: 3 dev hours

⚠️ A “Partner” placeholder and no verifiable credentials

One node in the orbit is a generic handshake icon labelled “Partner”. Team members show a first name and role only — no LinkedIn links (except the founder’s, which is hidden, see Block 9), no certifications, no “ex-Amazon” style credibility markers.

Fix: replace the placeholder with a real partner logo and add a LinkedIn link per person.

⏱ Estimated: included above

What's Done Right
✅ Best positioning line on the site

“We Are Active Sellers, So We Know Every Step” separates AXY from consultants who have never sold anything. This differentiator deserves to be repeated in the hero.

✅ Named, accountable founder

“Founder Azat Shakurov — CEO Axy Company” with a photo. A real name attached to the promise is a meaningful trust signal in a market full of anonymous agencies.

✅ Concrete experience claims

10+ years, 1000+ sellers, and a named platform list (Amazon, Shopify, TikTok Shop, AliExpress, Ozon, Wildberries, Yandex Market) — specific rather than vague.

✅ Animated counters draw the eye to the numbers

The count-up effect on 10+ and 1000+ makes the credibility stats the focal point of the section.

Suggestions — Conversion Path
Desktop 1440×900 · Lead form modal
7. Lead Form — The Money Block
Critical
Lead form modal titled Contact Us
Opened via “Get Free Audit” — but titled “Contact Us”, and the first question asks for budget.
Issues to Fix
🔴 The first required field asks how much money you'll spend

Field order is: budget → name → phone → messenger, and the budget dropdown is required. The first thing a cold visitor is asked — right after being promised something free — is “How much are you ready to invest in business development right now?”

This inverts the trust sequence. Visitors who don't yet know their budget, or who aren't ready to declare it, simply close the modal. Qualification is a sales-call job, not a first-touch job.

Fix: move budget to the last position and make it optional, or replace it with a softer qualifier (“What stage are you at?”). Ask for money after you've given value, not before.

⏱ Estimated: 6 dev hours (covers the full form restructure below)

🔴 The form never collects an email address

The submitted payload is budget, name, phone, telegram, source, country, page, utm, language — there is no email field anywhere on the site.

Three consequences: (1) the promised “free audit” has no natural delivery channel; (2) there is no list to nurture, so every non-converting visitor is lost permanently; (3) no email means no email-based retargeting or lookalike seeding for the Meta campaigns already running.

Fix: add email as a required field — it is the single highest-value data point you are currently discarding.

⏱ Estimated: included above

🔴 Offer mismatch: “Get Free Audit” opens “Contact Us”

Every hero and mid-page CTA promises a Free Audit. The modal that opens is headed “Contact Us” with the sub-line “Fill out the form and we will contact you shortly”. The offer the visitor clicked for disappears at the exact moment they decide whether to complete the form.

Fix: retitle to “Get Your Free Store Audit” and list what they'll receive (e.g. “listing review + PPC check + 3 growth actions, within 48h”).

⏱ Estimated: included above

🔴 No thank-you state after submitting

On success the submit button reads “✓ Sent!” for 1.5 seconds, then the modal closes and the user is returned to the page. There is no confirmation screen, no “we'll reply within X hours”, no next step, and no thank-you URL.

That last point also breaks measurement: with no destination page, GA4 and Google Ads have no URL-based conversion to optimise toward, and users who miss the 1.5-second flash may submit twice.

Fix: replace with a persistent success panel (or /thank-you route) stating response time and offering an immediate next step — book a slot, or join the Telegram channel.

⏱ Estimated: 3 dev hours

⚠️ Both phone and messenger are required

phone and telegram are each marked required, so the visitor must hand over two separate contact channels before anyone has spoken to them. For US and EU buyers especially, a mandatory phone number is a known drop-off point.

Fix: require one contact method; offer the second as optional.

⏱ Estimated: included above

⚠️ Consent checkbox is pre-ticked

The markup is <input type="checkbox" name="privacy" required checked>. Under GDPR, pre-ticked boxes do not constitute valid consent (CJEU Planet49, C-673/17) — and the policy it references returns a 404 (Block 9). Since AXY collects name, phone and messenger from EU visitors, this is a live compliance exposure and a risk flag for ad-platform review.

Fix: ship it unchecked and point the link at a working policy page.

⏱ Estimated: 1 dev hour

⚠️ No autofill support; validation uses a browser alert()

No field declares autocomplete, so browsers cannot autofill name or phone — measurable friction, especially on mobile. Consent validation fires a native alert('Please confirm…'), which looks like a system error rather than part of the brand.

Fix: add autocomplete="name|tel|email" and replace the alert with inline field-level messaging.

⏱ Estimated: 2 dev hours

What's Done Right
✅ Excellent lead attribution

Each submission captures source (which CTA was clicked), full UTM parameters and the visitor's country via IP lookup. That's better attribution than most agency sites achieve and makes channel ROI measurable.

✅ Redundant lead delivery

Submissions are sent in parallel to Google Sheets, a Telegram notification and a webhook, with each failure caught independently — so a single outage can't silently lose a lead.

✅ The form fits the screen on both breakpoints

Measured on desktop (submit at 666px in a 900px viewport) and on iPhone (submit at 653px in 844px): the button is reachable without any internal scrolling, and the modal never scrolls inside itself. Six CTAs across the page all open it.

Desktop 1440×900 · Audit CTA section
8. Final Call-to-Action Block
Needs Work
Final CTA section, sparse
The page's primary conversion block: a headline, two lines of copy and a small button.
Issues to Fix
⚠️ The closing block carries no trust weight

This is where the page asks for the conversion, and it contains a headline, two sentences and a button — no risk reversal, no “no obligation / no credit card”, no response-time promise, no testimonial, no face, no counter. Visitors who scrolled this far are the warmest on the site and are given the least support.

Fix: add a short reassurance row under the button (“Free · No obligation · Reply within 24h”), one client quote, and the 1000+ sellers stat.

⏱ Estimated: 4 dev hours

⚠️ The “free audit” is never actually defined

The central offer is repeated in six places but never itemised. A visitor cannot tell whether they'll get a 10-minute call, a PDF, or a Loom video — which makes the value impossible to weigh against handing over a phone number.

Fix: list 3–4 concrete deliverables and a turnaround time next to the CTA.

⏱ Estimated: included above

What's Done Right
✅ Low-pressure, generous framing

“We'll review and tell you how you can solve it yourself or with our team's help” removes the fear of a hard sell — a genuinely effective piece of copy for a cold audience.

✅ Single, unambiguous action

One button, one job, no competing links to dilute the decision at the point of conversion.

Desktop 1440×900 · Footer / contacts
9. Footer, Legal & Contact Trust
Critical
Footer with nav, email, messenger buttons
Note: “© 2024”, no social icons under Contacts, and both policy links are dead.
Issues to Fix
🔴 Every legal link on the site returns 404 — six in total

The policy files exist at the domain root, but the links are written as relative paths, so from /en/ and /ru/ they resolve to sub-paths that don't exist. Verified:

/en/privacy-policy.html404
/en/refund-policy-en.html404
/en/privacy-policy-en.html (consent-checkbox link) → 404
/ru/privacy-policy.html404
/ru/refund-policy.html404
/privacy-policy.html (actual file) → 200

Users are required to tick “I have read the privacy policy” to submit the form — and the policy is unreachable. Beyond the trust damage, Meta and Google both require an accessible privacy policy on lead-gen landing pages; broken links here put ad accounts at review risk.

Fix: change the four hrefs to root-absolute (/privacy-policy.html). This is a ~15-minute fix and the highest trust-per-hour item in the report.

⏱ Estimated: 1 dev hour

⚠️ Copyright still reads “© 2024”

The footer shows © 2024 AXY Marketing — two years stale. It's a small detail that reads as “this business may not be active any more”, directly above the contact buttons.

Fix: render the year dynamically so it never goes stale again.

⏱ Estimated: 1 dev hour

⚠️ Footer social icons are invisible

LinkedIn, Instagram and Facebook links exist in the footer markup but render at 0×0 px. They use Lucide placeholders (<i data-lucide="instagram">) that were never converted to SVG — window.lucide is loaded and other icons render, but these three were missed by the createIcons() pass.

Result: an agency selling SMM and content services displays no reachable link to its own social channels — they're in the HTML but nobody can see or click them.

Fix: re-run lucide.createIcons() after all sections render, or inline the three SVGs.

⏱ Estimated: 2 dev hours

⚠️ No company identity or phone number

No legal entity name, registration number or address appears anywhere, and there are zero tel: links. For a company that sells US Company Registration as a service and asks for $10k–$50k budgets, omitting its own corporate identity is a conspicuous trust gap for international B2B buyers.

Fix: add entity name, registered address and a phone number to the footer.

⏱ Estimated: included above

What's Done Right
✅ Messenger-first contact options

Prominent WhatsApp and Telegram buttons in the footer, plus persistent floating buttons on every scroll position. For international e-commerce buyers this is often a better fit than a web chat widget — and it means the site does have a live-contact path.

✅ Clear footer navigation and email

Services / Cases / Team / Audit links plus a visible account@axyglobal.com address give users a second route to every section.

✅ Refund policy exists as a document

Having a refund policy at all is a positive signal for a services business — the document is written, it simply isn't linked correctly.

Page-wide · Trust & risk reversal
10. Trust Signals & Risk Reversal
Needs Work
TikTok Shop cases tab
The TikTok tab carries the boldest claims on the site — “$100k+ in 2 days” — with no supporting evidence.
Issues to Fix
⚠️ Big claims, no verification layer

“$100k+ in 2 days”, “5M views”, “25,000 kits/mo”, “ROAS 5.2x”. The numbers are excellent — but nothing on the page substantiates them: no dashboard screenshots, no client names, no dates, no third-party profile (Clutch, Trustpilot, Upwork, Amazon SPN listing).

Fix: attach one piece of evidence per flagship case and link one external review profile. Strong claims without proof read as weaker than modest claims with proof.

⏱ Estimated: 2 dev hours

⚠️ No guarantee or risk reversal anywhere

There is no money-back guarantee, no trial scope, no “no obligation” statement and no SLA next to any of the six CTAs — even though a refund policy document exists.

Fix: surface the refund policy as a short guarantee line near the CTAs.

⏱ Estimated: included above

⚠️ “Official Partners” is asserted, not evidenced

The hero shows Amazon, TikTok and Shopify logos under the heading “OFFICIAL PARTNERS”. Platform logos presented as partnerships are a claim ad reviewers scrutinise; there is no partner ID, badge or directory link to back it.

Fix: link to the official partner directory listing, or relabel to “Platforms we work with”.

⏱ Estimated: included above

What's Done Right
✅ Real people, real chats, real products

Named founder, photographed team, genuine client conversations and authentic product photography. The substance of trust is present — the gap is packaging and verification, not honesty.

✅ Multiple low-commitment contact paths

Email, WhatsApp and Telegram let a cautious buyer start a conversation without filling in a form at all — a sensible pressure valve for high-ticket B2B.

Suggestions — Mobile Experience
iPhone 390×844 · Homepage
11. Mobile — Layout & Navigation
Good
Mobile homepage hero
Mobile hero: text-only, CTA above the fold, partner logos below.
Mobile menu open
Hamburger menu with full nav and the CTA repeated.
Issues to Fix
⚠️ 13 tap targets below the 44×44 px minimum

Measured on a 390×844 viewport: 13 of 21 visible interactive elements fall under the guideline. Footer links (Services, Cases, Team, Audit, the email address, Privacy, Refund) are only ~20 px tall, and case “Learn More” buttons are 40 px.

Fix: raise link line-height/padding to a 44 px hit area. Footer links are the most-missed taps on mobile.

⏱ Estimated: 2 dev hours

⚠️ Mobile hero has no visual at all

Both hero media elements sit inside a hidden lg:block wrapper, so mobile visitors get a text-only hero — no product shot, no team, no result visual — even though the assets are downloaded anyway (see Block 12).

Fix: serve a lightweight, mobile-cropped hero image to fill the gap.

⏱ Estimated: included in Block 2

What's Done Right
✅ No horizontal overflow

Document scroll width measures exactly 390 px against a 390 px viewport — zero sideways scroll, a common mobile defect that this site avoids.

✅ 16px base font size

Body text renders at 16 px with no sub-14 px paragraph text detected, so nothing requires pinch-zoom and iOS won't auto-zoom on input focus.

✅ Clean hamburger menu with the CTA repeated

Full navigation, the language switcher and “Book a Consultation” are all available inside the mobile menu.

✅ No intrusive full-screen popups

No entry interstitial or full-screen overlay interrupts the mobile visit — the floating messenger buttons stay small and unobtrusive.

iPhone 390×844 · Form & mobile delivery
12. Mobile — Form & Payload
Critical
Mobile lead form
Mobile form: fits the viewport, submit reachable without scrolling — but same field-order problems as desktop.
Issues to Fix
🔴 Mobile LCP is 12.3 seconds

Measured cold, cache disabled, on a throttled mobile connection (~1.6 Mbps / 150 ms RTT): FCP 2.3 s, LCP 12.3 s, full load 35.9 s, ~5.0 MB transferred.

Google's “good” threshold for LCP is 2.5 s. At 12 s, a large share of paid mobile clicks bounce before the page is usable — meaning ad spend is being paid for visitors who never see the offer.

Fix: the image pipeline in Block 13 is the cure — compressing and converting images alone should bring LCP under ~3 s.

⏱ Estimated: see Block 13

🔴 Mobile downloads 1.6 MB of hero media it never displays

Network capture on an emulated iPhone shows image.png downloading in full (1,649,432 bytes, HTTP 200) and banner.mp4 also being requested — despite both living inside a hidden lg:block wrapper that hides them on mobile. A hidden <img src> is still fetched by the browser.

So the slowest-connected users pay the largest bandwidth penalty for assets they are never shown.

Fix: swap the desktop-only markup for a <picture> with media sources (or load via JS above the lg breakpoint) so mobile never requests them.

⏱ Estimated: 2 dev hours

⚠️ No numeric keypad hints on mobile inputs

The phone field correctly uses type="tel", but no field sets inputmode or autocomplete, so name and messenger fields miss autofill and optimal keyboards.

Fix: add autocomplete to every field (covered in Block 7).

⏱ Estimated: included in Block 7

What's Done Right
✅ Form fits a single mobile screen

Modal height 844 px in an 844 px viewport with the submit button at 653 px — fully visible with no scrolling inside the modal. Many lead forms fail exactly here; this one doesn't.

✅ Generously sized inputs

Fields use p-4 padding, giving comfortable ~60 px tap heights — well above the touch minimum.

✅ Zero layout shift

Cumulative Layout Shift measured 0.000 on both desktop and mobile — nothing jumps under the user's thumb while loading.

Suggestions — Technical, SEO & Marketing
Measured in-browser · cache disabled · cold load
13. Speed & Technical Performance
Critical
MetricDesktop (1440px)Mobile (throttled)Verdict
Time to First Byte401 ms316 ms✅ Good
First Contentful Paint964 ms2,296 ms⚠️ Mobile slow
Largest Contentful Paint964 ms12,260 ms🔴 Mobile critical
Cumulative Layout Shift0.0000.000✅ Excellent
Full page load2.4 s35.9 s🔴 Mobile critical
Total transferred10,895 KB5,171 KB🔴 Very heavy
Requests4441✅ Lean
JavaScript243 KB / 9 files243 KB / 9 files✅ Light
CSS19 KB19 KB✅ Light
Images5,286 KB / 254,772 KB / 22🔴 Dominant cost
Issues to Fix
🔴 10.6 MB desktop payload, driven by four files

The heaviest assets on a cold desktop load:

banner.mp45,211 KB (the HEVC video that can't even play)
image.png1,611 KB
max.png1,119 KB
azat.png952 KB

Those four files are ~8.9 MB of the 10.6 MB total. The site's HTML, CSS and JavaScript are genuinely lean — this is purely an asset-pipeline problem.

Fix: re-encode the video (Block 2) and run every image through a resize + WebP/AVIF step.

⏱ Estimated: 6 dev hours

🔴 Two 80×80 avatars are shipped as ~1 MB PNGs each

Verified natural vs. displayed dimensions in the team section:

azat.png — natural 848×1000, displayed 80×80 (952 KB)
max.png — natural 848×1000, displayed 80×80 (1,119 KB)
ivan.jpg — natural 853×1280, displayed 80×80

Review and case images repeat the pattern — 1280 px sources rendered at 288–350 px. Correctly sized 160×160 WebP avatars would be roughly 10–15 KB each: a ~98% reduction.

Fix: generate 2× responsive variants per image and serve WebP with srcset.

⏱ Estimated: included above

⚠️ Not a single WebP or AVIF image on the site

Format audit across all 51 images: 20 PNG, 29 JPG, 0 WebP, 0 AVIF. Modern formats typically cut 25–40% at identical quality before any resizing gains.

Fix: convert to WebP with JPG/PNG fallbacks.

⏱ Estimated: included above

⚠️ 41 of 51 images load eagerly; page height jumps during scroll

Only 10 images use loading="lazy". Separately, all sections use content-visibility: auto without contain-intrinsic-size — so document height grows from 3,896 px to 5,617 px as the user scrolls, making the scrollbar jump and shrink under them.

Fix: lazy-load everything below the fold, and declare contain-intrinsic-size per section.

⏱ Estimated: 1 dev hour

What's Done Right
✅ Perfect CLS of 0.000

No layout shift on either breakpoint — impressive given that 41 images ship without width/height attributes. Nothing moves under the user's cursor.

✅ Very light code footprint

243 KB of JS across 9 files and 19 KB of CSS. No framework bloat, no tag-manager sprawl — rare and valuable. The weight problem is entirely in media, which is the easier thing to fix.

✅ Fast server response and desktop paint

TTFB 401 ms and desktop FCP/LCP under 1 second. Hosting and delivery are not the bottleneck.

✅ Clean semantic structure

Exactly one H1, six H2s, a sensible H3 hierarchy, and only one image missing an alt attribute across the whole page.

Markup & crawlability · EN + RU
14. SEO & Indexation
Needs Work
SignalFoundVerdict
Canonical on /en/https://axyglobal.com/🔴 Points away from itself
Canonical on /ru/https://axyglobal.com/ru/✅ Correct
hreflangen · ru · x-default✅ Complete
Open Graph / Twitter7 OG + 5 Twitter tags✅ Complete
Structured data1 JSON-LD block✅ Present
Meta description141 characters✅ Optimal
robots.txt⚠️ 404
sitemap.xml⚠️ 404
Issues to Fix
🔴 The English page tells Google it isn't the original

/en/ declares <link rel="canonical" href="https://axyglobal.com/"> — pointing at the root splash page (title: “AXY Marketing”), not at itself. The Russian page gets this right and self-canonicals correctly.

This sends Google a contradiction: hreflang nominates /en/ as the English version, while the canonical says /en/ is a duplicate of a different URL. The usual outcome is that the full English landing page loses ranking authority to a thin root page — suppressing exactly the organic traffic this site is built to capture.

Fix: set the canonical to https://axyglobal.com/en/ (one line, mirrors what /ru/ already does correctly).

⏱ Estimated: 1 dev hour

⚠️ No robots.txt and no sitemap.xml

Both return 404. With only a handful of URLs this isn't fatal, but a sitemap declaring the EN and RU pages would help Google resolve the language pair correctly — especially while the canonical conflict is being fixed.

Fix: publish a minimal robots.txt plus a sitemap listing both language versions and the policy pages.

⏱ Estimated: 1 dev hour

What's Done Right
✅ Correct bilingual hreflang setup

en, ru and x-default are all declared — the part most bilingual sites get wrong is already right here.

✅ Complete social sharing metadata

7 Open Graph tags and 5 Twitter Card tags, so links shared in Telegram, WhatsApp, LinkedIn or Slack render with a proper preview — meaningful for an agency whose leads arrive via DMs.

✅ Well-formed title and description

A keyword-rich title naming all three platforms, and a 141-character description that fits the SERP snippet without truncation.

✅ Content is server-rendered

The full 149 KB page — cases, team, reviews — is present in the raw HTML for crawlers; nothing critical depends on JavaScript execution to be indexed.

✅ Structured data present

A JSON-LD block ships on the page, giving search engines an explicit organisation entity to work with.

Tracking, attribution & follow-up
15. Analytics & Marketing Automation
Critical
ToolStatusNotes
Google Tag Manager✅ LiveGTM-WR5634BL
Google Analytics 4✅ LiveG-5CBQT3ZJFR — but receives no lead event
Meta Pixel✅ Live1285343753046437 + Lead event
Microsoft Clarity⚠️ DuplicatedTwo projects: wqhxb45k2d + vtlc6avxzj
TikTok Pixel🔴 MissingNot present despite TikTok Shop being a core service
Email platform🔴 NoneNo email is ever collected
UTM + country capture✅ LiveStored with every submission
Issues to Fix
🔴 Conversions are reported to Meta only — GA4 and Google Ads see nothing

On a successful submission the code fires fbq('track','Lead') and nothing else; the source comment states the intent explicitly: “Fire conversion event to Meta Pixel only”.

So GA4 records sessions but never a lead, GTM gets no dataLayer conversion event, and Google Ads has no conversion signal to optimise bidding against. Any Google spend is effectively flying blind, and channel comparison in GA4 is impossible — even though UTM data is being captured perfectly at the form level.

Fix: push a generate_lead event to dataLayer alongside the Meta call, and map it to a GA4 key event plus a Google Ads conversion.

⏱ Estimated: 3 dev hours

🔴 No email capture means no follow-up marketing at all

With no email field anywhere (Block 7), there is no list, no welcome sequence, no nurture for visitors who aren't ready today, and no audience file for email-matched retargeting or lookalikes.

Typically only ~2–3% of first-time visitors to a high-ticket B2B site convert. Right now the other ~97% leave no trace that can be marketed to again — every future touch has to be re-bought as paid traffic.

Fix: add email to the form, connect a platform (Klaviyo/Brevo/Mailchimp), and build a 3-email follow-up for anyone who requests the audit.

⏱ Estimated: 6 dev hours

⚠️ Two Microsoft Clarity projects load simultaneously

Both clarity.ms/tag/wqhxb45k2d and clarity.ms/tag/vtlc6avxzj are on the page, so every session is recorded twice into two separate dashboards — splitting heatmap data, doubling the script cost, and making it unclear which project holds the truth.

Fix: keep one project ID and remove the other.

⏱ Estimated: 1 dev hour

⚠️ No TikTok pixel, and no exit-intent capture

TikTok Shop management is a headline service and a full tab of case studies, yet there is no TikTok pixel — so TikTok traffic can't be retargeted or optimised. There is also no exit-intent offer or lead magnet for visitors who leave without converting.

Fix: install the TikTok pixel, and add a soft exit offer (e.g. a downloadable “Amazon listing checklist”) to capture emails from non-converters.

⏱ Estimated: 5 dev hours

What's Done Right
✅ Meta Pixel with a proper Lead event

fbq('track','Lead', {content_name:'Main Site EN'}) fires only on confirmed success, and is labelled per language version — clean, accurate Meta optimisation data.

✅ Full UTM and geo attribution on every lead

Campaign parameters, the originating CTA and the visitor's country are attached to each submission, so lead quality can be traced back to campaign and geography.

✅ Session recording already in place

Clarity gives heatmaps and recordings — the ideal tool to verify the fixes in this report. (Deduplicate the projects first.)

✅ Leads delivered to three destinations

Google Sheets for records, Telegram for instant notification and a webhook for CRM — with independent error handling, so a single failure can't lose the lead.

✅ GTM already installed

The container is live, so adding GA4 and Google Ads conversion tracking is configuration work rather than a new integration.

Implementation Estimate — Time & Fixed Price

Average dev hours and a fixed price at $40/hour. Suggested order: Critical → Medium → Low.

🔴 Critical Priority — Must Fix
Direct revenue impact. These sit between your traffic and your booked calls.
BlockTaskHours (avg)Fixed Price
9Fix 6 broken legal links (EN + RU) — relative → absolute paths1$40
2Re-encode hero video to H.264 + WebM, compress 5.2 MB → ~1.5 MB4$160
2Add hero video poster fallback image1$40
4Make case "Learn More" buttons always visible (touch-device fix)2$80
5Rebuild reviews as structured English testimonials + fix lightbox scaling8$320
7Form restructure: add email, reorder budget, single contact channel, retitle to match offer6$240
7Thank-you state + response-time expectations + conversion URL3$120
7Uncheck consent box by default (GDPR compliance)1$40
13Image pipeline: resize, WebP/AVIF conversion + srcset across 51 images6$240
12Stop loading desktop-only hero media on mobile (saves 1.6 MB+)2$80
15Send conversion events to GA4 / GTM / Google Ads3$120
Subtotal — Critical37 hrs$1,480
⚠️ Medium Priority — Should Fix
UX friction and trust gaps. Tackle after Critical to compound the gains.
BlockTaskHours (avg)Fixed Price
15Email platform setup + 3-email follow-up sequence6$240
3Service hierarchy: flagship cards, outcome lines, price anchors, inline CTA5$200
8Rebuild final CTA block: deliverables, risk reversal, response time, proof4$160
2Tighten hero sub-copy + add mobile hero visual3$120
9Fix invisible footer social icons + add company identity details2$80
11Raise 13 undersized tap targets to 44×44 px minimum2$80
7Add autocomplete/inputmode + replace alert() with inline validation2$80
10Add guarantee / risk-reversal line and evidence to flagship cases2$80
13Lazy-load below-fold images + contain-intrinsic-size on sections1$40
14Fix /en/ canonical to self-reference1$40
14Publish robots.txt + bilingual sitemap.xml1$40
15Remove duplicate Microsoft Clarity project1$40
9Dynamic copyright year (© 2024 → current)1$40
Subtotal — Medium31 hrs$1,240
🟢 Low Priority — Nice to Have
Polish and longer-term growth. No direct revenue gate.
BlockTaskHours (avg)Fixed Price
15Exit-intent lead magnet to capture non-converting visitors4$160
6Team section: larger photos, per-member LinkedIn, replace "Partner" placeholder3$120
4Add client names / logos / dashboard proof to case cards3$120
7Modal accessibility: Escape-to-close and focus trapping2$80
5Aggregate rating + review count with schema markup2$80
15Install TikTok pixel1$40
1Add phone number / response-time badge to header1$40
Subtotal — Low16 hrs$640
Total Estimated
84 hrs · $3,360 fixed

* Hours are averages and the price is fixed at $40/hour, for development implementation only. Content creation (testimonial translation and re-shooting, video re-cut source files, photography) and third-party subscription costs (email platform, pixels) are not included. Suggested order: Critical → Medium → Low.

Proven Results — Our Approach in Action

Stores on our CRO approach grew Total Sales +19%

The fixes in this report aren't theory — they're the same conversion levers we implement for the stores we work with. Here's the Total Sales curve from a store running our approach versus the previous period:

Total Sales over time — up 19% with our CRO approach

Total Sales over the period: $168,636+19% vs the prior period. Solid line = current (our approach), dotted = before.