You want to display a live Notion page on your company website or blog, but the embedded content does not update automatically when you edit the source page in Notion. By default, Notion embeds are static iframes that require a manual browser refresh to show changes. This article explains how to configure a Notion page embed with auto-refresh on an external site using Notion’s public sharing feature and a third-party embed tool.
Key Takeaways: Auto-Refresh Notion Page Embed on External Site
- Notion Share > Publish > Copy Link: Generates a public URL that can be embedded on external sites; without this step the embed will not display.
- Embed.pub or similar tool: Wraps the Notion page URL in an iframe with a configurable refresh interval to force updates every N seconds or minutes.
- Custom CSS and refresh interval settings: Adjust the embed appearance and set auto-refresh timing to match your content update frequency.
How Notion Page Embedding Works and Why Auto-Refresh Is Needed
Notion allows you to share any page publicly via a unique URL. When you embed that public URL into an external website using a standard iframe, the browser loads a static snapshot of the page. Notion does not push real-time updates to embedded iframes. This means visitors see the version of the page that existed at the time of the embed load. Any edits you make in Notion after that point remain invisible until the visitor manually refreshes the browser tab.
Auto-refresh solves this by forcing the iframe to reload its source URL at a set interval. The refresh does not come from Notion itself. Instead, a third-party embed service or a small JavaScript script on your site reloads the iframe content periodically. The refresh interval should match how often your Notion page content changes. A 30-second refresh works for dashboards or status pages. A 5-minute refresh suits documentation or team wikis.
Prerequisites for Setting Up Auto-Refresh
Before you begin, confirm you have the following:
- A Notion workspace with editor or admin access to the page you want to embed.
- The ability to publish the page publicly. Notion Free, Plus, Business, and Enterprise plans all support public page sharing.
- Access to the HTML source of the external website where the embed will appear. If you use a CMS like WordPress or Squarespace, you need a custom HTML block or an iframe embed plugin.
- A third-party embed service or the ability to add a small JavaScript snippet to your site. This guide uses Embed.pub as an example because it provides a free tier and simple configuration.
Steps to Set Up a Notion Page Embed With Auto-Refresh on an External Site
Follow these steps to publish your Notion page, generate an embed code with auto-refresh, and place it on your external site.
- Publish the Notion page publicly
Open the Notion page you want to embed. Click the Share button in the top-right corner of the page. Under Share to web, toggle the switch to On. Click Copy link to copy the public URL. This URL ends with a long alphanumeric string. Keep this link for the next step. - Open the Notion public page in a browser to test it
Paste the copied URL into a new browser tab and press Enter. Confirm the page loads correctly and shows all content you want to embed. If the page looks wrong, return to Notion and adjust the layout or permissions before continuing. - Go to the Embed.pub website
Navigate to embed.pub in your browser. This service converts any URL into an embeddable iframe with auto-refresh, custom dimensions, and optional CSS styling. No account or payment is required for basic usage. - Paste the Notion public URL into Embed.pub
On the Embed.pub homepage, locate the input field labeled Enter URL. Paste the Notion public URL you copied in step 1. The tool will attempt to load a preview of the page. - Configure the embed settings
Below the URL input, you will see several options. Set Width to100%or a fixed pixel value like800. Set Height to a value that fits your layout, for example600. Under Auto Refresh, enter the refresh interval in seconds. For a dashboard that updates every 30 seconds, enter30. For a team wiki that changes hourly, enter3600. Leave the CSS field blank unless you want to override the Notion page styling. - Generate the embed code
Click the Generate Embed button. Embed.pub displays an HTML iframe snippet. The snippet contains asrcattribute pointing to an Embed.pub URL that wraps your Notion page. It also includes the refresh interval parameter. - Copy the generated embed code
Select the entire HTML snippet and copy it to your clipboard. The snippet looks similar to this:<iframe src="https://embed.pub/your-unique-id?refresh=30" width="100%" height="600" frameborder="0"></iframe>. - Paste the embed code into your external site
Open the page editor of your external website. If you use WordPress, add a Custom HTML block and paste the snippet. If you use Squarespace, use a Code block. If you edit raw HTML files, paste the snippet where you want the Notion embed to appear. Save or publish the page. - Test the auto-refresh behavior
Open your external site in a browser tab. Observe the Notion embed. Make a small edit to the original Notion page, such as changing a word or adding a new line. Return to your external site and wait for the refresh interval you set. After the interval elapses, the embed should reload and show the updated content. If it does not, check that the Notion page is still published publicly and that the embed URL is correct.
If the Notion Embed Does Not Auto-Refresh or Displays Incorrectly
Several common problems can prevent auto-refresh from working or cause the embed to display incorrectly. Below are the most frequent issues and how to resolve them.
Embed Shows a Blank White Box
A blank embed usually means the Notion page is not published publicly. Return to the Notion page, click Share, and confirm the Share to web toggle is set to On. Also check that you copied the public URL, not the internal Notion workspace URL. The internal URL begins with notion.so/workspace-name/ and will not work on external sites.
Embed Loads but Never Updates
If the embed loads the page once but does not refresh, the auto-refresh interval may be set to zero or the embed service may not support auto-refresh on the free tier. Go back to Embed.pub and confirm you entered a positive number in the Auto Refresh field. If you are using a different embed service, verify that it supports the refresh parameter or provides a similar setting.
Embed Shows a Notion Login Screen
This happens when the Notion page has not been published publicly. Only public pages can be embedded on external sites. If you need to embed a page that contains sensitive data, consider using Notion’s official embed feature within another Notion page. That scenario does not support auto-refresh on external sites.
Auto-Refresh Interval Is Too Short and Causes Performance Issues
Setting a refresh interval below 10 seconds can cause high CPU usage on the visitor’s device and may trigger rate limits on the embed service. For most use cases, a 30-second to 5-minute interval provides a good balance between freshness and performance. If your content changes constantly, consider using a real-time service like Notion API with WebSocket instead of an iframe embed.
Notion Page Embed Options Compared
| Item | Standard Notion Embed (iframe) | Embed.pub with Auto-Refresh |
|---|---|---|
| Refresh method | Manual browser refresh | Automatic at set interval |
| Setup time | 2 minutes | 5 minutes |
| Cost | Free | Free tier available |
| Custom CSS | Not supported | Supported via Embed.pub |
| Refresh interval range | N/A | 10 seconds to 24 hours |
| Requires third-party service | No | Yes |
You can now embed a live, auto-refreshing Notion page on any external website. Start by publishing your Notion page publicly, then use a third-party embed tool like Embed.pub to wrap the URL with an auto-refresh parameter. Test the embed on your site and adjust the refresh interval based on how often your content changes. For advanced control, consider using the Notion API to build a custom embed with WebSocket updates instead of periodic polling.