How to Profile Notion Page Load Performance
🔍 WiseChecker

How to Profile Notion Page Load Performance

You may notice that some Notion pages take several seconds to load while others open instantly. This delay is usually caused by the number of blocks on the page, the complexity of linked databases, or the size of embedded files. This article explains how to use Notion’s built-in page profiling tools and manual inspection methods to identify what is slowing down a specific page. By the end, you will know exactly which elements to remove or optimize to improve load speed.

Key Takeaways: How to Profile Notion Page Load Performance

  • Developer Tools > Performance tab: Record a page load profile to see block rendering times and network request durations.
  • Page Analytics panel: View block count, database relation depth, and embedded file sizes directly inside Notion.
  • Ctrl+Shift+I > Console > window.__NOTION_DEVTOOLS: Access raw performance data including block render order and API call timings.

What Affects Notion Page Load Time

Notion renders pages as a tree of blocks. Each block, whether it is a text paragraph, a database view, or an embedded file, requires a separate API call to load its content. When you open a page, Notion fetches the top-level blocks first, then recursively loads child blocks. This process creates a waterfall of network requests. The more blocks and deeper nesting you have, the longer the page takes to become interactive.

Block Count and Depth

A page with 500 blocks loads slower than a page with 50 blocks, but the nesting structure matters more. A page with 10 top-level blocks each containing 50 children generates more API requests than a flat page with 500 blocks. Notion must resolve each child block before the parent can finish rendering. This is why deeply nested toggle lists or multi-level databases cause noticeable delays.

Database Relations and Rollups

Linked databases with relation properties to other databases force Notion to fetch rows from multiple tables. Each relation property creates an additional query. Rollup properties that aggregate data from related rows multiply this effect. A single database view with five relation columns can trigger dozens of API calls before the view displays.

Embedded Content

Embedded files, images, videos, and third-party embeds such as Google Docs or Figma frames load independently from Notion’s block system. Each embed initiates a separate HTTP request. Large image files without compression increase bandwidth usage and parsing time. Embeds from slow external services can block page rendering entirely if they fail to load quickly.

Steps to Profile a Notion Page

  1. Open the page in a desktop browser
    Use Chrome or Edge for the most accurate profiling tools. Notion’s desktop app uses the same rendering engine, but browser dev tools offer better performance recording features.
  2. Open Developer Tools
    Press Ctrl+Shift+I on Windows or Cmd+Option+I on Mac. Click the Performance tab. If you do not see it, click the double-arrow icon to reveal hidden tabs.
  3. Start a performance recording
    Click the record circle icon or press Ctrl+E. Reload the page by pressing F5 or Ctrl+R. Let the page finish loading completely. Click the stop icon to end the recording.
  4. Analyze the flame chart
    Look for tall orange or purple bars labeled BlockRender, APIRequest, or EmbedLoad. Hover over each bar to see the exact block ID or URL. The width of the bar represents the time spent on that operation.
  5. Identify slow blocks by ID
    Click the bar for a BlockRender event. In the Summary panel below, find the block ID. Copy this ID. Switch to the Console tab and type window.__NOTION_DEVTOOLS.getBlockInfo('PASTE_BLOCK_ID'). This returns the block type, parent ID, and child count.
  6. Check database query performance
    In the Performance recording, look for events with names starting with queryCollection or getCollectionData. These indicate database view loads. Click each event and note the duration. A query taking more than 500 ms suggests the database has too many rows or complex filters.

Using Notion’s Built-in Page Analytics

  1. Open the page analytics panel
    Click the three-dot menu at the top right of the page. Select Page Analytics from the dropdown. If you do not see this option, your workspace may not have it enabled. Contact your workspace owner to enable it under Settings & Members > Settings > Workspace > Page Analytics.
  2. Review the block count and size
    The panel shows the total number of blocks, the number of database views, and the total size of embedded files. It also lists the top 10 slowest blocks by load time.
  3. Identify relation depth warnings
    Page Analytics displays a warning if a database view contains relation properties that chain more than three levels deep. Each additional level increases load time by roughly 200 ms.

Common Issues Found During Profiling

Database View Loads Exceed 1 Second

If a single database view takes more than one second to load, check the number of rows in the source database. Notion performs best with databases under 10,000 rows. Reduce the row count by archiving old entries or splitting the database into smaller tables. Also verify that filters and sorts are not using complex formulas. A filter on a rollup column is slower than a filter on a text property.

Embedded Content Blocks Page Rendering

When an embed fails to load, Notion waits for a timeout that can exceed 30 seconds. Replace iframe embeds with link previews whenever possible. For images, use compressed formats like WebP instead of PNG. If you must embed a large video, set the embed to load on click by using a toggle block with the embed inside.

Too Many Toggle Blocks Open by Default

Toggle blocks that are expanded on page load force Notion to fetch their children immediately. Close all toggles before saving the page. Alternatively, convert deeply nested toggles into separate subpages. This reduces the number of blocks the parent page must load at once.

Notion Page Load Performance: Block Types Compared

Block Type Average Load Time Impact on Page Load
Text paragraph 2-5 ms Minimal
Database view (simple) 100-300 ms Moderate
Database view with relations 400-1200 ms High
Embedded image (1 MB) 200-800 ms Moderate to high
Embedded video (stream) 1-3 s Very high
Toggle block (collapsed) 1-3 ms Minimal
Toggle block (expanded) 50-150 ms per child High

The table shows that database views with relations and expanded toggles are the most expensive block types. Focus your optimization efforts on these two areas first.

You now know how to use browser developer tools and Notion’s Page Analytics panel to find the exact blocks slowing down your page. Start by profiling one slow page and removing or simplifying the elements that appear as the longest bars in the performance recording. For ongoing maintenance, set a monthly reminder to check Page Analytics for any page that has grown beyond 500 blocks. Use the window.__NOTION_DEVTOOLS console command to drill into specific block IDs without guessing.