Ayan Capital · Organic search

Changes applied to staging

Everything below is live on ayanuk.webflow.io and verified there. Grouped by area, with the before and after state for each change.

Environment ayanuk.webflow.io (staging only)  ·  Live site www.ayan.co.uk — unchanged
Applied 18–19 August 2026  ·  Method Webflow Data API  ·  Reversible yes, all of it

01Structured data

The site had structured data on 1 page of 139, generated by JavaScript. It now has a linked organisation and website entity on every page, server-rendered, with page-specific types layered on top.

ChangeWasNowScope
Organisation + website entity
FinancialService and WebSite with stable @id values
Absent on 138 of 139 pages Every page, server-rendered, one entity Site head
Duplicate company entity removed
Its logo and social profiles were merged into the site-wide entity rather than discarded
A second, unlinked Organization One entity. Profiles 2 → 7, logo added /private-hire
Blog article schema
Moved out of JavaScript into the template's SEO settings, bound to CMS fields
JS-injected, no @id, full article body inlined Server-rendered across all 113 posts Blog template
Article dates "Sep 16, 2025" — not ISO 8601, so discarded 2025-09-16 plus a real dateModified Blog template
Article author and publisher One hardcoded name on every post; publisher unlinked Author from the CMS field; publisher linked to #org Blog template
Breadcrumbs Post title pointing at the category URL; non-www Home › Blog › Category › Post, all www Blog template
FAQ schema removed
Google deprecated FAQ rich results in 2023, so it produced no search feature while obliging the markup to mirror page copy exactly
11 questions, JS-scraped, duplicated on the homepage Removed, along with the scraper that generated it Home + site head
Invalid property fixed
eligibleCustomerType expected a GoodRelations value, not a schema.org URL
1 validator error 0 errors, 0 warnings Site head
Pages with schema139was 1
Company entities1was 2, unlinked
Social profiles7was 2
Validator errors0was 1

02Heading structure

The homepage carried seven H1 elements. Only tags changed — no text, styling or layout was altered by these edits.

ElementWasNowScope
Three process steps (“Add car details”, “Enter dealership bank details”, “Pick up & go”)H1H3Home
Hero fragments (“Introducing” + “Halal car finance”)H1 ×2H2, then consolidatedDesktop Hero
“You’re in good hands”H1H2Trustpilot Slider
Mobile hero titleH1H2 (component retired)Mobile Hero
Empty heading left by the hero edit1 empty <h2>Hidden via :emptyStyle
H1 on homepage1was 7
H214was 10
H327was 16

03Hero

The hero was built as two separate components swapped by CSS at 767px, so both shipped in the HTML on every request. That duplicated the hero copy, produced two of the seven H1s, and left the desktop view with no visible H1 at all.

ChangeWasNowScope
Two heroes reduced to oneBoth in the DOM, swapped at 767pxOne responsive heroHome
Headline“Introducing” + “Halal car finance”, split across two elements“Halal car finance for UK drivers”, one H1Home instance
Load animation
The interaction held hero text at opacity:0 — the cause of the 9,060ms LCP
Faded in on loadPaints on the first frameHome
Mobile compositionLandscape image cropped to portrait, subject cut offPortrait image, title top, CTA full widthHome
Mobile subtitle colour
A 4-class Webflow rule set it black, correct for the old light-background hero
Black on a bright photoWhite, with a scrim behindHome
Mobile title~28px47px (42px under 480px)Home
Mobile cardFull-bleed, ~71px corner radius90vh, 16px gutters, 24px radiusHome
Mobile Trustpilot150px stars block, pushing the CTA below the foldCompact strip, CTA visibleHome

04Interaction animations

Webflow interactions faded content in on scroll across the page. Nav, modals and sliders keep their interactions; content now paints immediately.

ChangeWasNowScope
Scroll-reveal bindings56 elements10, all nav or modalHome
Stranded animation styles
Interactions had written inline opacity and transform before the bindings were removed, freezing cards mid-animation
Cards at 22% opacity, offset 77pxFull opacity, alignedHome
Nav dropdowns and FAQ accordionWorkingStill workingHome

05FAQ

Edited at source in the CMS, so the same answers improve anywhere else they are used. Every factual claim was preserved.

ChangeWasNowScope
Questions shown
“Why should I link my bank account” retired — a mid-application concern, not a homepage decision factor
1110 (the 11th unpublished, not deleted)CMS
Answer formatOne long blockTwo short paragraphs eachCMS
Longest answer380 characters260 charactersCMS
Paragraph spacing
Rich-text paragraphs had margin:0, so both paragraphs ran together
0px gap24px gapHome
Em-dashes20CMS

06New content

Built as native Webflow elements using the site's own container, header and card classes — editable in the Designer, not embeds. Every factual claim already appears elsewhere on the site.

SectionAnswers the audit findingContainsScope
Halal by structure, not by label D-4 — the differentiator is never explained Three-step mechanism, four compliance proofs with check badges Home
Before you apply C-6 — no qualifying information anywhere Where, what, who, how long, with four hand-authored SVG icons Home
Apply call-to-action Conversion — no mid-page CTA Dark panel, headline, Apply button, reassurance line Home

07Existing sections improved

ChangeWasNowScope
Trust statistics (100,000+ / 12 years / 10 million+)Plain centred textThree aligned cardsHome
Duplicate Trustpilot widget
Removed rather than hidden, so the second iframe no longer loads
Two visible instancesOne, in the heroHome
Halal card link
An empty anchor overlaying the whole card, with an arrow as its only cue
Card was clickableLink and arrow removedComponent
Shariah certification linkPresent below the compliance pointsRemovedHome

08Layout and page weight

Two structural causes, both worth fixing at the root eventually.

CauseEffectFix appliedScope
Root font-size is 28.5px Every rem inflates. Section padding set to 5rem rendered as 142px, top and bottom New sections use pixels throughout Home
.container-large has min-height:760px with space-between 478px of empty space distributed between heading, cards and footnote Overridden on the two new sections only Home
New sections1,217pxwas 2,527px, −52%
Page height13,941pxwas 15,250px
Hero DOM copies1was 2

09Page metadata

Homepage title and description rewritten around the terms people actually search with. Open Graph and Twitter tags inherit both automatically.

ChangeWasNowScope
Title tag
60 characters, at Google's truncation point
Halal Car Finance | Islamic Car Finance in the UK - Ayan Halal Car Finance: Islamic Car Finance for UK Drivers - Ayan Home
Meta description
154 characters. Two sentences, no repetition of the title keyword
Islamic car finance in the UK that's 100% Halal, Riba-free, and fully Sharia-compliant. Get your car finance with fast approval and no hidden charges. Shariah-compliant car finance from Ayan, open to UK drivers of any faith. FCA authorised, audited against AAOIFI standards, with no interest at any stage. Home
Search vocabulary
Title carries the search term. Repeating it in the description reads as keyword stuffing without adding reach
“100%” and “Riba-free” as the differentiators Search term left to the title; description adds who it is for and the credentials Home

10Code added

All scoped to the homepage. Removing them reverts every hero and section change.

NameDoesWhereScope
NoScrollRevealRemoves interaction bindings from content, leaving nav and modals aloneHomepage headHome
HeroMobileV15Mobile hero layout, scrim, type scale, compact TrustpilotHomepage headHome
FaqParagraphSpacingParagraph spacing inside rich-text answersHomepage headHome
SectionPolishV5Card treatment, grids, and neutralising stranded animation stylesHomepage headHome
ApplyCardIconsFour brand-green SVG icons, about 1.6KB, no image requestsHomepage headHome

11Blog heading structure

Every blog post shipped nine H1 elements. Eight came from four template elements, so one template edit corrected all of them at once. Only tags changed — no text, styling or layout was altered, and all three demoted classes set their own font-size, so nothing moved.

ElementWasNowScope
Post titleH1H1 — keptBlog template
“Table of Contents” — desktop and mobile copiesH1 ×2H2Blog template
“Related Articles”H1H2Blog template
Related post titles — repeats five times per pageH1 ×5H3Blog template
“Final Thoughts” — author-inserted, in the article body of two postsH1H2CMS content
H1 per post1was 9
Posts corrected125all of them
Elements edited4plus 2 CMS items

The two content fixes were checked word by word against the published page before and after: 602 and 733 words, identical either side, only the heading level moved. The table of contents is built from H2s inside the article body, so those two posts now list their closing section like every other post. The template headings sit outside that container and do not appear in it.

What was checked

Structured data was verified by fetching rendered pages and parsing every JSON-LD block, and by running the markup through the Schema Markup Validator: zero errors, zero warnings, one company entity per page. Heading counts, animation state, card alignment and section heights were measured in a browser.

Rewriting the site-wide head meant reproducing Google Tag Manager, the CookieYes banner, the font preloads and the DM Sans override. All four were confirmed intact on every page tested, and both GTM and CookieYes were confirmed loading at runtime.

Open items

Mobile changes are CSS-verified, not device-verified. The test browser would not hold a mobile viewport. This matters: one mobile defect this session — a black subtitle on a bright photo, caused by a Webflow rule with higher specificity — survived exactly that kind of checking and was only caught on a real phone. Please review on a handset before sign-off.

Representative example section is not built. It needs Compliance's real worked figures. The 7.9% and 11.9% rates are already published on the site, but a specific worked example is a regulated statement and will not be invented.

“Self-employed” and “no deposit” appear nowhere on the site despite being strong search terms for the private-hire audience. Both need Product to confirm the answer.

Not fixable through the API: the eight dead URLs still need redirect rules in Webflow settings — the highest-value fix outstanding — and the 28.5px root font-size needs addressing at the root, since it inflates every rem-based measurement site-wide.