When you modernize a classic SharePoint site, the top navigation bar and quick launch menu often disappear or stop working. Users see empty menus, missing links, or a broken site structure after the modernization process. This happens because the classic navigation provider is not replaced by the modern navigation provider during the upgrade. This article explains why the navigation breaks and provides a step-by-step fix to restore it.
Key Takeaways: Fixing Navigation After Classic Site Modernization
- SharePoint admin center > Classic SharePoint admin center > Site collections: Verify the site collection mode before starting modernization.
- PnP PowerShell Enable-CommSite cmdlet: Converts a modernized classic site to a communication site, which enables the modern navigation provider.
- SharePoint site settings > Navigation Elements: Manually turn on the global navigation and current navigation under modern site settings.
Why Classic Site Modernization Breaks Navigation
Classic SharePoint sites use a navigation system built on the Structural Navigation provider. This provider stores navigation nodes in the site’s content database and renders them through server-side code. When you modernize a classic site, SharePoint removes the classic master page and page layouts but does not automatically migrate the navigation data to the modern navigation provider. The modern navigation provider relies on managed metadata (for global navigation) and structural navigation (for current navigation) but expects a different data format.
The result is that the site appears in modern UI mode, but the navigation web parts receive no data. The top navigation bar shows no links, the quick launch menu is empty, and custom links added in the classic site are gone. This is not a corruption of the original navigation data — the data still exists in the classic navigation store. The problem is that the modernization process does not trigger the conversion of that data into the format that modern navigation expects.
The Role of Site Collection Mode
A classic site collection retains its site collection mode even after the modern UI is enabled. The mode determines which navigation provider is active. If the site collection mode remains “Classic experience,” the modern navigation provider is not loaded. You must change the site collection mode to “Modern” to activate the correct navigation provider. This is the root cause of most navigation breakages after modernization.
Steps to Restore Navigation After Modernization
Follow these steps in order. Do not skip the PowerShell step — the admin center alone cannot change the site collection mode for modernized sites.
- Check the current site collection mode
Go to SharePoint admin center > Classic SharePoint admin center > Site collections. Select the modernized site and look at the Site collection mode column. If it shows “Classic experience,” the navigation will not work in modern UI. - Install and connect to PnP PowerShell
Open Windows PowerShell as an administrator. RunInstall-Module PnP.PowerShell -Scope CurrentUserto install the PnP module. Then connect to your tenant withConnect-PnPOnline -Url https://yourtenant.sharepoint.com/sites/yoursite -Interactive. Sign in with a SharePoint admin account. - Convert the site to a communication site
Run the cmdletSet-PnPHomePage -SitePage Home.aspxto set a modern home page. Then runEnable-CommSite -SiteUrl https://yourtenant.sharepoint.com/sites/yoursite. This cmdlet changes the site collection mode to “Modern” and activates the communication site navigation provider. Wait 5 minutes for the change to propagate. - Enable navigation elements in site settings
Go to Site settings > Navigation Elements (or Settings > Navigation in modern UI). Turn on Enable global navigation and Enable current navigation. If these options are missing, the conversion in step 3 did not finish — wait and refresh the page. - Add links to the modern navigation
In Site settings > Navigation, click Add link to recreate your navigation structure. Use the same link URLs from the classic site. You can also use PnP PowerShell to bulk-add navigation links withAdd-PnPNavigationNode -Location TopNavigationBar -Title "Link Name" -Url "https://...".
Alternative Method: Restore Classic Navigation Temporarily
If you need the classic navigation back immediately while you plan the migration, you can revert the site to classic mode. Go to Site settings > Site collection features and deactivate the Modern UI experience feature. This restores the classic master page and the old navigation. This is a temporary workaround — the site will lose modern UI features like the modern page library.
If Navigation Still Has Issues After the Main Fix
Top Navigation Bar Shows Only “Home” After Conversion
This happens when the site conversion succeeded but no navigation nodes were migrated. The modern navigation provider starts empty. Use the steps in method 1 to add links manually or via PowerShell. You can also use Get-PnPNavigationNode -Location TopNavigationBar to check existing nodes.
Quick Launch Menu Is Missing Entirely
The quick launch menu in modern sites is called current navigation. If it is missing, go to Site settings > Navigation Elements and ensure Enable current navigation is turned on. If it is already on, run Repair-SPOSite -Identity https://yourtenant.sharepoint.com/sites/yoursite in SharePoint Online Management Shell to repair the site’s navigation infrastructure.
Custom Script and Navigation Links Are Blocked
Classic sites often use custom JavaScript to modify navigation. Modern sites block custom scripts by default. If your navigation relied on script injection, those scripts will not run. Remove custom script dependencies and use the native navigation settings instead. You can enable custom scripts at the tenant level in SharePoint admin center > Settings > Custom Script, but this is not recommended for security reasons.
Classic Navigation vs Modern Navigation: Key Differences
| Item | Classic Navigation | Modern Navigation |
|---|---|---|
| Data storage | Content database (structural nodes) | Managed metadata service or site-level structural nodes |
| Rendering method | Server-side master page (v4.master) | Client-side web parts (TopNavigationBar, QuickLaunch) |
| Custom script support | Full support via Script Editor web part | Blocked by default; use SharePoint Framework extensions |
| Max number of links | No enforced limit (performance degrades after ~100) | Up to 200 links per navigation level |
| Site collection mode required | Classic experience | Modern experience (communication site) |
After you complete the steps above, your modernized site will have a working navigation bar with the same links you had in the classic site. Test the navigation on a few pages to ensure all links resolve correctly. For large navigation structures, use PnP PowerShell to export the classic navigation nodes with Get-PnPNavigationNode -Location QuickLaunch and import them into the modern site. This saves time compared to manual link entry.