Conversion Rate Optimization Audit

Doorifi

doorifi.com  ·  September 2026

Overview of Issues

Doorifi is not a retail store — it is a lead-generation funnel for a New Jersey cash home-buying business, built on Shopify with zero products in the catalogue. The single conversion event that matters is a homeowner completing the 5-step "get a cash offer" form, or picking up the phone. This audit was therefore run against the funnel, not against a cart. We walked the entire form end to end, measured every step against the fold, and instrumented the page in the browser rather than guessing.

The strategic foundation here is genuinely strong, and that is worth saying plainly: the value proposition reads in under three seconds, the funnel asks for the property address before it asks for personal details (the correct psychological order), the situation-based content (divorce, inherited, as-is, hoarder) matches real search intent with dedicated guides, there are 20+ local SEO landing pages, a Spanish translation with proper hreflang, and a licensed, physically-located NJ business behind it. This is not a thin affiliate page. Most of what follows is about execution gaps on top of a good strategy rather than a broken concept.

The most expensive problem is mobile. On a 390×844 viewport the lead form's first input sits at y = 1,094px — roughly 250px below the fold. The entire first screen a mobile visitor sees is a logo, a headline, and a large decorative phone mockup; there is no conversion UI on it at all. Worse, the floating "Still selling? / Get cash offer" pill renders on top of the form's own option labels (we confirmed cta-wrapper stacking above LABEL elements via elementsFromPoint), so the persistent CTA is physically blocking taps on the form it exists to promote. For a business that buys most of its traffic, this is the single highest-value fix in the report.

The second cluster is silent lead leakage. The "Get My Free Home Report" button — the entire soft-conversion path aimed at the majority of visitors who are researching rather than ready to sell today — is a dead <a href="#"> with no handler bound. Clicking it opens nothing and scrolls the visitor back to the top of the page. The two Cannot read properties of null (reading 'addEventListener') console errors we captured are consistent with the script that should bind it failing to find its target. Alongside this, there is no Meta Pixel and no Google Ads conversion tag anywhere on the site — only GA4 and HubSpot. A paid-acquisition business currently cannot retarget the ~95%+ who leave without converting, cannot build lookalikes off closed deals, and cannot let Google optimise toward lead value.

The third cluster is trust and friction inside the form. The address field has no Google Places autocomplete and carries an explicit autocomplete="off", so the very first thing a seller does is type their full address by hand with no validation. The final contact step asks for name, email and phone — all required — with no autocomplete attributes (so browser and mobile autofill will not populate them) and no privacy or consent microcopy at the exact moment a stranger hands over their phone number. There is no progress indicator anywhere across the five steps. And the page contradicts itself on social proof: the hero claims "Trusted by 2,000+ NJ homeowners" while the stats band 6,000px lower says "2,500+ NJ homeowners served", with a "4.9★ Google rating" that is never linked to an actual Google Business Profile.

Finally, the page is heavy: 16.7 MB decoded across 235 requests, dominated by four autoplaying 1080p videos (~9.9 MB) plus 4.6 MB of JavaScript spread over 132 unbundled files and 55 separate CSS files. The hero image — the LCP element — is a 512×512 source stretched to 1440×1299 (2.81× upscale) with no srcset, served from lh3.googleusercontent.com rather than Shopify's CDN, which is also why not a single image on the page is WebP or AVIF.

None of this requires a rebuild. The business already owns the assets it is failing to use — the NJ Real Estate License #0453810, the Manalapan HQ address and the business hours all sit on /pages/contact where almost nobody will see them, while the homepage carries no licence number, no address and no verifiable review link. The work below is ordered so the revenue-blocking items land first.

25
Critical Issues
35
Warnings
70
Done Right
5
Funnel Steps Audited
Suggestions — Homepage
Homepage · Desktop 1440×900
1. Header & Navigation
Needs Work
Doorifi header and hero on desktop
Current state — the header carries only "How it works", "FAQ" and a language switcher. No phone, no CTA.
Issues to Fix
🔴 No phone number in the header

For a cash home-buying business the phone is a primary conversion channel — the site's own copy says "Ready to talk? … just a real conversation with a local NJ team". Yet (732) 740-3896 does not appear until roughly y = 9,299px, about 84% of the way down an 11,074px page. A seller in a distress situation (probate, divorce, foreclosure timeline) very often wants to call, not fill in a form. A click-to-call number in the header is the cheapest conversion lever available here.

⏱ Estimated: 5 dev hours (combined with sticky header below)

🔴 No "Get Cash Offer" CTA button in the header

The header contains two content links and a language switcher — there is no conversion action in it at all. Once a visitor scrolls past the hero there is no header-level route back into the funnel. A floating pill does appear on scroll (credited opposite), but it is a separate overlapping element rather than a stable header CTA, and it currently causes the overlap defect documented in Blocks 9 and 11.

⏱ Estimated: included in sticky header build

⚠️ Header is not sticky — it scrolls away entirely

Measured position: static on the header element. On a page that is 11,074px tall, navigation, branding and any header CTA disappear permanently after the first screen. Sticky headers are standard for long single-page funnels precisely because they keep a conversion route permanently within reach.

⏱ Estimated: included in sticky header build

⚠️ "How it works" points to a page that is not about how it works

One of only two real nav links, How it works, resolves to /pages/home-insights. That page's <title> is "How Doorifi works — simple steps", but its H1 is the hero headline and its actual content is a home-valuation / market-insights pitch ("Insights from 250,000+ sales", "Unlock your home insights"). There is no step-by-step process page anywhere on the site. "How does this work and what's the catch?" is the number-one objection in this category, and the nav link that promises to answer it does not.

⏱ Estimated: 6 dev hours (see Block 8)

⚠️ Shopify "Sign in" link is a dead end

The nav includes Sign in → /customer_authentication/redirect. There are no products, no orders and no customer accounts on this site, so the link routes a would-be seller into an empty Shopify account flow. In a three-item navigation, one item being a dead end is a meaningful share of the available attention. Related Shopify boilerplate ("Item added to your cart", "View cart", "Check out", "Continue shopping") is also still present in the DOM of every page.

⏱ Estimated: 2 dev hours

What's Done Right
✅ Clean, uncluttered navigation

No mega-menu, no category overload — appropriate for a single-action funnel. The restraint here is correct; the issue is what is missing (phone, CTA), not clutter.

✅ Proper bilingual setup (EN / ES)

An English/Spanish switcher is exposed in the header and the site ships 6 hreflang alternates with a working /es tree (HTTP 200). In Central New Jersey's Spanish-speaking markets this is a real competitive advantage, and it is implemented correctly rather than machine-bolted on.

✅ Persistent "Get cash offer" pill appears on scroll

Once the hero leaves the viewport a floating "Still selling? / Get cash offer" CTA appears and stays. The instinct is right — a long funnel page needs a permanent conversion route. It needs repositioning (it currently overlaps content), but the mechanism already exists.

✅ Cookie consent with genuine choice

The consent banner offers Manage preferences / Accept / Decline rather than an accept-only dark pattern, and links to the privacy policy.

Homepage · Desktop 1440×900
2. Hero & Primary CTA
Needs Work
Doorifi hero form Next button and trust row, only visible after scrolling
Current state — the "Next" button and the entire trust row only become visible after scrolling ~787px.
Issues to Fix
🔴 The form's primary CTA sits below the fold on desktop

Measured on a standard 1440×900 viewport: the address input is comfortably visible at y = 578, but the "Next" button renders at y = 1,089 — 189px past the 900px fold. We re-measured on the shortest step in the funnel (bedrooms, six compact tiles) and it still failed: y = 883 with its lower edge beyond the viewport. In other words, at no point in the funnel can a 900px-tall desktop visitor see the question and the button to answer it at the same time without scrolling.

⏱ Estimated: 4 dev hours

⚠️ Trust row and star rating are pushed below the fold

"No Open Houses · Close in 7 Days · As-Is Condition" and the 5-star "Trusted by 2,000+ NJ homeowners" badge are strong, well-written reassurance — and a visitor who does not scroll never sees any of it. These are exactly the signals that should sit beside the first form field, not underneath it.

⏱ Estimated: included in hero layout work

⚠️ Step 1 is the tallest step, making the fold problem worst at the start

The first step stacks an address field plus a 7-option property-type list ("Single-family", "Townhouse or attached single-family", "Apartment or condo", "Mobile or manufactured", "Multi-family", "Commercial", "Empty lot"). That makes the highest-drop-off step the one where the CTA is furthest out of view. Splitting address and property type into two light steps — or collapsing the list into a compact select/grid — pulls the button back above the fold.

⏱ Estimated: 3 dev hours (see Block 5)

⚠️ Weak selected-state on the property-type options

Choosing an option changes only the border to a slightly darker hairline — no fill, no checkmark, no weight change. On a light card at arm's length it is genuinely hard to confirm your answer registered, which invites re-clicking and hesitation at step one.

⏱ Estimated: included in step-1 simplification

What's Done Right
✅ The value proposition lands in under three seconds

"Sell Your NJ Home for Top Cash. Effortlessly." with the sub-line "No Fees, No Repairs, Just Fast Cash. Get a competitive offer in minutes, not months." States the outcome, the mechanism and the objection-handling in one screen. This is a genuinely well-written hero.

✅ Category-defining badge above the headline

"NEW JERSEY'S #1 CASH BUYER" immediately geo-qualifies the visitor and positions the brand before the headline is read.

✅ The form itself is in the hero on desktop

The funnel starts in the hero rather than behind a button — one less click between intent and action. The problem is purely vertical space, not placement strategy.

✅ Static hero, no rotating carousel

A single focused hero with one message and one action, rather than an auto-rotating slideshow. This is the correct choice: it loads faster, keeps a single focal point, and avoids the message-dilution that carousels cause.

✅ Helper microcopy under each question

"This helps us select comps when preparing your offer" and "A quick estimate is fine" reduce the anxiety of answering wrongly — a small, well-judged detail that many funnels skip.

Homepage · Desktop 1440×900
3. Trust & Credibility Signals
Critical
Doorifi stats band showing 2,500+ homeowners and 4.9 star Google rating
Current state — the stats band claims "2,500+ NJ homeowners served" and a "4.9★ Google rating" that links nowhere.
Issues to Fix
🔴 The page contradicts itself on how many homeowners you've served

The hero badge reads "Trusted by 2,000+ NJ homeowners". The stats band further down the same page reads "2,500+ NJ homeowners served". Both are on the homepage; both were verified present in the DOM. A seller comparing cash buyers is actively looking for reasons to distrust, and two different headline numbers on one page is exactly the sort of detail that reads as "the numbers are made up". Pick one verified figure and use it everywhere.

⏱ Estimated: 3 dev hours (with review linking below)

🔴 "4.9★ Google rating" is claimed but not verifiable anywhere

The stats band advertises a 4.9-star Google rating. We scanned every link on the homepage and on /pages/reviews: there is no link to a Google Business Profile, BBB, Trustpilot or Yelp listing — the only "review" link on the site points back to Doorifi's own /pages/reviews. An unlinked, unaudited star rating is weaker than no rating at all in a category with a well-known trust problem. Linking the real profile (and embedding live Google reviews) converts a claim into evidence.

⏱ Estimated: included above / see Block 9

🔴 Your strongest trust assets are hidden on the contact page

/pages/contact carries a NJ Real Estate License #0453810, a real headquarters at 200 Craig Road, Manalapan, NJ 07726, and staffed business hours. This is precisely the "we are a real, licensed, local company" evidence that separates a legitimate buyer from the sign-on-a-lamppost operators — and a homepage visitor never sees any of it. The licence number and the NJ address belong on the homepage near the form and in the footer on every page.

⏱ Estimated: 2 dev hours

⚠️ No third-party accreditation marks

No BBB accreditation, no local association or chamber badge anywhere on the site. For a business asking homeowners to hand over their largest asset, third-party validation carries far more weight than self-reported statistics.

⏱ Estimated: content/business task, not dev

What's Done Right
✅ Objection-handling trust row in the hero

"No Open Houses · Close in 7 Days · As-Is Condition" targets the three concrete reasons a homeowner avoids a traditional listing. Concise and well chosen.

✅ Concrete, specific outcome statistics

"$50M+ in home purchases", "500+ homes purchased" in Monmouth County, "< 2 hrs average response", "7 days a week support". Specific numbers beat vague superlatives, and the county-level breakdown reinforces genuine local presence.

✅ Equal Housing Opportunity mark in the footer

The EHO logo is displayed — an appropriate and expected compliance signal for a residential property buyer, and a credibility cue to informed sellers.

✅ No fake urgency anywhere

We specifically looked for countdown timers, "3 offers left today" style scarcity and fake activity notifications, and found none. In a category saturated with manufactured pressure, the restraint is both ethically right and better for trust with the high-value sellers you actually want.

✅ Accessibility statement published

The footer carries a genuine accessibility commitment with a contact route for support needs — uncommon at this size and a positive signal.

Homepage · Desktop 1440×900
4. Footer & Policies
Mostly Good
Doorifi four-column footer with policy links
Current state — a well-organised four-column footer with complete policy coverage.
Issues to Fix
⚠️ No phone number in the footer

The footer is the conventional fallback location for contact details, and a visitor who has read to the bottom of an 11,000px page is high-intent by definition. (732) 740-3896 is absent here, so that visitor's only route is to navigate to the contact page.

⏱ Estimated: 2 dev hours (combined footer pass)

⚠️ No physical address or licence number in the footer

The Manalapan HQ and NJ Real Estate License #0453810 exist on the contact page but appear in no site-wide furniture. A persistent address in the footer is a standard local-business legitimacy cue and also reinforces local SEO relevance.

⏱ Estimated: included in footer pass

⚠️ Copyright year is stale ("© 2025")

The footer reads © 2025 Doorifi. A visibly out-of-date year is a small but real signal that the site is not actively maintained — an unhelpful impression for a company asking to be trusted with a property transaction. Render the year dynamically.

⏱ Estimated: included in footer pass

⚠️ No social profile links

No Facebook, Instagram or LinkedIn links anywhere in the footer. For a local service business, an active social presence is a cheap credibility check that sellers actually perform before calling.

⏱ Estimated: included in footer pass

What's Done Right
✅ Complete policy coverage, easy to find

Terms of Service, Privacy Policy and a Data Sharing Opt-Out are all present in a dedicated "Terms & Privacy" column. The explicit opt-out page is a notably mature touch for a lead-generation business and pre-empts a real seller concern about data resale.

✅ Logical four-column information architecture

About / Terms & Privacy / Products / Sell House Fast is a sensible split, and the "Sell House Fast" column doubles as an internal-linking hub to the county and situation pages.

✅ Help Center, FAQ, Reviews and Contact all linked

Every support route a hesitant seller might look for is reachable from the footer, plus a "Still have questions? Visit the Help Center" prompt.

✅ Local SEO copy block

A geographically specific paragraph naming Monmouth, Ocean and Middlesex counties and the towns served — genuinely useful for local relevance rather than keyword stuffing.

✅ No broken policy links

The key pages we tested — /pages/faq, /pages/home-insights, /pages/contact — all return HTTP 200.

Suggestions — Lead Funnel
Lead funnel · Desktop 1440×900
5. Funnel Structure & Progress
Needs Work
Doorifi funnel step 2 bedrooms with the Next button cut off at the fold
Current state — step 2 of 5. No step counter, no progress bar, and the blue "Next" button is clipped by the fold.
Issues to Fix
🔴 No progress indicator anywhere in a five-step funnel

We walked the complete funnel: (1) address + property type → (2) bedrooms → (3) bathrooms → (4) basement yes/no → (5) name, email, phone. At no point is there a "Step 2 of 5", a progress bar, or step dots — we checked for progress elements explicitly and found none belonging to the form. A visitor three questions in has no idea whether one or ten more remain, and open-ended effort is one of the most reliable causes of mid-form abandonment. A simple progress bar is among the cheapest completion-rate wins available in multi-step forms.

⏱ Estimated: 3 dev hours

⚠️ Step 1 does double duty and is disproportionately tall

The first step asks for the address and the property type across seven options. Because it is the tallest step it also has the worst above-the-fold behaviour, and it is the step with the highest natural drop-off. Splitting it, or compacting the option list, improves both problems at once.

⏱ Estimated: 3 dev hours

⚠️ No saved progress or resume path

Because the qualifying answers are collected before any contact detail, a visitor who leaves at step 4 is unrecoverable — nothing has been captured. Persisting partial answers (and optionally capturing email earlier for high-value abandoners) would let you follow up on people who were four-fifths of the way to a lead.

⏱ Estimated: future enhancement

What's Done Right
✅ The commitment order is correct

The funnel asks about the property first and the person last. Leading with a low-threat question (an address, not a phone number) and deferring personal details to the final step is textbook progressive disclosure, and it is the single most important structural decision in a lead funnel. Doorifi gets it right.

✅ Only five steps, each with a single question

One decision per screen, no compound forms, no optional-field noise. The funnel is genuinely short for the amount of qualification data it collects.

✅ Questions are answerable without research

Bedrooms, bathrooms and "does it have a basement" are all instantly answerable from memory. Nothing asks for square footage, tax records or a valuation estimate that would send someone away to check.

✅ Address confirmation step exists

An "Is this the correct home address?" confirmation with "No, edit / Yes, continue" is implemented — a sensible guard against typos poisoning the comp analysis, and reassuring to the seller.

✅ Large, tappable option cards

Answers are full-width cards rather than small radio buttons, which works well on both desktop and touch.

Lead funnel step 1 · Desktop 1440×900
6. Address Entry — The First Input
Critical
Doorifi address input with a manually typed address and no autocomplete suggestions
Current state — a full address typed by hand. No suggestion dropdown appeared at any point.
Issues to Fix
🔴 No address autocomplete on an address-first funnel

We typed into the field character by character to trigger any suggestion engine and confirmed there is no Google Places autocomplete (window.google.maps is undefined, no .pac-container, no suggestion listbox). The single most important input in the entire funnel is a bare text box. The costs are compounding: more typing on mobile, silent typos that corrupt the comp analysis, no normalised address for the CRM, and no way to tell a homeowner in Freehold from one in Florida until a human reads the lead. Places Autocomplete is a well-trodden integration and it simultaneously reduces friction, improves data quality and enables instant service-area validation.

⏱ Estimated: 5 dev hours

🔴 autocomplete="off" actively blocks the browser's own autofill

The address input is explicitly marked autocomplete="off", so even the fallback — the browser or phone offering a saved address — is disabled. With no Places integration and native autofill switched off, entering the address is 100% manual typing. This attribute should simply be removed (or set to street-address).

⏱ Estimated: included above

⚠️ No service-area feedback at the point of entry

Doorifi's stated footprint is Monmouth, Ocean and Middlesex counties, with wider Tri-State coverage. Nothing validates the entered address against that footprint, so an out-of-area homeowner completes all five steps before anyone discovers the mismatch — wasting their time and filling the CRM with unqualified leads. Once Places is in place, an instant "✓ We buy in Monmouth County" confirmation is both a qualifier and a trust signal.

⏱ Estimated: included in Places integration

What's Done Right
✅ Address is the very first thing asked

Opening with the property rather than the person is the right call — it feels like a valuation tool, not a lead form, which is exactly the frame you want at the top of the funnel.

✅ Clear label, placeholder and affordance

A visible "Property address" label, a helpful "Enter your home address" placeholder and a location-pin icon — no ambiguity about what is wanted, and the label is not placeholder-only.

✅ The field persists across the funnel

The entered address stays visible at the top of the card on every subsequent step, giving continuous context about which property is being valued.

Lead funnel step 5 · Desktop 1440×900
7. Contact Capture — The Highest-Intent Step
Critical
Doorifi contact capture step asking for full name, email and phone
Current state — "Where should we send your offer?" collects name, email and phone. No privacy or consent line anywhere near the fields.
Issues to Fix
🔴 No privacy or consent microcopy where the phone number is captured

We scanned the whole funnel region for privacy, consent, opt-out or messaging-disclosure language and found none. This is the exact moment a stranger hands a cash-buying company their phone number, and there is nothing reassuring them about what happens next. The irony is that Doorifi already writes this well elsewhere — the home-insights section says "Private — your data is never shared or sold". That line, plus a plain statement of who will call and when, belongs directly under this button. For a US business capturing phone numbers for follow-up calls, explicit consent language is also the defensible practice.

⏱ Estimated: 3 dev hours

🔴 No autocomplete attributes on name, email or phone

All three inputs ship with an empty autocomplete attribute. Browsers and mobile keyboards therefore will not reliably offer saved values, forcing manual typing at the most abandonment-sensitive step in the funnel. Adding autocomplete="name", "email" and "tel" is a few minutes of work and measurably lifts completion, especially on phones.

⏱ Estimated: 2 dev hours (with mobile fixes)

⚠️ All three fields required, with no reason given for the phone

Name, email and phone are each required. Phone is defensible for this business — offers are discussed by voice — but the form never says so. A single line ("We'll call with your offer — no spam, no obligation") converts a demand into a rationale. If testing allows, making phone optional is the classic lever here.

⏱ Estimated: included in consent microcopy

⚠️ No trust reinforcement at the point of submission

The final step is visually the plainest in the funnel — no licence number, no "2,000+ homeowners", no guarantee, no EHO mark. Reassurance density should be highest where commitment is highest, not lowest.

⏱ Estimated: included in consent microcopy

⚠️ The "Continue" button is far below the fold

Consistent with the rest of the funnel, the final submit sits well past the 900px fold on desktop, so the closing action requires a scroll to discover.

⏱ Estimated: included in hero layout work

What's Done Right
✅ Correct input types for mobile keyboards

type="email" and type="tel" are properly set, so phones surface the @-keyboard and the numeric keypad respectively. This is frequently missed and it is right here.

✅ Benefit-framed step headline

"Where should we send your offer?" frames the ask as delivery of something the visitor already earned, rather than "Enter your details". The sub-line reinforces it: "Enter your details and we'll get your cash offer started."

✅ Contact details are requested last

By this point the visitor has invested four answers, so the sunk-cost effect works in favour of completion — the correct place to put the highest-friction ask.

✅ Minimal field count

Three fields only, with visible labels and clear required markers. No address re-entry, no "how did you hear about us", no optional-field padding.

✅ A thank-you / confirmation state exists

"Thank you! Your request has been received" is implemented in the funnel markup, so submissions do get an explicit confirmation rather than a silent reset.

Suggestions — Content & Social Proof
Homepage & content pages · Desktop 1440×900
8. Content, Process & Objection Handling
Mostly Good
Doorifi situation cards for divorce, inherited, as-is and hoarder houses
Current state — strong intent-matched situation cards. Note the floating CTA obscuring the heading above them.
Issues to Fix
🔴 There is no actual "how it works" process page

The primary nav promises it, but the link lands on a home-valuation page (see Block 1). Across the site there is no page that plainly answers: what happens after I submit, when do I hear back, who visits the property, how is the offer calculated, am I obligated, and how do I get paid. In cash home-buying, opacity is the objection — sellers have been trained to expect a bait-and-switch. A dedicated, honest process page is both a conversion asset and the answer to the category's central fear.

⏱ Estimated: 6 dev hours

⚠️ The homepage process section is vague and video-dependent

Under "How to Sell Your House Fast in New Jersey" the content is carried by autoplaying videos with soft headings — "Ways to sell", "Cash Offer or List With a Guaranteed Backup", "Human help, every step". There is no explicit numbered sequence. A crisp 1 → 2 → 3 ("Tell us about your home · Get your cash offer in 24 hours · Close in 7 days on your date") is one of the most reliably effective blocks in this category, and it works with the video muted or blocked.

⏱ Estimated: included in process page build

⚠️ The Help Center has no phone CTA

/pages/faq is a substantial Help Center, but it contains no phone number. Someone reading FAQs is mid-consideration and actively resolving doubt — the highest-value moment to offer a conversation. A persistent "Still unsure? Call (732) 740-3896" block belongs there.

⏱ Estimated: 1 dev hour

What's Done Right
✅ Outstanding situation-based segmentation

"Sell a House After Divorce", "Sell an Inherited House", "Sell House As-Is", "Sell a Hoarder House" — four cards mapped to four genuine, emotionally distinct life events, each with its own dedicated guide. This is the strongest content asset on the site: it matches how people actually search, and it lets a visitor self-identify immediately.

✅ A human fallback for unlisted situations

"Don't see your situation? We can still help. — Call 732-740-3896" catches everyone the four cards miss and routes them to a person. Thoughtful.

✅ 20+ local landing pages

Dedicated pages for Freehold, Howell, Manalapan, Red Bank, Long Branch, Asbury Park, Middletown, Neptune, Holmdel, Ocean Township, plus Monmouth, Ocean and Middlesex county hubs. Serious local SEO coverage with a matching NJ directory hub.

✅ Substantial Help Center

/pages/faq renders as a "Doorifi Help Center" with a large accordion-based Q&A set — well beyond the token five-question FAQ typical of this category.

✅ Honest positioning on alternatives

"Cash Offer or List With a Guaranteed Backup" acknowledges that a cash offer is not always the seller's best option. Presenting a choice rather than a single hard sell builds credibility with exactly the considered sellers who are worth the most.

✅ Full Spanish translation

A complete /es tree (HTTP 200) with correct hreflang annotation — a genuine advantage in Central NJ that most competitors do not offer.

Homepage · Desktop 1440×900
9. Reviews & Verifiable Social Proof
Needs Work
Doorifi testimonials with names and New Jersey towns
Current state — testimonials with names and NJ towns. The floating CTA is again covering card text above.
Issues to Fix
🔴 No verifiable third-party reviews anywhere on the site

The testimonials are static, self-hosted quotes. We checked both the homepage and /pages/reviews for any external review source and found no Google, BBB, Trustpilot or Yelp integration or link. Combined with the unlinked "4.9★ Google rating" claim, a sceptical seller has no way to independently verify a single positive statement about the company. Embedding a live Google reviews widget — and linking the profile — is the highest-leverage trust fix available, because the reviews evidently already exist.

⏱ Estimated: 4 dev hours

⚠️ No review schema, so no star rich-snippets in search

The site ships WebSite, Organization and BreadcrumbList JSON-LD, but no AggregateRating or Review markup. With a 4.9 rating already claimed, adding valid review schema is a direct route to star ratings in Google results and a meaningful organic click-through lift on every local page.

⏱ Estimated: included above

⚠️ Testimonials carry no date or transaction context

None of the quotes indicate when the sale happened or any verifiable detail beyond a first name and town. Adding a month/year, and ideally the closing timeline achieved, makes them read as records rather than copywriting.

⏱ Estimated: content task

⚠️ No video testimonials from real sellers

The site already invests heavily in video (four autoplaying clips), but none of it is a real homeowner talking about their sale. A single unpolished phone-shot testimonial from a Freehold seller would outperform all four produced videos for trust.

⏱ Estimated: content task

What's Done Right
✅ Testimonials are specific and locally attributed

Full names paired with real NJ towns — "Sold to Doorifi in Manalapan, NJ", "in Freehold, NJ", "in Howell, NJ". Local attribution is far more persuasive to a Monmouth County homeowner than an anonymous five-star quote, and it reinforces genuine local operation.

✅ Quotes address distinct objections

The five testimonials are not interchangeable: they separately cover being treated as more than a transaction, price matching expectations, avoiding repair work, deals falling through, and skipping staging and showings. Someone has thought about which fear each quote answers.

✅ Consistent star ratings with photos

Each testimonial carries a 5-star rating and a portrait, presented cleanly. We verified every image on the page loads correctly — zero broken images site-wide.

✅ A dedicated reviews page exists

/pages/reviews is published and linked from the footer, so there is already a destination to attach verified third-party reviews to.

Homepage · Desktop 1440×900
10. Secondary Conversion Paths
Critical
Doorifi Get My Free Home Report button and the Ready to talk contact hub
Current state — the green "Get My Free Home Report" button is a dead href="#" link. The contact hub below it is excellent.
Issues to Fix
🔴 "Get My Free Home Report" is a dead link — the entire soft-conversion path captures nothing

The CTA is literally <a href="#" class="home-insights__cta"> with no onclick and no data attributes. We clicked it and confirmed the behaviour: the URL becomes doorifi.com/#, no modal opens, no form appears, and the visitor is scrolled back to the top of the page. The whole "Get Exclusive Home Insights" section — built to capture the large majority of visitors who are researching rather than ready to sell, and supported with four benefit bullets and a "100% free. No spam." reassurance line — is currently generating zero leads and actively disorienting the people most interested in it. This is the clearest single defect in the audit and it should be fixed first.

⏱ Estimated: 5 dev hours

🔴 JavaScript errors on the homepage

The console throws TypeError: Cannot read properties of null (reading 'addEventListener') twice on load. A script is querying elements that do not exist and failing before it binds its handlers — entirely consistent with the unbound CTA above. Beyond this specific button, an early script failure can silently prevent any later listeners in the same file from attaching, so this needs diagnosing rather than patching around.

⏱ Estimated: included above

⚠️ No email capture anywhere that actually works

With the home-report CTA dead, the site has no functioning email capture at all — no footer subscribe, no exit-intent, no gated guide. Every non-converting visitor is lost permanently, despite the guides and market data that would make a natural exchange. Selling a house is a months-long decision; a nurture list is not optional in this category.

⏱ Estimated: 3 dev hours (see Block 14)

What's Done Right
✅ The "Ready to talk?" contact hub is excellent

A dedicated block offering three routes — a large click-to-call (732) 740-3896, email, and Browse FAQs — framed with genuinely disarming copy: "No hard sell, no gimmicks — just a real conversation with a local NJ team." For sellers who will never complete a web form, this is the conversion path, and it is well built.

✅ Service-level expectations are published

"< 2 hrs average response", "7 days a week support", "Local NJ-based team" set concrete expectations before contact. Committing publicly to a response time is a strong differentiator in a category known for going quiet.

✅ The soft-offer strategy is strategically right

Offering home-value estimates, county market trends and neighbourhood comps to people who are not ready to sell is exactly the correct secondary play — it captures the research-phase majority with something genuinely useful. The concept and the copy are sound; only the wiring is broken.

✅ Persistent floating CTA keeps the primary path reachable

The "Still selling? / Get cash offer" pill follows the visitor down the page, so the main funnel is always one click away regardless of scroll depth.

Suggestions — Mobile
Homepage · Mobile 390×844
11. Mobile Homepage & Navigation
Critical
Doorifi mobile homepage first screen showing no lead form
Current state — the entire first mobile screen. Logo, headline, and a decorative mockup. No form, no CTA, no trust row.
Issues to Fix
🔴 The lead form is entirely below the fold on mobile

Measured on a 390×844 viewport: the address input renders at y = 1,094px — about 250px below the fold — and the "Next" button at y = 1,626px. The first screen a mobile visitor sees contains a logo bar, a wordmark, a badge, a headline, a sub-headline and a large decorative phone mockup showing a "SOLD" sign. There is no conversion element on it whatsoever. The decorative image is occupying the most valuable real estate on the site. Given that paid traffic in this category is overwhelmingly mobile, this one layout decision is likely costing more leads than every other issue in this report combined.

⏱ Estimated: 6 dev hours

🔴 The floating CTA covers the lead form's own option labels

We verified this with hit-testing rather than by eye: at the pill's coordinates document.elementsFromPoint() returns DIV.cta-content and DIV.cta-wrapper active stacked directly above a LABEL inside UL.cart-lead-form__radio-list, and the CTA's bounding box overlaps the form's. In other words the persistent "Get cash offer" button is physically intercepting taps on the form it is advertising. On a 390px-wide screen the 300px-wide pill covers most of the column. It needs to move to a bottom-anchored bar with proper layout offset, and it should hide while the form is in view.

⏱ Estimated: 3 dev hours

⚠️ Base font size is 15px

getComputedStyle(document.body).fontSize returns 15px, below the 16px mobile baseline. Beyond readability for the older homeowner demographic that dominates this category, sub-16px form inputs trigger the iOS zoom behaviour documented in Block 12.

⏱ Estimated: included in mobile pass

⚠️ 22 of the first 40 interactive elements are under 44×44px

More than half the sampled links and buttons fall below Apple's and Google's 44px minimum touch target. Small targets produce mis-taps and hesitation, and the effect is amplified for older users.

⏱ Estimated: included in mobile pass

What's Done Right
✅ Clean hamburger menu implementation

A standard, correctly positioned hamburger toggle, appropriate for the small nav.

✅ No intrusive interstitials

No full-screen popup, no app-install interstitial, no forced overlay on arrival. The mobile experience is not interrupted before the visitor has seen anything — which also keeps the page clear of Google's intrusive-interstitial penalty.

✅ Genuinely responsive layout

Every section reflows properly to 390px — no horizontal scrolling, no clipped text, no fixed-width breakage anywhere down the page.

✅ Typography scales well

The hero headline remains large, legible and correctly wrapped on a narrow viewport, and the trust row reflows to two lines cleanly.

✅ A persistent conversion route does exist on mobile

The floating "Get cash offer" CTA is present on mobile, so a visitor always has a one-tap route into the funnel. Repositioned correctly it partially mitigates the below-fold form.

Lead funnel · Mobile 390×844
12. Mobile Lead Funnel
Critical
Doorifi mobile lead form with the floating CTA overlapping the form card
Current state — the floating CTA sitting directly on top of the lead form card and its inputs.
Issues to Fix
🔴 iOS Safari will zoom on every form field focus

The address input computes to font-size: 15px. iOS Safari automatically zooms the viewport whenever a focused input is under 16px, so tapping the very first field jolts the page, breaks the layout mid-funnel and leaves the visitor pinching back out — repeated at every step. This is a one-line CSS fix (16px on form inputs) and it removes a jarring disruption from the highest-traffic path on the site.

⏱ Estimated: 2 dev hours (with autocomplete attributes)

⚠️ The step CTA sits far below the fold on mobile

With the form already starting below the fold, the "Next" button lands at y = 1,626px — roughly two full screens down. Every step therefore costs an extra scroll to find the button, compounding across all five steps.

⏱ Estimated: included in mobile hero rebuild

⚠️ Missing autofill attributes hurt most on mobile

The absent autocomplete attributes on name, email and phone (Block 7) are a desktop annoyance but a mobile conversion problem — typing an email and a phone number on a phone keyboard, unaided, at the final step, is exactly where people give up.

⏱ Estimated: included above

What's Done Right
✅ Correct mobile keyboards on every field

type="email" and type="tel" mean the email field surfaces the @-keyboard and the phone field the numeric keypad. This is the detail that matters most for mobile form completion and it is implemented correctly.

✅ Input height meets touch guidelines

Form inputs render at 45px tall, comfortably above the 44px minimum — the fields themselves are easy to hit.

✅ Answer options are large tap cards

Property type, bedroom and bathroom options are full-width cards rather than small radio controls, making them forgiving to tap.

✅ The funnel card reflows cleanly

The multi-step card adapts to the narrow viewport without clipping or horizontal scroll, and the persistent address summary remains readable.

✅ Trust row survives on mobile

"No Open Houses · Close in 7 Days · As-Is Condition" reflows to a readable two-line layout directly beneath the form rather than being hidden.

Suggestions — Technical & Marketing
Homepage · Measured in-browser (Chrome, 1440×900)
13. Speed & Technical
Critical
16.7 MB
Total decoded payload
235
Requests
9.9 MB
Video weight
4.6 MB
JavaScript (132 files)
55
CSS files
452 ms
FCP (warm cache)
Issues to Fix
🔴 16.7 MB across 235 requests on a single landing page

Measured directly from the Resource Timing API rather than estimated. For context, a well-tuned landing page targets under 2 MB; this is more than eight times that. The visitor on a Monmouth County commute, on a patchy mobile connection, is downloading the equivalent of a short film to read a headline and type an address. These are unthrottled lab figures from a data-centre connection, so treat them as a floor — real mobile performance will be materially worse.

⏱ Estimated: see individual items below

🔴 Four autoplaying 1080p videos account for ~9.9 MB

The homepage carries four <video> elements, all autoplay + loop, encoded at 1080p and 2.5–4.8 Mbps, and one of them ships with no poster image. They are correctly muted and set to preload="metadata", which limits the damage, but four simultaneously looping HD streams still dominate both bandwidth and CPU — and on mobile, battery. Compressing to a sensible web bitrate, adding posters, and deferring offscreen videos until they scroll into view would remove several megabytes without changing the design.

⏱ Estimated: 6 dev hours

🔴 The hero LCP image is a 512px source stretched to 1440px

The hero background — the largest element on the page and almost certainly the LCP candidate — has a natural size of 512×512 but is displayed at 1440×1299. That is a 2.81× upscale (effectively 5.6× on a retina display), it ships with no srcset and no sizes, and it is set to loading="auto" with no fetch priority. It is also served from lh3.googleusercontent.com rather than Shopify's image CDN, which is why it gets none of Shopify's automatic resizing or format conversion.

⏱ Estimated: 4 dev hours

🔴 4.6 MB of JavaScript across 132 unbundled files

132 separate JS requests (26 <script src> tags in markup) plus 55 separate CSS files, and content is pulled from 13 distinct third-party hosts. Nothing is bundled. Each file is its own request with its own latency, and on a high-latency mobile connection the request count hurts more than the bytes.

⏱ Estimated: 8 dev hours

⚠️ No modern image formats, minimal lazy-loading, missing alt text

Of 18 images on the homepage: 0 are WebP or AVIF, only 3 use loading="lazy", and 11 have no alt text. The missing alt text is both an SEO loss and inconsistent with the accessibility commitment published in the footer. Avatar images are also served at 512×512 and displayed at 32px.

⏱ Estimated: 4 dev hours

⚠️ Two H1 tags on the homepage

There are two <h1> elements: an empty one wrapping the logo link, and the real hero headline. Search engines should see exactly one. Converting the logo H1 to a div is a trivial fix.

⏱ Estimated: 1 dev hour

What's Done Right
✅ Excellent server response and first paint

TTFB of 18 ms and FCP of 452 ms on a warm cache, with DOMContentLoaded at 369 ms. Shopify's infrastructure is doing its job — the weight problem is in the assets, not the hosting, which means the fixes are entirely within your control.

✅ Videos are muted, looped and preload="metadata"

Three of the four carry poster images and none preload their full payload. The implementation follows good practice; the problem is the number and the bitrate, not the technique.

✅ Correct canonical and hreflang setup

A canonical tag plus 6 hreflang alternates covering the EN and ES trees — properly implemented international SEO.

✅ Structured data present

Valid JSON-LD for WebSite, Organization and BreadcrumbList. A good base to extend with LocalBusiness and AggregateRating.

✅ Clean meta description and no broken images

A well-formed 110-character meta description, and we verified zero broken images across the page.

Homepage · Desktop 1440×900
14. Marketing — Capture & Engagement
Needs Work
Issues to Fix
🔴 Zero functioning email capture on the entire site

With the "Get My Free Home Report" button dead (Block 10), there is no working way for a visitor to give you their email. No footer subscribe, no gated guide, no newsletter. Selling a house is considered over weeks or months — the research-phase visitor who is not ready today is the single largest addressable segment, and right now every one of them leaves without a trace. The assets to fix this already exist: the home-value report, the county market trends, and a library of situation guides.

⏱ Estimated: included in Block 10 fix

⚠️ No exit-intent capture

Nothing fires when a visitor moves to leave. Given a working home-report offer, an exit-intent prompt on the homepage and on the situation guides is the natural second net — particularly on the high-intent guide pages where someone is actively researching divorce or probate sales.

⏱ Estimated: 3 dev hours

⚠️ No live chat, despite HubSpot already being installed

HubSpot's tracking script (portal 146721927) loads on every page, but no chat widget renders — we checked both the DOM and the rendered corners of the page visually. HubSpot includes conversations/chat, so the capability is already paid for and merely unconfigured. For a business whose own section is headed "Ready to talk?", chat is an obvious third capture channel alongside phone and form.

⏱ Estimated: 3 dev hours (configuration)

⚠️ No lead-nurture sequence evident

With no email capture there is nothing to nurture. Once capture works, the obvious automations are a home-report delivery sequence, a follow-up for funnel abandoners, and a long-cycle market-update series for sellers who are 3–6 months out.

⏱ Estimated: covered by capture + CRM work

What's Done Right
✅ No fake scarcity or manufactured urgency

We explicitly checked for countdown timers, fake stock counters and synthetic activity popups and found none. In a category where these tactics are endemic, their absence protects credibility with exactly the sellers worth the most.

✅ Compliant, genuinely optional cookie consent

A proper consent banner with Manage preferences / Accept / Decline and a privacy policy link — real choice rather than a forced accept.

✅ HubSpot CRM already in place

HubSpot is installed and loading site-wide, so lead routing, contact records and automation infrastructure already exist. This substantially reduces the cost of everything recommended above — the platform is there, it just needs wiring to a working capture point.

✅ The lead-magnet offer itself is well constructed

"Real-time home value estimates · County market trends · Comparable sales · Private — never shared or sold", closed with "100% free. No spam. Unsubscribe anytime." Four concrete benefits and a privacy reassurance. The copy is ready; only the button needs to work.

✅ Multiple contact channels offered

Phone, email and FAQ are all surfaced in the contact hub, with published response times — letting visitors self-select their preferred channel rather than forcing the form.

Site-wide · Tag and network inspection
15. Tracking & Attribution
Critical
Issues to Fix
🔴 No Meta Pixel anywhere on the site

We checked both the markup and every network request: there is no fbevents.js, no connect.facebook.net and no fbq. Facebook and Instagram are primary channels for reaching distressed and life-event sellers in a defined geography, and without the pixel you cannot retarget the ~95%+ who leave without converting, cannot build lookalike audiences from closed deals, and cannot let Meta optimise delivery toward people who actually submit. For a business that buys traffic, this is unrecovered spend on every visit.

⏱ Estimated: 4 dev hours

🔴 No Google Ads conversion tracking

There is no AW- conversion tag and no googleadservices request. The only Google tag firing is GA4 (G-MGDRD43HE5). "Sell my house fast NJ" is among the most expensive local search categories in the country, and without a conversion tag Google's bidding has no signal to optimise against — you are paying premium click prices while withholding the data that would make them efficient.

⏱ Estimated: 4 dev hours

⚠️ No tag manager — everything is hardcoded

No GTM container is present, so every new pixel, conversion tag or experiment requires a theme code change. For a site that needs several tags added, installing GTM first makes all subsequent work faster and reversible.

⏱ Estimated: included in Google Ads work

⚠️ No funnel step events — you cannot see where people drop

The dataLayer contains only gtm.dom and gtm.load; no custom events fire as visitors move through the five steps. So while this audit can show you the friction points, you currently have no data on which step actually loses people. Firing an event per step (and on submission) turns the funnel into something measurable and makes every fix below verifiable rather than assumed.

⏱ Estimated: 3 dev hours

⚠️ No call tracking on a phone-led business

The phone number appears as plain text with no call-tracking number or click-to-call event. For a business actively inviting calls, phone conversions are invisible to both analytics and ad platforms — so a channel that may be driving real revenue currently looks like it drives none.

⏱ Estimated: future enhancement

What's Done Right
✅ GA4 correctly installed and firing

GA4 (G-MGDRD43HE5) is live and we confirmed page_view events transmitting to Google's collection endpoint. Baseline traffic analytics are in place.

✅ HubSpot CRM connected site-wide

The HubSpot tracking script (portal 146721927) loads on every page, giving you contact-level tracking, lead records and automation capability. Combined with GA4, the foundation for proper attribution already exists — the gap is advertising pixels, not infrastructure.

✅ Privacy-conscious tag configuration

GA4 requests carry npa=1 (non-personalised ads) and respect the consent banner, and the site publishes a Data Sharing Opt-Out page. Tracking is implemented with appropriate regard for consent.

✅ Lean third-party footprint on the analytics side

Only two analytics/CRM vendors load — no stack of overlapping session-recording, heatmap and popup tools competing for the main thread. Clean to build on.

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 lead-volume impact. Start here for the biggest wins.
BlockTaskHours (avg)Fixed Price
11Mobile hero rebuild — lead form above the fold6$240
10Fix dead "Get My Free Home Report" CTA + wire email capture5$200
6Google Places address autocomplete + remove autocomplete="off"5$200
15Meta Pixel install + lead & funnel-step events4$160
15Google Ads conversion tag + GTM container4$160
13Hero LCP image — correct resolution, srcset, WebP, fetchpriority4$160
11Reposition floating CTA to bottom bar (fix content/form overlap)3$120
5Progress indicator across the 5-step funnel3$120
3Reconcile trust numbers + link verifiable Google reviews3$120
12Fix iOS zoom (16px inputs) + autocomplete attributes on all fields2$80
Subtotal — Critical39 hrs$1,560
⚠️ Medium Priority — Should Fix
Funnel friction and trust gaps. Tackle after Critical to compound the gains.
BlockTaskHours (avg)Fixed Price
8Build a real "How It Works" process page + fix nav link6$240
13Video optimisation — compress, add posters, lazy-load offscreen6$240
1Sticky header with click-to-call phone + "Get Cash Offer" CTA5$200
2Desktop hero layout — bring Next + trust row above the fold4$160
9Google reviews widget + AggregateRating / LocalBusiness schema4$160
13Image pipeline — WebP/AVIF, lazy-loading, alt text on 11 images4$160
7Privacy/consent microcopy + trust badges at the contact step3$120
5Step-1 simplification + stronger selected-state on options3$120
14Exit-intent capture for the home-report offer3$120
3Surface NJ licence # and HQ address on homepage & footer2$80
Subtotal — Medium40 hrs$1,600
🟢 Low Priority — Nice to Have
Polish, hygiene and long-term measurement. No direct revenue gate.
BlockTaskHours (avg)Fixed Price
13Bundle JavaScript and CSS (132 JS / 55 CSS files)8$320
15HubSpot live chat configuration3$120
4Footer pass — phone, address, social links, dynamic © year2$80
1Remove Shopify "Sign in" link and leftover cart artifacts2$80
13Fix duplicate H1 (empty logo heading)1$40
8Add phone CTA block to the Help Center / FAQ1$40
Subtotal — Low17 hrs$680
Total Estimated
96 hrs · $3,840 fixed

* Hours are averages and the price is fixed at $40/hour, for development implementation only. Content creation (seller video testimonials, photography, process-page copy) and third-party subscription costs (Google Places API, HubSpot tiers, call tracking) 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.