Ayan Capital · Organic search
Everything below is live on ayanuk.webflow.io and verified there.
Grouped by area, with the before and after state for each change.
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.
| Change | Was | Now | Scope |
|---|---|---|---|
| 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 fixedeligibleCustomerType expected a
GoodRelations value, not a schema.org URL |
1 validator error | 0 errors, 0 warnings | Site head |
The homepage carried seven H1 elements. Only tags changed — no text, styling or layout was altered by these edits.
| Element | Was | Now | Scope |
|---|---|---|---|
| Three process steps (“Add car details”, “Enter dealership bank details”, “Pick up & go”) | H1 | H3 | Home |
| Hero fragments (“Introducing” + “Halal car finance”) | H1 ×2 | H2, then consolidated | Desktop Hero |
| “You’re in good hands” | H1 | H2 | Trustpilot Slider |
| Mobile hero title | H1 | H2 (component retired) | Mobile Hero |
| Empty heading left by the hero edit | 1 empty <h2> | Hidden via :empty | Style |
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.
| Change | Was | Now | Scope |
|---|---|---|---|
| Two heroes reduced to one | Both in the DOM, swapped at 767px | One responsive hero | Home |
| Headline | “Introducing” + “Halal car finance”, split across two elements | “Halal car finance for UK drivers”, one H1 | Home instance |
| Load animation The interaction held hero text at opacity:0 — the cause of the 9,060ms LCP | Faded in on load | Paints on the first frame | Home |
| Mobile composition | Landscape image cropped to portrait, subject cut off | Portrait image, title top, CTA full width | Home |
| Mobile subtitle colour A 4-class Webflow rule set it black, correct for the old light-background hero | Black on a bright photo | White, with a scrim behind | Home |
| Mobile title | ~28px | 47px (42px under 480px) | Home |
| Mobile card | Full-bleed, ~71px corner radius | 90vh, 16px gutters, 24px radius | Home |
| Mobile Trustpilot | 150px stars block, pushing the CTA below the fold | Compact strip, CTA visible | Home |
Webflow interactions faded content in on scroll across the page. Nav, modals and sliders keep their interactions; content now paints immediately.
| Change | Was | Now | Scope |
|---|---|---|---|
| Scroll-reveal bindings | 56 elements | 10, all nav or modal | Home |
| Stranded animation styles Interactions had written inline opacity and transform before the bindings were removed, freezing cards mid-animation | Cards at 22% opacity, offset 77px | Full opacity, aligned | Home |
| Nav dropdowns and FAQ accordion | Working | Still working | Home |
Edited at source in the CMS, so the same answers improve anywhere else they are used. Every factual claim was preserved.
| Change | Was | Now | Scope |
|---|---|---|---|
| Questions shown “Why should I link my bank account” retired — a mid-application concern, not a homepage decision factor | 11 | 10 (the 11th unpublished, not deleted) | CMS |
| Answer format | One long block | Two short paragraphs each | CMS |
| Longest answer | 380 characters | 260 characters | CMS |
| Paragraph spacing Rich-text paragraphs had margin:0, so both paragraphs ran together | 0px gap | 24px gap | Home |
| Em-dashes | 2 | 0 | CMS |
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.
| Section | Answers the audit finding | Contains | Scope |
|---|---|---|---|
| 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 |
| Change | Was | Now | Scope |
|---|---|---|---|
| Trust statistics (100,000+ / 12 years / 10 million+) | Plain centred text | Three aligned cards | Home |
| Duplicate Trustpilot widget Removed rather than hidden, so the second iframe no longer loads | Two visible instances | One, in the hero | Home |
| Halal card link An empty anchor overlaying the whole card, with an arrow as its only cue | Card was clickable | Link and arrow removed | Component |
| Shariah certification link | Present below the compliance points | Removed | Home |
Two structural causes, both worth fixing at the root eventually.
| Cause | Effect | Fix applied | Scope |
|---|---|---|---|
| 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 |
Homepage title and description rewritten around the terms people actually search with. Open Graph and Twitter tags inherit both automatically.
| Change | Was | Now | Scope |
|---|---|---|---|
| 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 |
All scoped to the homepage. Removing them reverts every hero and section change.
| Name | Does | Where | Scope |
|---|---|---|---|
| NoScrollReveal | Removes interaction bindings from content, leaving nav and modals alone | Homepage head | Home |
| HeroMobileV15 | Mobile hero layout, scrim, type scale, compact Trustpilot | Homepage head | Home |
| FaqParagraphSpacing | Paragraph spacing inside rich-text answers | Homepage head | Home |
| SectionPolishV5 | Card treatment, grids, and neutralising stranded animation styles | Homepage head | Home |
| ApplyCardIcons | Four brand-green SVG icons, about 1.6KB, no image requests | Homepage head | Home |
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.
| Element | Was | Now | Scope |
|---|---|---|---|
| Post title | H1 | H1 — kept | Blog template |
| “Table of Contents” — desktop and mobile copies | H1 ×2 | H2 | Blog template |
| “Related Articles” | H1 | H2 | Blog template |
| Related post titles — repeats five times per page | H1 ×5 | H3 | Blog template |
| “Final Thoughts” — author-inserted, in the article body of two posts | H1 | H2 | CMS content |
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.
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.
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.