Canvas apps are one of Power Platform’s most powerful features. They let you design beautiful, custom apps quickly — but as apps grow more complex, performance often takes a hit.
I’ve seen apps where:
- Screens take 10+ seconds to load.
- Users scroll endlessly waiting for data to render.
- Laggy experiences cause adoption to stall.
The good news? Most performance issues are fixable with a few proven techniques.
In this article, I’ll share 7 tips I use on every project to make canvas apps run smoother and load faster.
1. Keep Data Delegable
The Issue: Non-delegable queries force Power Apps to pull all data locally before filtering or sorting. For large datasets, this kills performance.
The Fix:
- Always check the warnings (blue triangle) for delegation issues.
- Use delegable functions where possible (
Filter,Sort,LookUpon indexed columns). - Limit the number of records returned with
FirstNor server-side filters.
Tip: For complex filters, consider pre-processing data in Power Automate or Dataverse views.
2. Reduce OnStart Complexity
The Issue: Apps with heavy
OnStartlogic can feel like they “hang” on launch.
The Fix:
- Move non-essential logic (like caching static data) to OnVisible of individual screens.
- Use Concurrent() to run multiple initializations at the same time.
- Load data lazily — only fetch what’s needed when it’s needed.
3. Cache Data for Reuse
The Issue: Pulling the same data multiple times increases load times and network calls.
The Fix:
- Use collections or variables to cache data locally:
ClearCollect(colCustomers, Filter(Customers, Active = true)) - Cache reference data (e.g., dropdown lists) once and reuse across screens.
- Consider SaveData() / LoadData() for offline scenarios.
4. Minimize Controls on Each Screen
The Issue: Every control (label, button, gallery) adds overhead. A screen with 200+ controls will drag.
The Fix:
- Combine related controls using containers or components.
- Use reusable components for repeated UI elements.
- Replace multiple labels/icons with single HTML or rich text controls when possible.
5. Optimize Formulas
The Issue: Overly complex formulas with repeated calculations slow down rendering.
The Fix:
- Store reused calculations in variables:
Set(varTotal, Sum(colOrders, Amount)) - Avoid using
Ifchains when aSwitchor lookup table would be cleaner. - Minimize
ForAllloops — use collections or delegation where possible.
6. Preload Images & Media
The Issue: Images hosted externally or with large file sizes increase load times.
The Fix:
- Compress and resize images before uploading.
- Use media library or CDN for faster access.
- Preload key images using
Concurrent()duringOnStartif needed.
7. Monitor Performance with Built-in Tools
The Issue: You can’t fix what you don’t measure.
The Fix:
- Use the Monitor tool in Power Apps Studio to see:
- Data call times.
- Control render times.
- Network latency.
- Review Performance Analyzer to identify the slowest screens and formulas.
Bonus Tip: Split Your App
If your app does too much, no amount of optimization will fully save it.
Sometimes the best move is to split one large app into smaller, purpose-built apps and link them with deep links or navigation screens.
Final Thoughts
Canvas apps can deliver amazing experiences — but performance issues quickly erode user trust. By focusing on delegation, caching, control counts, and clean formulas, you can create apps that feel as smooth as native applications.
These are techniques I bring to every Power Platform project I lead. If you’ve struggled with slow apps, start with one or two of these tips and you’ll see measurable improvements almost immediately.
What’s the biggest performance challenge you’ve faced in a canvas app?
Let me know in the comments — I’d love to share strategies and learn what’s worked for you.
📩 Contact me or subscribe to the blog for more tips.