How to Remove a Web Part from Modern Page in SharePoint Online using PowerShell?

Requirement: Remove a web part from a Modern page in SharePoint Online.

How to Remove a Web Part from SharePoint Online Page?

In SharePoint Online, you can remove a web part from a page by editing the page and then deleting the web part. This process is relatively simple and only requires a few steps. In this blog post, we’ll show you how to remove a web part from a page in SharePoint Online using the browser, and PowerShell.

To remove a web part from SharePoint Online page, follow these steps:

  • Login to your SharePoint Online site >> Navigate to the page where you would like to remove a web part from.
  • Click on the “Edit” button in the top-right corner of the page.How to remove a web part from sharepoint online page
  • Select the web part by placing the cursor in the web part you would like to delete >> Click on the delete button to delete the web part from the page.remove web part from the modern page sharepoint online
  • Click on the “Republish” button to save your changes.

PnP PowerShell to Remove a Web Part from SharePoint Online Page

You can also use PowerShell to remove a web part from a modern page. This can be handy if you want to remove a web part from multiple pages. Here’s how it’s done:

#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
$PageName ="Branding-Templates.aspx"
$InstanceId = "56a09c21-3cd8-4fc8-8967-6a950f0c8738"

#Connect to the site
Connect-PnPOnline -Url $SiteURL -Interactive

#Remove Web Part from page
Remove-PnPPageComponent -Page $PageName -InstanceId $InstanceId -Force

You can obtain the InstanceID using DevTools in the browser (shortcut key: F12).

get web part instance id in sharepoint online

You may not know the web part instance ID always, and it may not be efficient to hard-code it in the script, isn’t it? Instead, let’s locate a web part based on its type and position (section/column) and then remove it from the page:

#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Marketing"
$PageName ="Branding-Templates.aspx"

Try {
    #Connect to the site
    Connect-PnPOnline -Url $SiteURL -Interactive

    #Get the page
    $Page= Get-PnPPage -Identity $PageName

    #Get the specific Web Part from the page
    $WebParts = $page.Controls
    $WebPartToRemove = $WebParts | Where {$_.Type.Name -eq "PageText" -and $_.section.Order -eq 1 -and $_.column.Order -eq 1}

    If($WebPartToRemove -ne $Null)
    {
        #Remove the Web Part from page
        Remove-PnPPageComponent -Page $Page -InstanceId $WebPartToRemove.InstanceId -Force
        $Page.Publish()
        Write-Host "Web Part has been Removed from the page successfully!" -f Green
    }
    Else
    {
       Write-Host "Web Part Not Found!" -f Yellow
    }
}
Catch [System.Exception]
{
    Write-Host -f Red "Error:"$_.Exception.Message
}

This script tries to get the Text web part in the 1st section and 1st column of the page and removes it. Please note, You may have to adjust the Web part type, section, and column parameters in the script accordingly.

Salaudeen Rajack

Salaudeen Rajack - SharePoint Expert with Two decades of SharePoint Experience. Love to Share my knowledge and experience with the SharePoint community, through real-time articles!

Leave a Reply

Your email address will not be published.