Practical guideUpdated 2026-09-15

Broken link checker for SharePoint

SharePoint has no built-in broken link checker. For SharePoint Online and modern sites, use PnP PowerShell to export links and test them, or a crawler-based checker on the public parts of the site. For SharePoint 2013, the on-premises "Link Checker" is absent too; use a PowerShell script against the content database or a desktop crawler with authentication. Fix by updating links, adding redirects, or removing pages.

Searches for a SharePoint broken link checker come from two groups: admins of SharePoint Online and modern sites, and teams still running SharePoint 2013 on-premises. Neither version includes a checker, and most online tools cannot reach authenticated pages. This guide gives a working method for each version, explains where an online checker does and does not help, and shows how to turn the results into fixes.

01

Why SharePoint makes broken links hard to find

SharePoint stores links in three places that behave differently: hyperlinks inside page and wiki content, links in navigation and quick launch, and hyperlink columns in lists and libraries. Content is usually behind authentication, so external crawlers see a login page rather than the site. And SharePoint's own search does not report HTTP status, so a broken target is invisible until someone clicks it.

The consequence is that a checker has to run with credentials from inside the tenant or on-premises farm, or has to be pointed only at the public-facing subset of the site.

02

Methods by SharePoint version

The table summarises the practical options. Each is expanded below.

Broken link checking options by SharePoint version
VersionPractical methodHandles authenticated pages?Effort
SharePoint Online and modern sitesPnP PowerShell export of links, then HTTP status testYes, runs with your credentialsModerate: one script
SharePoint 2013 on-premisesPowerShell against the content database or object model; or a desktop crawler with Windows authYesModerate to high
Public SharePoint pages (any version)Any online broken link checker or crawlerNo, public pages onlyLow
Third-party SharePoint add-insMarketplace link checkersYes, variesLow, but licensing cost
03

SharePoint Online: the PnP PowerShell method

Install PnP.PowerShell, connect to the site with Connect-PnPOnline, and enumerate pages with Get-PnPListItem on the Site Pages library. For each page, read the CanvasContent1 or WikiField content, extract href values with a regular expression, and deduplicate. Then test each URL with Invoke-WebRequest, treating 404, 410, and connection failures as broken and 401 or 403 as "needs credentials, check manually". Export the results to CSV with page URL, link URL, and status so owners can fix their own pages.

Repeat the same loop for hyperlink columns by enumerating lists with Get-PnPList and reading fields of type URL. Navigation links can be read with Get-PnPNavigationNode. Run the script monthly from a scheduled task or Azure Automation.

04

SharePoint 2013: on-premises options

SharePoint 2013 exposes the same content through the server object model. A PowerShell script run on a farm server with Add-PSSnapin Microsoft.SharePoint.PowerShell can iterate SPSite, SPWeb, and SPList objects, read page content and URL fields, and test targets. This needs farm-level permissions and should run outside business hours on a large farm. The alternative is a desktop crawler such as Screaming Frog configured with Windows authentication, pointed at the site collection; it handles internal and external links in one pass but may miss links inside web parts that render client-side.

Because 2013 is out of mainstream support, treat the audit as part of a migration plan: broken links are much cheaper to fix before content is moved to SharePoint Online than after.

05

When an online broken link checker is enough

If part of your SharePoint estate is public, for example a published communication site or an externally shared document hub, any crawler-based checker can audit it. SerionFlow's free broken link checker will crawl a public URL and list broken internal and external links without an account. It cannot see authenticated pages, and it is not a SharePoint add-in; use it for the public surface and one of the scripted methods for the rest.

  • Public communication sites: online checker works.
  • Authenticated intranet: PnP PowerShell or on-premises script.
  • Mixed estates: both, with results merged by page URL.
06

What to do with the results

Sort by page views using SharePoint site usage analytics so the most-visited pages are fixed first. For internal targets that moved, update the link or add a redirect in SharePoint Online's site redirect settings. For external targets that are gone, replace with an archived copy or remove the link. For hyperlink columns, bulk-edit in grid view. Record fixes in the CSV so the next monthly run shows progress rather than the same list.

Step by step

  1. 01

    Choose the scope

    Decide whether you are auditing public pages, authenticated pages, or both, because that determines whether an online checker or a credentialed script is needed.

  2. 02

    Export the links

    For SharePoint Online, run PnP PowerShell to enumerate Site Pages, hyperlink columns, and navigation nodes, extracting every href into a list with its source page.

  3. 03

    Test each target

    Request each URL and record the HTTP status; treat 404, 410, and connection failures as broken, and 401 or 403 as needing manual review.

  4. 04

    Prioritise by traffic

    Join the results to site usage analytics so links on frequently visited pages are fixed before links on pages nobody opens.

  5. 05

    Fix and record

    Update links, add redirects for moved content, remove dead external links, and note each fix in the export so the next run measures progress.

  6. 06

    Schedule the rerun

    Run the script monthly from a scheduled task or Azure Automation, and crawl public pages with an online checker at the same cadence.

Clear answers

Frequently asked questions

Does SharePoint Online have a built-in broken link checker?

+

No. Neither SharePoint Online nor modern sites include a link checker. The practical method is a PnP PowerShell script that enumerates page content, hyperlink columns, and navigation, tests each target, and exports the results, or a marketplace add-in that does the same with a licence.

How do I check broken links in SharePoint 2013?

+

Run a PowerShell script on a farm server using the SharePoint server object model to iterate sites, webs, lists, and page content, then test each link target. Alternatively, point a desktop crawler with Windows authentication at the site collection. Do this before any migration.

Can an online broken link checker scan my SharePoint site?

+

Only the public parts. Online checkers, including SerionFlow's free broken link checker, crawl what an anonymous visitor can see. Authenticated intranet pages return a login page to the crawler and must be audited with a credentialed script or add-in.

Which links does a SharePoint audit usually miss?

+

Links inside hyperlink columns in lists and libraries, links in navigation and quick launch, and links inside web parts that render client-side. A complete audit reads all three sources, not just page body content.

How often should I check SharePoint for broken links?

+

Monthly for active intranets, and immediately before and after any migration or site restructure. Scheduling the PnP script in Azure Automation makes the monthly run unattended, with results emailed to site owners for their own pages.

Continue exploring

Related SerionFlow resources

More in Guides

All guides

Make the next move obvious

Let SerionFlow turn your market evidence into momentum.

Confirm the market, rank the opportunities that matter, create brand matched pages on your domain, and keep moving with controlled weekly intelligence.

Choose how SerionFlow uses cookies.

Essential cookies keep the site secure and working. Product analytics helps us improve reliability. Optional cookies help us remember preferences and improve campaigns. You can change optional cookies anytime in Cookie Settings.