Microsoft Power Pages (formerly known as Power Apps Portals) is a low-code platform for building secure, external-facing websites that integrate with Microsoft Dataverse.
Whether you’re a developer, administrator, or beginner, taking regular backups of your Power Pages website is essential before:
- Making configuration changes
- Deploying new features
- Applying updates
- Migrating between environments
- Performing disaster recovery
Many users believe that Export Solution provides a complete backup of a Power Pages website. However, this is not always true. The correct backup approach depends on the type of website and how it was created.
Understanding What Needs to Be Backed up
A Power Pages website consists of multiple components stored in Dataverse.
| Component | Stored In | Backup Method |
|---|---|---|
| Website Configuration | Dataverse | Power Platform CLI |
| Web Pages | Dataverse | CLI |
| Page Templates | Dataverse | CLI |
| Web Templates | Dataverse | CLI |
| Content Snippets | Dataverse | CLI |
| Site Settings | Dataverse | CLI |
| CSS / JavaScript | Dataverse | CLI |
| Images (Web Files) | Dataverse | CLI |
| Dataverse Tables | Dataverse Database | Environment Backup |
| Power Apps | Dataverse | Solution Export |
| Power Automate Flows | Dataverse | Solution Export |
A complete backup should include both the portal configuration and the Dataverse environment.
Method 1 – Backup Using Power Platform CLI (Recommended)
The Power Platform CLI (PAC CLI) is Microsoft’s recommended way to back up a Power Pages website.
Advantages
- Complete website download
- Version control friendly
- Supports Git
- Easy to automate
- Best for DevOps and ALM
Step 1 – Install Power Platform CLI
Install the latest Power Platform CLI.
Verify installation:
pac --version
Example:
1.35.6
Step 2 – Authenticate
pac auth create
A browser window opens.
Sign in using your Microsoft account.
Verify authentication:
pac auth list
Step 3 – Create Backup Folder
Example:
D:\PowerPagesBackup
Navigate to it:
cd D:\PowerPagesBackup
Step 4 – Download the Website
Download the website:
pac pages download
or
pac pages download --path D:\PowerPagesBackup
If multiple websites exist:
pac pages list
Download a specific website:
pac pages download --webSiteId <WebsiteID> --path D:\PortalBackup
What Gets Downloaded?
Example structure:
PortalBackup
│
├── website.yml
├── web-pages
├── web-templates
├── page-templates
├── content-snippets
├── web-files
├── site-settings
├── page-markers
├── publishing-state
├── languages
└── lists
Everything is stored as YAML files, making it easy to track changes using Git.
Restore the Website
Upload the backup:
pac pages upload --path D:\PortalBackup
Method 2 – Store the Backup in Git
After downloading the portal, commit the files into a Git repository.
Example:
git add .
git commit -m "Portal Backup July 2026"
Benefits:
- Version history
- Rollback capability
- Team collaboration
- Change tracking
Method 3 – Environment Backup
An Environment Backup creates a backup of the entire Dataverse environment, including:
- Dataverse Tables
- Power Pages configuration
- Power Apps
- Power Automate Flows
- Business Rules
- Plugins
- Security Roles
Navigate to:
Power Platform Admin Center → Environment → Backups
This method is best for disaster recovery because it captures the complete environment.
Method 4 – Export Solution (Not a Complete Backup)
This is the most misunderstood backup method.
Many users believe exporting a solution backs up the entire website.
It does not.
What Does Solution Export Include?
Export Solution works well for solution-aware components, such as:
- Custom Dataverse Tables
- Power Apps
- Power Automate Flows
- Business Rules
- Plugins
- Security Roles
- Custom Components
These components are intended for deployment between environments.
Why Doesn’t It Work for Every Portal?
Power Pages websites can be created using different data models.
Microsoft introduced the Enhanced Data Model, which makes websites more compatible with Application Lifecycle Management (ALM).
According to Microsoft documentation:
If the Site command doesn’t appear on the Add Existing menu, your environment doesn’t include any websites that were created by using the Enhanced Data Model.
This statement is very important.
When you open a solution and select:
Add Existing
you should see:
Add Existing
├── Table
├── App
├── Flow
├── Site
If Site is missing, your environment does not contain an Enhanced Data Model website.
This usually means your website is:
- A legacy Power Apps Portal (Classic Portal), or
- A website created before the Enhanced Data Model was introduced.
In this case, you cannot add the website itself to a solution.
As a result, exporting the solution does not back up the portal configuration.
Example
Imagine two environments.
Environment A – Legacy Portal
Created in 2021.
Characteristics:
- Site option is not available
- Portal cannot be added to a solution
- Export Solution only exports:
- Custom Tables
- Apps
- Flows
- Plugins
The website pages, templates, snippets, and web files are not backed up.
Environment B – Enhanced Data Model Website
Created recently using the Enhanced Data Model.
Characteristics:
- Site option appears under Add Existing
- Website can be added to a solution
- More website metadata becomes solution-aware
However, Solution Export should still not be considered a complete backup strategy.
It is primarily intended for Application Lifecycle Management (ALM) rather than disaster recovery.
What If My Website Uses the Enhanced Data Model?
Even if the website supports the Site component, Microsoft still recommends using the Power Platform CLI for website backup.
The CLI exports:
- Web Pages
- Web Templates
- Page Templates
- Site Settings
- Content Snippets
- Web Files
- Lists
- Basic Forms
- Website Metadata
This provides a much more complete backup of the website configuration.
Method 5 – Manual Backup
For very small portals, you can manually save:
- HTML
- CSS
- JavaScript
- Images
- Configuration
However, this method is time-consuming, error-prone, and not recommended for production environments.
Comparison of Backup Methods
| Method | Website Configuration | Dataverse Data | Best For |
|---|---|---|---|
| Power Platform CLI | ✅ Yes | ❌ No | Website backup |
| Environment Backup | ✅ Yes | ✅ Yes | Disaster recovery |
| Solution Export | ⚠️ Partial | ⚠️ Solution-aware only | ALM and deployments |
| Git Repository | ✅ Yes (CLI files) | ❌ No | Version control |
| Manual Copy | ⚠️ Partial | ❌ No | Small demo websites |
Example Backup Strategy
Suppose your Customer Portal contains:
- 120 Web Pages
- 35 Web Templates
- 50 Content Snippets
- 200 Images
- 10 Site Settings
- 5 Custom Dataverse Tables
A recommended backup process would be:
- Download the website using:
pac pages download --path D:\PortalBackup - Commit the downloaded files to Git.
- Export your solution to capture custom tables, flows, and other solution-aware components.
- Create an Environment Backup from the Power Platform Admin Center.
This approach protects both your website configuration and your Dataverse environment.
Best Practices
- Always take a backup before making production changes.
- Use the latest version of the Power Platform CLI.
- Store CLI backups in Git.
- Schedule regular Environment Backups.
- Export Solutions for deployment and ALM.
- Periodically test your restore process.
- Store backup copies in multiple secure locations.
Common Mistakes
- Assuming Solution Export is a complete website backup.
- Ignoring Dataverse data during backup.
- Not checking whether the Site option exists under Add Existing.
- Using an outdated CLI version.
- Making production changes without a backup.
