NewProfiles are here!View user profiles guide
Back to Blog
Image HostingTutorialsTips & Tricks

Image Hosting for Notion Docs — Reliable External Images in Notion

December 8, 2025 8 min read 1 views

Notion's built-in image handling works for personal notes, but external image hosting gives you more control. Here's how to use CDN-hosted images in Notion for faster loading, reliable public pages, and reusable assets.

Quick Takeaways

  • How Notion Handles Images Internally
  • Upload and Storage
  • The Signed URL Problem
  • Image Size and Performance

Notion has become a go-to tool for team wikis, project documentation, knowledge bases, personal notes, and even public-facing websites. Images play a critical role in making Notion pages useful and engaging — screenshots of processes, diagrams of architectures, product photos, team headshots, and design assets all need reliable hosting.

But Notion's built-in image handling has some limitations that become apparent as your workspace grows. Understanding these limitations — and how external image hosting solves them — will improve both your workflow and the reliability of your Notion pages.

How Notion Handles Images Internally

Upload and Storage

When you paste or upload an image directly into Notion, the platform stores it on its own infrastructure. The image gets a temporary signed URL (an S3 pre-signed URL) that includes a token. This URL expires periodically, and Notion refreshes it when someone views the page.

The Signed URL Problem

Notion's internal image URLs look like this:

https://prod-files-secure.s3.us-west-2.amazonaws.com/abc123/image.png?X-Amz-Signature=...

These URLs are not permanent. They expire after a set time (typically hours), meaning:

  • You cannot use them as reliable image links outside Notion
  • Embedding Notion-hosted images in external websites fails when the token expires
  • API integrations that reference these URLs may break
  • Archived or exported pages may have broken images if URLs expire before caching

Image Size and Performance

Notion doesn't optimize uploaded images. A 5 MB PNG screenshot remains a 5 MB file. When your page has 10 such images, that's 50 MB of image data loading on each page view. Notion pages with many large images can be noticeably slow, especially on mobile devices or slower connections.

Why Use External Image Hosting for Notion

Permanent, Stable URLs

External image hosts like ImgLink provide permanent direct links that never change or expire. The same URL works today and will work in five years. This is essential for:

  • Public Notion pages (published via Notion or Super/Fruition)
  • Notion templates shared with others
  • Documentation that gets exported or archived
  • Notion pages embedded in presentations or other tools

CDN Performance

Images hosted on a CDN load faster than Notion's internal hosting, especially for public pages viewed by an international audience. A CDN serves images from the geographically nearest server, reducing latency from seconds to milliseconds.

Reusability Across Pages

When you upload the same logo or diagram to multiple Notion pages, each page stores a separate copy. With external hosting, you upload once and use the same URL everywhere. Update the image once at the hosted URL, and every Notion page referencing it shows the update.

Image Optimization

Before uploading to Notion, you can compress images and resize them to appropriate dimensions. A 5 MB screenshot compressed to 200 KB loads 25x faster with no visible quality difference at screen resolution. This makes a massive difference for pages with many images.

How to Add External Images to Notion

Method 1: Embed Link (Recommended)

  1. Upload your image to ImgLink
  2. Copy the direct image URL
  3. In Notion, type /image to insert an image block
  4. Select "Embed link"
  5. Paste the direct URL
  6. The image loads from the external CDN

This method is preferred because Notion fetches the image directly from the CDN each time the page loads. The URL is permanent, the image loads fast, and you maintain full control of the hosted file.

Method 2: Paste URL in Existing Image Block

  1. Click on any image block in Notion
  2. Click "Replace" in the image toolbar
  3. Choose "Embed link"
  4. Paste the direct URL from your image host

Method 3: Via Notion API

If you're building Notion pages programmatically (using the Notion API), you can specify external image URLs directly in the block content:

{
  "type": "image",
  "image": {
    "type": "external",
    "external": {
      "url": "https://i.imglink.cc/your-image.png"
    }
  }
}

This is the only option when creating pages via API that need persistent image URLs. Using Notion's internal upload via API is possible but results in the same expiring signed URLs.

Best Practices for Notion Images

Optimize Before Uploading

Every image you add to Notion should be optimized first:

  • Screenshots: Save as PNG, then compress to reduce file size. Most screenshots compress 60-80% without visible quality loss.
  • Photos: Resize to display dimensions (typically 1200-1600px wide for Notion's content width) and compress as JPEG quality 85.
  • Diagrams and flowcharts: Export as SVG when possible (infinite scalability). If SVG isn't an option, use PNG.
  • Icons and logos: Use PNG with transparency. Keep dimensions reasonable (200-400px).

Organize Your Hosted Images

When using external hosting for Notion, adopt a naming convention that makes images easy to find later:

  • project-name/screenshot-feature-login.png
  • team-wiki/headshot-jane-doe.jpg
  • docs/architecture-diagram-v2.png

If your image host supports albums or folders, create a structure that mirrors your Notion workspace.

Use Consistent Image Widths

Notion displays images at the width of the content area (about 700-900px depending on page width settings). Images wider than this are scaled down; images narrower may appear small. For a consistent look, standardize on image widths:

  • Full-width content images: 1200-1600px wide
  • Inline screenshots: 800-1000px wide
  • Icons and small graphics: 200-400px wide

Use Cases for External Images in Notion

Public Knowledge Bases

Many companies publish their Notion workspace as a public knowledge base (using Notion's "Share to web" or tools like Super.so). For these public pages, external CDN-hosted images load significantly faster than Notion's internal hosting, and the permanent URLs ensure images never break when pages are cached by search engines.

Notion Templates

If you create and distribute Notion templates (free or paid), external images are essential. When someone duplicates your template, Notion-hosted images may not copy correctly to the new workspace. External URLs work regardless of who duplicates the template.

API-Generated Pages

When generating Notion content programmatically — CRM integrations, automated reports, content pipelines — you need external image URLs. Upload images to ImgLink via the API, get the permanent direct URL, then reference that URL in your Notion API calls.

Cross-Platform Documentation

Teams that use Notion alongside other tools (Confluence, GitHub, Slack) benefit from having a single source of truth for images. Upload to an external host once, then use the same URL in Notion, GitHub README files, Slack messages, and email newsletters. When the image needs updating, change it once at the hosted location.

Portfolio and Resume Pages

Notion pages used as personal portfolios or resumes should use optimized, CDN-hosted images for the best possible first impression. Slow-loading images on a portfolio page make a poor impression — fast-loading images demonstrate attention to quality.

Notion-Specific Tips

Image Captions

Notion allows captions below images. Use them for context, attribution, or to improve accessibility. Captions don't transfer if you export to Markdown, so also include alt text descriptions in your documentation when possible.

Toggle Blocks for Image-Heavy Pages

If a page has many images (e.g., a screenshot tutorial), consider placing image-heavy sections inside toggle blocks. This lets readers expand sections on demand rather than loading all images at once.

Database Gallery Views

Notion databases with gallery views use the first image in each page as a cover. For consistent galleries, ensure each page's first image has identical dimensions and orientation. External hosting makes it easy to maintain a standardized set of cover images.

Notion Page Covers and Icons

You can use external URLs for both page covers (the banner image at the top) and page icons. This is useful for branded pages where you want consistent, high-quality branding images that are centrally managed.

Comparing Notion Image Options

FeatureNotion NativeExternal (ImgLink)
URL StabilityExpires (signed URLs)Permanent
CDN DeliveryLimitedGlobal CDN
File OptimizationNoCompress/resize before upload
Cross-Platform UseNo (Notion only)Any platform
API SupportUpload API (expires)Permanent URLs via API
TemplatesMay break on duplicateWorks everywhere
Page Load SpeedVariableFast (CDN)
Drag-and-DropYesCopy-paste URL

For casual personal notes, Notion's built-in image upload is convenient — drag, drop, done. But for any Notion page that might be shared publicly, used as a template, referenced via API, or integrated with other tools, hosting images externally on ImgLink with CDN delivery provides the reliability and performance that Notion's internal hosting can't match.

Apply This Workflow on ImgLink

ImgLink is built for the exact workflow covered in this guide: fast uploads, permanent direct links, Cloudflare CDN delivery, and no-signup sharing when you need to move quickly. If you want to turn the advice above into a repeatable publishing system, start with one canonical hosted image URL and reuse it across docs, posts, forums, and social channels.

Recommended Next Steps

Use these related resources to keep building the same workflow across adjacent image-hosting topics:

Need permanent image hosting?

Upload images with permanent direct links, fast CDN delivery, and no signup required. Use ImgLink for the workflows this guide discusses.

Comments