Author: Aarav Mehta

  • Flutter vs React Native in 2026: Which Should You Build Your App With?

    Flutter vs React Native in 2026: Which Should You Build Your App With?

    Flutter vs React Native is one of the first decisions you make when planning a cross-platform app development project. Both are mature, production-ready ways to build one app for Android and iOS from a single codebase. In 2026 the short answer is this: choose React Native if your team already works in JavaScript or React, or you have a React web app to share code with. Choose Flutter if you want a highly custom, pixel-identical interface on every device and have no existing web stack to reuse.

    For most business apps, either framework will do the job well. The quality of the team building the app matters more than the framework it picks. This guide covers where the two genuinely differ, so you can make the choice for your product rather than by habit. If you are still at the budgeting stage, start with our breakdown of mobile app development cost in India.

    FlutterReact Native
    Backed byGoogleMeta
    LanguageDartJavaScript / TypeScript
    How the UI is drawnFlutter renders every pixel itselfUses the platform’s real native components
    Look across platformsIdentical on Android and iOS by defaultFollows each platform’s native look
    PerformanceVery consistent, strong for heavy animationNear-native for business apps since the New Architecture
    ToolingOne official toolchain and DevToolsExpo is the recommended framework and build service
    Hiring in IndiaGrowing pool of Dart/Flutter developersLarge pool of JavaScript and React developers
    Code sharing with webFlutter web works for apps, weak for SEO sitesShares logic and types with React web apps
    Over-the-air updatesThrough third-party toolsBuilt into Expo

    Flutter vs React Native: How Each Framework Works

    The biggest technical difference explains most of the others.

    Flutter draws its own interface

    Flutter apps are written in Dart. Instead of using the buttons, lists and text fields provided by Android and iOS, Flutter draws the entire interface itself with its own rendering engine, Impeller. Every widget looks and behaves the same on every device because Flutter controls every pixel.

    That gives designers complete freedom and removes a whole class of “looks different on Android” bugs. The trade-off is that Flutter has to recreate the look of native controls, and new platform UI conventions take time to be matched.

    React Native uses native components

    React Native apps are written in JavaScript or TypeScript using React. Your components map to the real native views on each platform, so a React Native list is an actual iOS or Android list.

    Older React Native versions talked to native code through a “bridge” that could become a bottleneck. The New Architecture, now the default and the only path in current releases, replaced it with direct communication between JavaScript and native code. That change closed most of the performance gap people still associate with React Native.

    Flutter vs React Native Performance

    For typical business apps, such as booking, e-commerce, field service, dashboards and customer portals, users will not notice a performance difference between a well-built Flutter app and a well-built React Native app. In practice, the Flutter vs React Native performance question only matters at the edges.

    Those edges look like this:

    • Flutter is more predictable for animation-heavy interfaces, custom charts and complex transitions, because it renders everything through one engine.
    • React Native performs well for standard interfaces and lists, and benefits automatically when Apple and Google improve their native components.
    • Both can be made slow by poor engineering: oversized images, unnecessary re-renders, and heavy work on the main thread.

    If your app is a game, uses augmented reality, processes video in real time or depends on intensive background work, consider fully native development instead of either framework.

    UI and Design Consistency

    This is often the deciding factor.

    Choose Flutter when your brand needs an identical, custom-designed experience across devices, including custom components that look nothing like standard platform controls. Designers’ mock-ups translate directly, and QA checks one appearance rather than two.

    Choose React Native when you want the app to feel native on each platform, with Android and iOS users each getting the controls and behaviours they are used to, or when you are extending a design system that already exists in React on the web.

    Developer Experience and Tooling

    Both frameworks offer hot reload, so developers see changes in seconds, and both have mature debugging tools.

    • Flutter ships as one official package: the SDK, command-line tools, testing framework and DevTools all come from Google and are versioned together. There are fewer decisions to make.
    • React Native is now built with Expo in most new projects. Expo adds a managed build service, easy access to device features, and over-the-air (OTA) updates that let you ship JavaScript fixes without waiting for app store review.

    OTA updates are a practical advantage for React Native. Flutter can do something similar through third-party tools, but it is not part of the standard setup. Either way, OTA updates are only for fixes and small changes; new native features still go through store review.

    Ecosystem and Access to Device Features

    Both ecosystems cover the features business apps need: camera, maps, location, push notifications, biometrics, payments, file uploads and analytics. Payment gateways commonly used in India, such as Razorpay, provide SDKs for both.

    • React Native draws on the npm ecosystem, which is huge but uneven. Some older libraries have not been updated for the New Architecture, so check maintenance status before depending on one.
    • Flutter packages come from pub.dev, which is smaller but more consistent, with many core plugins maintained by the Flutter team itself.

    When a feature has no package, both frameworks let developers write native Kotlin or Swift code and call it from the app. Budget for this if your app relies on unusual hardware or a vendor SDK that only ships for native platforms.

    Hiring and Team Fit

    For many businesses, this matters more than any technical point.

    India has a very large pool of JavaScript and React developers. A team that already builds React web apps can become productive in React Native quickly, and the same engineers can work across web and mobile. Flutter has become very popular in India too, and experienced Flutter developers are readily available, but Dart is a separate skill that your web team is unlikely to have.

    If you plan to keep development in-house, choose the framework your team can hire for and maintain. If you work with an external team, ask what they have shipped and maintained in production, not just what they list. Our comparison of freelancers and development companies covers what to check before handing over a project.

    Sharing Code with Your Web Product

    If you already have, or plan to have, a web application, this can settle the decision.

    • React Native shares a language, types and often business logic with a React web app: API clients, validation rules, state management and utility code. Teams building a web platform and a mobile app together get the most benefit.
    • Flutter web can run the same app in a browser, which works well for internal tools and app-like dashboards. It is a poor fit for marketing sites and content that needs to rank in search, which is better served by a proper website built for SEO.

    Long-Term Maintenance

    An app is maintained for years after launch, so upgrade effort matters.

    • React Native upgrades were historically painful. Expo has made them far more manageable, and with the move to the New Architecture complete, the platform is more stable than it has been for years.
    • Flutter upgrades are usually smoother because the whole toolchain is versioned together, although breaking changes in plugins still happen.
    • Both are backed by large companies that use them in their own products, and both have large production users worldwide. Neither is at meaningful risk of disappearing within the life of a typical business app.

    Whichever you choose, set up automated builds, crash reporting and regular dependency updates from the start. Apps that skip upgrades for two years end up needing a costly catch-up project. Crash and performance monitoring are part of good observability practice for the backend too.

    Flutter vs React Native for Startups and Growing Businesses

    If you are a founder or a business owner rather than a developer, the Flutter vs React Native question is really a question about speed, risk and who will look after the app in three years. A few practical points matter more than benchmark charts.

    Getting to a first version. Both frameworks let a small team ship an MVP to Android and iOS in the same time it would take to build one native app. The fastest choice is the one your team or vendor has already shipped in production, because they already know the build, release and app store steps that slow first projects down.

    Owning the code later. Whoever builds version one rarely maintains it forever. React Native is easier to hand over to an in-house team that already works in React, and the same developers can support your website and dashboards. Flutter code is very consistent between projects, so a new Flutter developer can usually find their way around a well-structured codebase quickly.

    Reducing risk. Neither framework is going away. Flutter is backed by Google, React Native by Meta, and both power large, well-known apps. The bigger risk is an app built without tests, documentation or a release process, whichever framework it uses.

    Before you decide, ask these questions of your team or development partner:

    • Which framework have you shipped and maintained in production, and can we see those apps?
    • Do we have a React web app, design system or team that we want to reuse?
    • How custom is our design, and how much animation does the product need?
    • How will we release urgent fixes, and do we need over-the-air updates?
    • Who will maintain the app after launch, and can we hire for that framework?

    Clear answers to these usually settle the React Native vs Flutter choice in one meeting. If you want a second opinion, our mobile app development team can review your requirements and recommend an approach before you commit to a build.

    Does the Framework Change the Cost?

    Not much. Build costs for a comparable app are similar in Flutter and React Native, because both let one team deliver Android and iOS from one codebase. That is what saves money compared with building two native apps. The larger cost differences come from scope, backend work, design and the team you hire, as we cover in our app development cost guide.

    Where framework choice does affect cost is reuse. A company with an existing React web app and team will usually spend less with React Native. A company starting from nothing with a design-led product may move faster with Flutter.

    Flutter vs React Native: Which Should You Choose?

    Your situationBetter fit
    You have a React web app or a JavaScript teamReact Native
    You want to fix bugs quickly without waiting for store reviewReact Native
    Your brand needs an identical custom UI on every deviceFlutter
    The app is animation-heavy or visually complexFlutter
    You also need an internal web dashboard from the same codeFlutter (or React Native with a React web app)
    You are starting from scratch with no existing stackEither; choose based on your team or vendor’s strongest experience
    The app depends heavily on AR, real-time media or intensive background workNative (Kotlin and Swift)
    Flutter vs React Native decision guide: React Native for JavaScript teams and fast fixes, Flutter for custom UI and animation-heavy apps, native for AR and real-time media
    Flutter vs React Native decision guide: match your situation to the framework that fits it best.

    When to Choose Neither

    Cross-platform is the right default for most business apps, but not all of them:

    • Fully native (Kotlin for Android, Swift for iOS) when the product is built around deep platform features, demanding performance or the newest OS capabilities on day one.
    • A progressive web app (PWA) when users don’t need to find you in an app store and the browser can do everything the app needs.
    • Kotlin Multiplatform when you want native interfaces on each platform but shared business logic underneath, typically for teams already strong in Kotlin.

    Final Thoughts

    In the Flutter vs React Native debate, both are safe choices in 2026. React Native wins when you can reuse JavaScript skills, React code or a web team. Flutter wins when a custom, consistent interface is central to the product and you are not tied to an existing stack.

    Decide based on your team, your existing systems and your product’s design needs, and then invest in the things that matter more than the framework: a clear scope, a solid backend, testing, and a plan for maintenance.

    Whichever side of the Flutter vs React Native choice you land on, budget for the work that comes after launch: OS updates every year, framework upgrades, dependency checks, crash monitoring and small improvements based on what users actually do. A well-maintained app in either framework will serve your business far better than a neglected one built with the “right” tool.

    Not sure which framework fits your app?

    We build with both Flutter and React Native, and we recommend native or web when those fit better. Tell us about your product and the Drasken Labs team can help you choose the approach and scope the build. See our mobile app development services.

    Discuss your app with Drasken Labs →

    Is Flutter or React Native better in 2026?

    Neither is better for every app. React Native is usually the better choice when you have a JavaScript or React team or a React web app to share code with. Flutter is usually better when you need a highly custom, identical interface on Android and iOS and have no existing web stack.

    Is Flutter faster than React Native?

    For most business apps, users will not notice a difference. Flutter is more predictable for animation-heavy and visually complex interfaces, while React Native’s New Architecture has closed most of the older performance gap for standard apps.

    Which is easier to hire for in India, Flutter or React Native?

    React Native, in most cases, because India has a very large pool of JavaScript and React developers who can move into React Native quickly. Experienced Flutter developers are also widely available, but Dart is a separate skill.

    Does Flutter or React Native cost less to build an app?

    Build costs are similar for a comparable app because both deliver Android and iOS from one codebase. React Native can cost less if you can reuse an existing React web codebase or team.

    Can I use the same code for my website?

    With React Native, you can share business logic and types with a React web app. Flutter can run the same app on the web, which suits internal tools and dashboards, but it is not a good fit for marketing websites that need to rank in search engines.

    When should I build a native app instead?

    Choose native Kotlin and Swift development when your app depends on deep platform features, augmented reality, real-time media processing, intensive background work or the newest OS features as soon as they are released.

  • Build vs Buy Software: A Decision Framework for Growing Businesses

    Build vs Buy Software: A Decision Framework for Growing Businesses

    For a growing business, the build vs buy software decision comes down to one question: does this software support how you compete, or how you operate? Buy off-the-shelf software for standard functions every business needs, such as accounting, payroll, email and basic CRM. Build custom software when the process is what makes you different, when off-the-shelf tools force you into costly workarounds, or when subscription costs across users and tools start exceeding what it would cost to own the system.

    Most businesses end up with a mix: bought software for commodity functions, and custom software for the workflows and integrations that are specific to them. This guide gives you a framework to decide which is which, including the costs most comparisons leave out.

    Build vs Buy Software: The Short Version

    Buy when…Build when…
    The process is standard across businesses (accounting, payroll, email)The process is how you win customers or deliver your service
    A mature product does 80% or more of what you needEvery tool you try needs heavy workarounds or several products stitched together
    You need it working in weeksYou can invest months for a long-term advantage
    You have few users and simple needsPer-user subscriptions across a growing team are getting expensive
    Compliance and updates are handled better by a specialist vendorYou need control over data, integrations, roadmap or where the data lives

    The Real Cost of Buying

    Off-the-shelf software looks cheap because the price is on the website. The full cost includes much more:

    • Subscriptions that scale with you. Per-user pricing is fine for five people and painful for fifty. Add-ons, higher tiers and usage limits push it further.
    • Workarounds. Spreadsheets, manual re-entry and staff time spent bridging gaps between what the tool does and what you need.
    • Integration costs. Connecting several products usually needs connector tools, middleware or developer time anyway.
    • Switching costs. Your data, processes and training are tied to the vendor. Leaving later is often expensive.
    • Price and product changes. The vendor controls pricing, features and roadmap, and can change any of them.

    The Real Cost of Building

    Custom software has a larger upfront cost and a longer timeline. It also carries ongoing costs that must be planned for:

    • Initial development, from discovery and design to development, testing and launch
    • Hosting and infrastructure, which you pay for directly
    • Maintenance, typically 15–25% of the build cost each year for updates, security patches and fixes
    • Ongoing improvements as your business changes
    • Dependence on your development team, which makes documentation, code ownership and a good partner essential

    In return you get software that fits your process exactly, no per-user fees, and full control over data, integrations and roadmap. Our guide to custom software development services explains what a typical engagement includes.

    A Five-Question Build vs Buy Decision Framework

    1. Is this process a differentiator or a commodity?

    If a customer would never notice or care how you do it, as with payroll or bookkeeping, buy. If it shapes the customer experience, your speed, your pricing or your delivery, building may give you an advantage competitors cannot buy. Martin Fowler describes this as the utility vs strategic dichotomy.

    2. How well does the best available product fit?

    Test the leading options against your real workflows, not their demos. If the best fit covers most of what you need with configuration, buy. If you need three products plus spreadsheets to cover one process, that is a signal to build.

    3. What is the five-year total cost?

    Work out the total cost of ownership of each option over five years. Compare subscriptions for your projected team size, plus integration and workaround costs, against build cost plus hosting and maintenance. For many growing businesses, custom software becomes cheaper somewhere between year two and year four, while bought software stays cheaper for small teams with standard needs.

    4. How important is control?

    Consider data ownership and location, the ability to integrate with any system, and freedom from a vendor’s pricing and product decisions. Regulated industries and businesses with sensitive data often weigh this heavily.

    5. Can you support what you build?

    Custom software needs a team to maintain it, in-house or with a development partner. If you cannot commit to that, buy, or build something much smaller.

    A Worked Example: Five-Year Cost

    A 40-person service business compares a field-service SaaS product with a custom system:

    Buy (SaaS)Build (custom)
    Upfront₹1 lakh setup and data migration₹18 lakh build
    Yearly licences or hosting₹2,500 per user per month = ₹12 lakh a year₹1.5 lakh hosting a year
    Yearly integrations and workarounds₹3 lakhIncluded in the build
    Yearly maintenanceIncluded in subscription₹3.6 lakh (20% of build)
    Five-year totalAbout ₹76 lakhAbout ₹44 lakh

    With 10 users instead of 40, the SaaS cost falls to about ₹31 lakh over five years and buying wins. The numbers are illustrative; the point is to run them for your own team size, growth and requirements.

    The Hybrid Approach Most Businesses Should Take

    Build versus buy is rarely all or nothing. The most cost-effective setups usually:

    • Buy standard software for accounting, payroll, email, documents and communication
    • Build the core workflows that differentiate the business
    • Build integrations that connect bought tools so data flows without manual work
    • Add targeted automation to remove repetitive steps between systems

    Integration and automation often deliver most of the value of a custom system at a fraction of the cost, and our AI and automation team builds it.

    The same logic applies to infrastructure. Running WhatsApp messaging at scale, for example, is something most businesses should buy as a platform, such as WA Console, while building the business logic that decides what to send and when.

    Warning Signs You Made the Wrong Choice

    Signs you should have built:

    • Staff spend hours a week copying data between tools
    • You have changed your process to fit the software rather than the other way round
    • Subscription costs rise faster than revenue
    • You cannot get the reports or integrations you need at any price tier

    Signs you should have bought:

    • Your team is maintaining custom software for a standard function like invoicing or HR
    • The custom system is years behind comparable products and nobody has time to improve it
    • Only one developer understands how it works

    If You Decide to Build

    • Start with the core workflow, not every feature. Launch, use it, then extend it.
    • Own everything: source code, cloud accounts, domains and data.
    • Choose the right contract model. Fixed price suits a tightly defined first version, while time and material suits products that will evolve.
    • Plan for maintenance from day one in both budget and team.
    • Pick a partner, not just a coder. Our comparison of freelancers and development companies covers what to check.

    Final Thoughts on Build vs Buy Software

    Buy software for what every business does. Build software for what makes your business different, or when bought tools cost more in subscriptions and workarounds than owning the system would. Run a five-year cost comparison for your own numbers, and consider a hybrid of bought tools, custom core workflows and integrations before committing to either extreme.

    Weighing a custom build against off-the-shelf software?

    The Drasken Labs team can review your workflows and tools, estimate the five-year cost of each option, and recommend what to buy, what to build and what to integrate. See our custom software development services.

    Discuss build vs buy with Drasken Labs →

    Should I build or buy software for my business?

    Buy off-the-shelf software for standard functions such as accounting, payroll and email. Build custom software when the process differentiates your business, when available tools need heavy workarounds, or when subscription costs across your team exceed the cost of owning a system.

    Is custom software cheaper than SaaS in the long run?

    It can be. For larger or growing teams, per-user subscriptions plus integration and workaround costs often exceed the cost of building and maintaining custom software within two to four years. For small teams with standard needs, SaaS usually stays cheaper.

    What are the hidden costs of off-the-shelf software?

    Per-user pricing that grows with your team, add-ons and higher tiers, staff time spent on workarounds, integration tools and development, and the cost of switching vendors later.

    What are the ongoing costs of custom software?

    Hosting and infrastructure, plus maintenance of roughly 15–25% of the build cost each year for updates, security patches and fixes, and budget for new features as the business changes.

    Can I combine custom and off-the-shelf software?

    Yes, and most businesses should. A common approach is to buy standard tools, build the core workflows that differentiate you, and build integrations so data flows between them automatically.

  • Core Web Vitals for Business Websites: What They Measure, What Breaks Them, and What to Fix First

    Core Web Vitals for Business Websites: What They Measure, What Breaks Them, and What to Fix First

    Core Web Vitals for business websites come down to one question: does the page let a visitor become an enquiry without friction? A business website has one job that matters more than the rest: turning a visitor into an enquiry. Everything that slows that down, a hero image that takes four seconds to appear, a form that freezes when someone taps it, a button that jumps just as they go to click it, costs you leads before anyone reads a word of your copy.

    Google has a way of measuring exactly those three failures. They are a ranking signal, but for most businesses the bigger cost of failing them isn’t the ranking. It’s the visitor you paid to bring in who leaves before the page is usable.

    This guide explains what the three metrics measure in 2026, what typically breaks them on business websites, and the order we fix them in when we take over a slow site.

    Quick answer: To pass Core Web Vitals in 2026, a page needs Largest Contentful Paint (LCP) at or under 2.5 seconds, Interaction to Next Paint (INP) at or under 200 milliseconds, and Cumulative Layout Shift (CLS) at or under 0.1, measured at the 75th percentile of real Chrome visitors over a rolling 28-day window. Mobile and desktop are assessed separately.

    What are Core Web Vitals?

    Core Web Vitals are three field metrics that describe how a page feels to a real person: how quickly the main content appears, how quickly the page reacts to input, and whether the layout stays still while it loads.

    MetricWhat it measuresGoodNeeds improvementPoorWhat the visitor experiences
    LCP (Largest Contentful Paint)Loading: when the largest visible element, usually the hero image or headline, finishes rendering≤ 2.5 s2.5–4 s> 4 s“Is this page even loading?”
    INP (Interaction to Next Paint)Responsiveness: the delay between a tap, click or keypress and the next visual update, across the whole visit≤ 200 ms200–500 ms> 500 ms“I tapped the button and nothing happened.”
    CLS (Cumulative Layout Shift)Visual stability: how much content moves unexpectedly while the page loads≤ 0.10.1–0.25> 0.25“I clicked the wrong thing because the page jumped.”

    INP replaced First Input Delay (FID) as the responsiveness metric in March 2024. That change matters for business sites: FID only measured the first interaction, so a site could pass while its enquiry form, menu or filter felt sluggish. INP looks at interactions across the whole visit, which is why many sites that were “green” in 2023 started failing.

    The thresholds themselves have been stable since then. What changed recently is reach: LCP and INP are now measurable in all major browsers, not just Chrome, so the same numbers you see in Google’s tools can be collected from your Safari and Firefox visitors too.

    Core Web Vitals thresholds: LCP 2.5 s, INP 200 ms and CLS 0.1, with what each problem feels like to a visitor
    The three metrics, their thresholds, and what a visitor experiences when each one fails.

    Why Core Web Vitals matter for a business website

    Rankings: a tiebreaker, not a shortcut

    These metrics are part of Google’s page experience signals. Be realistic about their weight: relevance and content quality still decide most rankings. Where they matter is when your service page and a competitor’s are otherwise close. In local and B2B service searches, that’s common, because most pages targeting “website development company in Delhi” or “cloud consultant Dubai” say roughly the same thing.

    Conversions: where the real money is

    Speed and stability affect whether people act. The best-documented example is Vodafone Italy’s A/B test, published on web.dev, where improving LCP by 31% on otherwise identical landing pages produced 8% more sales. For a business website, the equivalent is enquiries, calls and booked consultations.

    Paid traffic: you pay for every bounce

    If you run Google or Meta ads to a landing page, every visitor who leaves before the page renders is a click you paid for and got nothing from. Slow landing pages quietly inflate your cost per lead.

    Your 75th-percentile visitor is not on your laptop

    Google grades you on the experience of the slower end of your real audience. For businesses selling into India, the UAE or Southeast Asia, that visitor is often on a mid-range Android phone on a mobile network. A page that feels instant on office Wi-Fi can still fail.

    Field data vs lab data: the mistake most businesses make

    The most common conversation we have goes like this: “Our developer showed us a Lighthouse score of 95, but Search Console says our pages are failing.” Both can be true.

    • Lab data (Lighthouse, the lab section of PageSpeed Insights) is a single simulated page load on a simulated device. It’s excellent for diagnosing problems and cannot tell you whether you pass.
    • Field data (the Chrome User Experience Report, shown in Search Console and at the top of PageSpeed Insights) is what real visitors experienced over the last 28 days. This is what Google uses.

    Lab tests also can’t measure INP properly, because INP depends on real people clicking real things. A perfect lab score with a heavy chat widget that only loads after interaction will still fail in the field.

    If your site doesn’t get enough traffic to have field data in Search Console, you have two options: use lab tests as a proxy, or collect your own real-user monitoring (RUM) data with the open-source web-vitals library. If you send RUM data into your own metrics stack, tag it by page template (home, service, blog post) rather than by full URL. Per-URL labels are one of the fastest ways to blow up your observability bill with high-cardinality metrics. Setting this up properly is part of what our observability service covers.

    Core Web Vitals field data vs lab data: Lighthouse diagnoses problems, CrUX field data decides pass or fail
    Lab data finds the cause; field data decides whether you pass.

    How to check your own site in five minutes

    1. Open PageSpeed Insights, paste your homepage URL and run the test.
    2. Read the top section first, “Discover what your real users are experiencing”. That is field data. If it says “Passed” for mobile, your homepage passes; the Lighthouse score underneath is only a diagnostic.
    3. Switch between the Mobile and Desktop tabs. Mobile is where most business sites fail.
    4. Repeat for one service page and your main landing page, since those templates usually differ from the homepage.
    5. In Search Console, open Experience → Core Web Vitals to see which groups of URLs are failing and on which metric.

    That gives you a clear, evidence-based picture of where you stand before you spend anything on fixes, and a baseline to compare against once changes go live.

    What usually breaks Core Web Vitals on business websites

    After auditing a lot of company sites, the causes are remarkably consistent. It’s rarely one big problem; it’s a pile of small, reasonable-sounding additions.

    What breaks Core Web Vitals on business websites: causes of poor LCP, INP and CLS
    The most common causes of poor LCP, INP and CLS on business websites.

    LCP problems: the hero takes too long

    • Oversized hero images or sliders. A 3 MB banner exported straight from a design tool, or a five-slide carousel where every slide loads upfront.
    • Lazy-loading the hero. Lazy loading is right for images below the fold and wrong for the one image that defines LCP.
    • Slow server response. Shared hosting, no page caching, or a CMS that builds every page on every request pushes Time to First Byte up, and LCP can’t start until the HTML arrives.
    • Render-blocking CSS and fonts. Several font families, each in multiple weights, loaded before anything can paint.
    • Client-side rendering of the hero. If the headline only appears after a JavaScript bundle downloads and runs, LCP waits for all of it.

    INP problems: the page is busy doing something else

    • Third-party scripts. Chat widgets, analytics, ad pixels, heatmaps, A/B testing tools and tag managers all compete for the same main thread your visitor’s tap needs.
    • Heavy page builders and plugin stacks. Each plugin adds its own JavaScript, often on every page whether it’s used or not.
    • Large JavaScript bundles. Especially on sites that ship an entire app framework to render what is mostly static marketing content.
    • Expensive form handling. Validation libraries, address autocomplete and CRM scripts that run long tasks on every keystroke.

    CLS problems: something arrives late and pushes everything down

    • Cookie banners and promo bars injected at the top of the page after it renders.
    • Images, videos and iframes without dimensions, so the browser doesn’t know how much space to reserve.
    • Web fonts swapping with very different metrics from the fallback font, reflowing every line of text.
    • Embeds such as Google Maps, YouTube, review widgets and social feeds that resize themselves once loaded.

    The fix order we use on business websites

    Fixing these metrics goes faster when you work in the right order. This is the sequence we follow.

    1. Measure by page template, not by page. Search Console groups similar URLs. Your service pages likely share one template; fix the template and you fix them all.
    2. Start with the pages that make money. Homepage, service pages and paid landing pages come before the blog archive.
    3. Fix whichever metric is in the “poor” band first. Moving a metric from poor to needs-improvement usually takes less effort than pushing an amber metric to green.
    4. Audit third-party scripts. Every script should have an owner and a reason. Remove the ones nobody can justify, delay the rest until after the page is interactive, and load chat widgets on intent (a click on a chat button) rather than on page load.
    5. Fix LCP. Serve the hero image in a modern format at the right size, don’t lazy-load it, give it high fetch priority, cache pages at the edge with a CDN, and pre-render marketing pages rather than building them per request.
    6. Fix CLS. Set width and height on media, reserve space for banners and embeds, and use font fallbacks with matched metrics.
    7. Fix INP. Break up long JavaScript tasks, defer non-essential work, and replace heavy components with lighter ones. INP is usually the hardest of the three, so budget time for it.
    8. Stop it regressing. Add a performance budget to your deployment pipeline so a new plugin or a 4 MB image fails the build instead of reaching production. This is standard work in our platform engineering engagements.
    9. Wait for the data. Field data is a 28-day rolling window. Expect to wait around four weeks before Search Console fully reflects a fix.
    Core Web Vitals fix order in nine steps, from measuring by template to waiting for 28 days of field data
    The nine-step fix order, from measuring by template to waiting for field data.

    Hosting and platform choices that affect LCP, INP and CLS

    There is no platform that passes or fails these metrics by default. We’ve seen fast WordPress sites and slow custom React sites. What matters is how the site is built and served.

    • WordPress can pass comfortably with a lean theme, disciplined plugin use and full-page caching. It struggles when a heavy page builder and 30 plugins are all loading on every page.
    • Headless or static setups (for example a Next.js frontend with WordPress as the CMS, which is what our own site runs on) make fast LCP easier because pages are pre-rendered, but they can still fail INP if the frontend ships too much JavaScript.
    • Hosting matters mostly through server response time and caching. A CDN in front of a well-configured server fixes more LCP problems than moving to more complex infrastructure. A marketing website almost certainly doesn’t need Kubernetes, and serving static assets from a CDN is also one of the easier ways to cut cloud costs. If you want this handled end to end, see our cloud and DevOps service.

    If your website includes logged-in areas such as customer dashboards or portals, INP becomes a software engineering problem rather than a website tweak. That’s the point where it helps to treat the site as an application, which we cover in our guide to custom software development services.

    Questions to ask your web developer or agency

    You don’t need to understand every technical detail to hold your website partner accountable. Ask these:

    • Do our key templates pass all three metrics in field data, on mobile and desktop?
    • Which third-party scripts load on our pages, and who decided each one was needed?
    • Is the hero image lazy-loaded? What format and size is it served in?
    • Are pages cached and served from a CDN?
    • What stops a new plugin or image from making the site slower after launch?
    • How will we know if performance regresses before Google does?

    If the answers are vague, performance probably wasn’t part of the brief. That’s worth knowing when you’re comparing quotes, because performance work is one of the real differences between a cheap site and a professional one, as we explain in how much a professional business website costs in 2026.

    How Drasken Labs builds for Core Web Vitals

    We treat Core Web Vitals for business websites as a requirement from the start of a project, not an audit item after launch. In our website development projects that means choosing a rendering approach that suits the content, setting image and script budgets before design sign-off, reserving layout space for every component that loads late, and wiring real-user monitoring into production so we see a regression before it shows up in Search Console. You can see examples of the sites we build in our recent website work.

    Is your website failing LCP, INP or CLS?

    Send us the URL. We’ll tell you which metric is failing, on which templates, and what it would take to fix, whether that’s a focused performance pass or a rebuild.

    Get a Core Web Vitals review from Drasken Labs →

    Sources and further reading

    Are Core Web Vitals a Google ranking factor?

    Yes. They are part of Google’s page experience signals. Content relevance and quality still matter more, so Core Web Vitals tend to act as a tiebreaker between pages that are otherwise similar.

    If my Lighthouse score is 100, do I pass Core Web Vitals?

    Not necessarily. Lighthouse is a lab test on a simulated device. Google assesses Core Web Vitals using field data from real Chrome visitors. Check the Core Web Vitals report in Search Console or the field-data section of PageSpeed Insights.

    How long does it take for fixes to show in Search Console?

    Field data uses a rolling 28-day window, so expect roughly four weeks before a fix is fully reflected. You can use the “Validate fix” option in Search Console to start tracking it.

    Why does Search Console show no Core Web Vitals data for my site?

    Your pages probably don’t have enough real Chrome traffic to be included in the Chrome User Experience Report. Use lab tools for diagnosis and consider collecting your own real-user data with the web-vitals library.

    Can a WordPress website pass Core Web Vitals?

    Yes. WordPress sites pass regularly when they use a lightweight theme, a small set of plugins, page caching and a CDN. Heavy page builders and large plugin stacks are the usual reasons they fail.

    What replaced First Input Delay (FID)?

    Interaction to Next Paint (INP) replaced FID as a Core Web Vital in March 2024. INP measures responsiveness across all interactions during a visit, not just the first one.

    Which Core Web Vital should I fix first?

    Fix whichever metric is in the “poor” band on your most valuable page templates first. After that, LCP usually has the most direct effect on leads, and INP usually takes the most engineering effort.

  • Website Performance Optimization: A Practical Guide for 2026

    Website Performance Optimization: A Practical Guide for 2026

    Website performance optimization is the work of making pages load, respond and stay visually stable fast enough that real visitors on real devices never notice the wait. In 2026, that goal has a precise definition: Google’s Core Web Vitals, measured on your actual traffic.

    Here’s the problem most businesses run into. Someone runs a Lighthouse test, sees a score of 62, installs a caching plugin, re-runs the test, sees 71, and calls it done. Three months later, Search Console still flags the same pages as “Poor,” the site still feels sluggish on a mid-range Android phone, and nobody is sure why.

    That happens because website performance optimization isn’t about a single score. It’s a set of budgets — for server time, bytes, JavaScript execution and layout — and a slow page is one that has blown through at least one of them. Optimization means finding which budget is overspent and fixing that one first.

    This guide walks through the approach we use in website development projects at Drasken Labs: what to measure, where the time usually goes, the fixes for each Core Web Vital, and how to keep a site fast after launch. If you’re still scoping a new site, performance is also one of the factors that shapes what a professional business website costs.

    Short answer: Measure field data first (PageSpeed Insights or Search Console), not lab scores. Fix server response time and the Largest Contentful Paint element before anything else. Then cut JavaScript — especially third-party scripts — to fix responsiveness, reserve space for every image, embed and font to stop layout shifts, and set performance budgets so regressions get caught before release.

    What website performance optimization actually measures

    A fast website isn’t one that gets a green number in a testing tool. It’s one where visitors experience three things:

    • The main content appears quickly. The visitor can see the headline, hero image or product within a couple of seconds.
    • The page responds immediately. Tapping a menu, a filter or a form field produces visible feedback without a lag.
    • Nothing jumps around. Buttons don’t move just as someone goes to tap them, and text doesn’t shift when an ad or font loads.

    Google formalized these three experiences as the Core Web Vitals. They are part of Google’s page experience signals in search, but they matter just as much for conversion: a lead form that lags or shifts under someone’s thumb loses enquiries regardless of where the page ranks.

    Core Web Vitals in 2026: the three numbers that matter

    MetricMeasuresGoodNeeds improvementPoor
    LCP — Largest Contentful PaintLoading: when the largest visible element renders≤ 2.5 s2.5–4.0 s> 4.0 s
    INP — Interaction to Next PaintResponsiveness: delay between an interaction and the next visual update≤ 200 ms200–500 ms> 500 ms
    CLS — Cumulative Layout ShiftVisual stability: unexpected movement of content≤ 0.10.1–0.25> 0.25

    Three details matter more than the thresholds themselves:

    • They’re measured at the 75th percentile. A page passes only if at least 75% of real visits meet the “good” threshold. Your fast office connection is irrelevant; the visitor on a crowded 4G network is not.
    • INP replaced First Input Delay in March 2024. FID only measured the delay before the first interaction was processed. INP looks at interactions across the whole visit, which makes it considerably harder to pass on JavaScript-heavy sites.
    • The thresholds haven’t changed. You may see claims that Google tightened LCP to 2.0 seconds. Google’s documentation still says 2.5 seconds. Aiming lower is a sensible safety margin, not a new rule.
    Website performance optimization targets: Core Web Vitals thresholds of LCP 2.5 s, INP 200 ms and CLS 0.1
    The three Core Web Vitals and the thresholds a page must meet at the 75th percentile.

    Lab data vs field data: why a 95 score can still fail

    There are two kinds of performance data, and confusing them is the most common reason website performance optimization work goes nowhere.

    Lab data comes from tools like Lighthouse, which load a page once in a simulated environment. It’s reproducible and useful for debugging, but it’s one synthetic visit on one simulated device.

    Field data comes from real Chrome users, collected in the Chrome User Experience Report (CrUX) over a rolling 28-day window. This is what Search Console reports and what Google uses for page experience. PageSpeed Insights shows both, with field data at the top when your site has enough traffic.

    A page can score 95 in Lighthouse and still fail INP in the field, because Lighthouse doesn’t click on anything. Real users do — and the chat widget, analytics tags and consent banner that sat idle during the lab test all compete for the main thread when a real visitor starts tapping.

    Use field data to decide what to fix. Use lab data to figure out why it’s slow and to verify fixes before they ship.

    Where the time actually goes: a diagnostic order

    When we audit a slow site, we work through the page load in the order the browser experiences it. Fixing a later stage while an earlier one is broken usually produces little visible improvement.

    1. Server response (TTFB). How long before the first byte of HTML arrives? If this is over roughly 800 ms for most visitors, nothing downstream can fully compensate.
    2. Render-blocking resources. CSS and synchronous scripts in the <head> that must download before anything paints.
    3. The LCP resource. Is the hero image or headline font discovered early, prioritized, and small enough?
    4. Main-thread JavaScript. How much script runs during load and on each interaction, and whose code is it?
    5. Layout stability. What moves after the first paint, and why?

    The Performance panel in Chrome DevTools shows all five on a single timeline. Record a load with CPU throttling set to 4x slowdown to approximate a mid-range phone; problems that are invisible on a developer laptop become obvious.

    Website performance diagnostic order: server response, render-blocking resources, LCP resource, main-thread JavaScript, layout stability
    Diagnose in the order the browser loads the page.

    How to fix Largest Contentful Paint (LCP)

    LCP is usually the hero image, a large heading, or a background image. Break its time into four parts — server response, resource discovery, download, and render — and fix whichever part dominates.

    Make the LCP image discoverable and high priority

    The browser can’t start downloading an image it hasn’t found yet. Images set via CSS backgrounds, injected by JavaScript sliders, or lazy-loaded are found late. Use a plain <img> in the HTML and tell the browser it matters:

    Engineers reviewing a deployment dashboard

    Never add loading="lazy" to the LCP image. Lazy loading is for images below the fold; on the hero, it delays exactly the element Google is timing.

    Serve the right format at the right size

    • Use AVIF or WebP, with JPEG as a fallback where your pipeline requires it.
    • Serve responsive sizes through srcset so a phone doesn’t download a 2,400-pixel desktop image.
    • Compress properly. A hero image rarely needs to exceed 150–250 KB.

    Remove render-blocking work

    • Inline the critical CSS needed for above-the-fold content and load the rest without blocking.
    • Add defer to scripts that don’t need to run before the first paint — which is most of them.
    • Self-host fonts, subset them to the characters you use, preload the one or two files needed for the first screen, and use font-display: swap or optional.

    Choose a rendering strategy that fits the page

    If the HTML is generated by client-side JavaScript, the LCP element doesn’t exist until that JavaScript downloads and runs. For content pages, that’s an avoidable delay.

    StrategyHow it worksBest for
    Static generation (SSG)HTML built ahead of time and served from a CDNMarketing pages, blogs, documentation
    Incremental regeneration (ISR)Static pages rebuilt in the background on a schedule or on publishCMS-driven sites, product catalogs
    Server-side rendering (SSR)HTML generated per requestPersonalized or frequently changing pages
    Client-side rendering (CSR)Browser builds the page from JavaScriptLogged-in app screens where SEO doesn’t matter

    A business website with a headless CMS usually belongs in the first two rows. Serving a marketing page as a client-rendered single-page app is one of the most expensive performance mistakes we see.

    How to fix Interaction to Next Paint (INP)

    INP fails when the browser’s main thread is busy at the moment a visitor interacts. The browser can only do one thing at a time on that thread; if a 400 ms script is running when someone taps “Menu,” the tap waits.

    Ship less JavaScript

    The most effective INP fix is removing code, not optimizing it. Audit the bundle and ask of each dependency whether the page needs it at all. Carousels, animation libraries and full UI frameworks often ship on pages that use a fraction of them.

    Break up long tasks

    Any task over 50 ms blocks interactions. Split heavy work into smaller chunks and yield back to the browser between them, so input can be handled in the gaps. In event handlers, do the visual update first — open the menu, show the spinner — and defer the analytics call or data processing until after the next paint.

    Reduce hydration cost

    Frameworks that render on the server and then “hydrate” in the browser can re-run large amounts of code on load. Partial hydration, server components, and loading interactive islands only when they scroll into view all reduce that cost.

    Keep the DOM reasonable

    Very large DOMs make every style recalculation and layout slower. Pages with many thousands of nodes — often from page builders or mega-menus rendered in full on every page — take longer to update after each interaction.

    How to fix Cumulative Layout Shift (CLS)

    CLS is usually the easiest vital to fix, because the causes are predictable:

    • Images and videos without dimensions. Always set width and height attributes, or use CSS aspect-ratio, so the browser reserves space before the file arrives.
    • Embeds, ads and iframes. Give their containers a fixed minimum height.
    • Injected banners. Cookie notices, promo bars and “download our app” prompts that push content down. Overlay them instead of inserting them above content.
    • Web fonts. A fallback font with different metrics causes text to reflow when the web font loads. Use size-adjusted fallbacks so both fonts occupy the same space.
    • Animations. Animate transform and opacity, not top, height or margin.

    Server, hosting and caching

    Front-end work can’t rescue a slow origin. If time to first byte is high, look here first.

    • Put a CDN in front of everything. Static assets and, where possible, full HTML pages should be served from an edge location near the visitor. For a business serving India, the Gulf and Australia from one origin, this alone can remove hundreds of milliseconds.
    • Set proper cache headers. Fingerprinted assets (app.3f9a2c.js) can be cached for a year with Cache-Control: public, max-age=31536000, immutable. HTML needs shorter lifetimes or revalidation.
    • Enable Brotli compression and HTTP/3 on your CDN or reverse proxy.
    • Fix slow backend queries. On dynamic sites, TTFB problems often trace back to unindexed database queries, N+1 query patterns, or uncached API calls to third-party services on every request.
    • Add an object cache. Redis or a similar cache in front of expensive queries keeps response time flat under load.

    None of this requires a complicated platform. A slow marketing site is almost never a container orchestration problem, and you probably don’t need Kubernetes to fix it. What it needs is correct managed hosting and CDN setup. There’s a cost benefit too: serving cached assets from the edge reduces origin load and egress, which is one of the easier wins in cloud cost optimization.

    Third-party scripts: the performance budget nobody owns

    On many business websites we audit, the site’s own code is not the biggest problem. Third-party scripts are: analytics, tag managers, advertising pixels, heatmaps, A/B testing tools, chat widgets, review badges and social embeds.

    Each one was added by a different person for a sensible reason, and none of them were ever removed. Together they can easily account for most of the JavaScript executed on a page — and they run on the same main thread as your menu and forms.

    • Inventory every tag and name an owner for each. If nobody can say what a script is for, remove it.
    • Load non-essential scripts after the page becomes interactive, or on first user interaction.
    • Use facades for heavy embeds. Show a static preview of a chat widget or video player and load the real thing only when clicked.
    • Consider server-side tagging for analytics and ad conversions, which moves work off the visitor’s device.
    • Treat the tag manager as production code. Changes there can undo weeks of website performance optimization work in one publish.

    WordPress performance: specific traps

    WordPress powers a large share of business websites, and it can be very fast. It usually isn’t, for a few recurring reasons:

    • Plugin accumulation. Every plugin can add its own CSS, JavaScript and database queries — often on every page, whether used there or not.
    • Page builders. Visual builders tend to produce deep, heavy markup and large style sheets. They trade development speed for runtime cost.
    • Stacked optimization plugins. Two caching or minification plugins fighting each other is common, and it often breaks things rather than speeding them up.
    • No persistent object cache. Without Redis or Memcached, WordPress re-runs the same queries on every uncached request.
    • Cheap shared hosting with slow PHP workers, which shows up directly as high TTFB.

    For content-heavy sites where performance is a priority, a headless setup — WordPress as the editing interface, with a static or incrementally regenerated front end served from a CDN — removes most of these problems. It’s the architecture we run for our own site. Where the site needs logic beyond content, such as portals, bookings or integrations, that becomes custom software development rather than theme configuration.

    Keeping it fast: budgets and monitoring

    Performance decays. A new hero video, a marketing tag, a plugin update — each one small, and six months later the site is back where it started. The fix is to treat website performance optimization as a constraint that’s checked continuously, not a project that ends.

    Set performance budgets

    Define limits that fail a build or block a release when exceeded. For example:

    • LCP under 2.0 s in lab tests on a throttled mobile profile
    • Total JavaScript under 200 KB compressed for content pages
    • No single image over 250 KB
    • No new third-party origin without review

    Lighthouse CI can run these checks on every pull request.

    Collect real-user monitoring

    CrUX data arrives with a 28-day lag and only at page-group level. Real-user monitoring (RUM) — sending Core Web Vitals from your visitors’ browsers to your own analytics — shows regressions within hours and tells you which device, page type and element is responsible.

    One warning from experience: tag RUM data by page template or route (/blog/[slug]), not by full URL, user ID or session. Unbounded labels are how a monitoring setup turns into a surprise bill, which we covered in detail in our piece on high-cardinality metrics.

    Pair RUM with alerting — for example, notify the team when p75 LCP on product pages exceeds 2.5 s for an hour — and performance becomes something you see before customers do. That’s the same principle behind the observability work we do for application backends, applied to the front end.

    A 30-day website performance optimization plan

    If you’re starting from a site that’s failing Core Web Vitals, this is a realistic order of work:

    1. Week 1 — Measure. Pull field data from Search Console and PageSpeed Insights for your key templates: home, service pages, blog posts, product or landing pages. Record a throttled DevTools trace of each. Inventory every third-party script.
    2. Week 2 — Server and LCP. Fix TTFB with caching and a CDN. Make LCP images discoverable, prioritized and properly sized. Remove render-blocking CSS and scripts.
    3. Week 3 — JavaScript and INP. Remove unused scripts and dependencies, defer the rest, add facades for heavy embeds, and break up long tasks in your own code. Fix CLS causes in the same pass.
    4. Week 4 — Guardrails. Add performance budgets to the build, set up RUM and alerting, and document who owns the tag manager.

    Expect field data to take up to four weeks to reflect the changes, because of CrUX’s rolling window. Watch your RUM data in the meantime.

    A 30-day website performance optimization plan: measure, fix server and LCP, fix JavaScript and INP, add guardrails
    A 30-day website performance optimization plan, week by week.

    How Drasken Labs approaches website performance

    We treat website performance optimization as an engineering constraint from the start of a project, not a plugin added at the end. In practice, that means:

    • Architecture first. Choosing a rendering strategy and hosting setup that suits each page type before any design is built.
    • Budgets in the build. Performance limits enforced in CI, so regressions are caught in review rather than in Search Console.
    • Infrastructure we operate. CDN, caching and hosting configured and run by the same team that built the site.
    • Monitoring after launch. Real-user Core Web Vitals tracked per template, with alerts when something slips.

    For existing sites, we start with a performance audit: field data, traces of key templates, and a third-party script inventory, ending in a prioritized list of fixes with expected impact. You can see how we build and run sites in our recent work.

    Is your website failing Core Web Vitals?

    Send us the URL and your key pages. We’ll tell you where the time is going and what to fix first.

    Request a performance audit

    Final thoughts

    Website performance optimization isn’t about chasing a perfect Lighthouse score. It’s about making sure the visitor on an average phone and an average network sees your content quickly, can interact with it immediately, and isn’t fighting a page that moves under their thumb.

    The order matters: measure real users, fix the server and the LCP element, cut JavaScript — especially scripts you didn’t write — stabilize the layout, and then put budgets and monitoring in place so the work doesn’t quietly unravel.

    Most sites don’t need a rebuild to pass Core Web Vitals. They need someone to find the two or three budgets that are overspent and fix those first.

    Sources and further reading

    What is website performance optimization?

    Website performance optimization is the process of improving how quickly a website loads, how fast it responds to interactions, and how visually stable it is while loading. In practice, it’s measured with Google’s Core Web Vitals: Largest Contentful Paint, Interaction to Next Paint and Cumulative Layout Shift.

    What are good Core Web Vitals scores in 2026?

    A page is rated “good” when LCP is 2.5 seconds or less, INP is 200 milliseconds or less, and CLS is 0.1 or less, measured at the 75th percentile of real visits.

    Does website speed affect SEO?

    Yes, but modestly. Core Web Vitals are part of Google’s page experience signals, which act more like a tie-breaker between similarly relevant pages than a primary ranking factor. Speed has a larger and more direct effect on bounce rate and conversion.

    Why is my PageSpeed score high but Core Web Vitals still failing?

    The PageSpeed score is lab data from one simulated visit. Core Web Vitals in Search Console are field data from real users over 28 days. Real visitors use slower devices and networks, and they interact with the page, which exposes INP problems that lab tests don’t trigger.

    How long does it take for Core Web Vitals improvements to show?

    Field data in the Chrome User Experience Report uses a rolling 28-day window, so improvements typically take up to four weeks to be fully reflected in Search Console and PageSpeed Insights.

    Will a caching plugin fix a slow WordPress site?

    It helps with server response time, but it doesn’t fix heavy JavaScript, unoptimized images, layout shifts or third-party scripts. Most WordPress sites that fail Core Web Vitals need changes to plugins, themes and scripts, not just caching.

    How much does website performance optimization cost?

    It depends on the cause. Fixing images, caching and a handful of scripts is a small, contained engagement. If the site is built on a heavy page builder or renders content client-side, meaningful gains may require rebuilding key templates. An audit is the fastest way to find out which case you’re in.