{"id":50530,"date":"2020-04-02T12:37:07","date_gmt":"2020-04-02T07:07:07","guid":{"rendered":"https:\/\/www.quickonlinetips.com\/archives\/?p=50530"},"modified":"2026-10-08T18:52:05","modified_gmt":"2026-10-08T13:22:05","slug":"find-remove-internal-broken-links","status":"publish","type":"post","link":"https:\/\/www.quickonlinetips.com\/archives\/2020\/04\/find-remove-internal-broken-links\/","title":{"rendered":"How to Find and Remove Broken Internal Links in WordPress (Bulk Fix)"},"content":{"rendered":"<p>Broken internal links frustrate readers and waste Google&#8217;s crawl of your site. After a big content cleanup, when we deleted or merged hundreds of old posts, our blog was left with hundreds of links pointing to pages that no longer existed. Here&#8217;s how to find and remove broken internal links in WordPress quickly, in bulk, and keep them from coming back.<\/p>\n<p><strong>Quick answer:<\/strong> Install the free <a href=\"https:\/\/wordpress.org\/plugins\/broken-link-checker\/\" target=\"_blank\" rel=\"noopener\">Broken Link Checker<\/a> plugin and let it scan your site. Filter the results to <strong>Broken<\/strong> links containing your own domain, select them all, and use the bulk action <strong>Unlink<\/strong> (or edit each link to point to a working page). Then check Google Search Console for any 404s it still finds.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6ad26a3867976\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"ez-toc-cssicon\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #1a202c;color:#1a202c\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #1a202c;color:#1a202c\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6ad26a3867976\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.quickonlinetips.com\/archives\/2020\/04\/find-remove-internal-broken-links\/#Why_broken_internal_links_hurt_your_site\" >Why broken internal links hurt your site<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.quickonlinetips.com\/archives\/2020\/04\/find-remove-internal-broken-links\/#How_to_find_broken_internal_links_in_WordPress\" >How to find broken internal links in WordPress<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.quickonlinetips.com\/archives\/2020\/04\/find-remove-internal-broken-links\/#How_to_remove_broken_internal_links_in_bulk\" >How to remove broken internal links in bulk<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.quickonlinetips.com\/archives\/2020\/04\/find-remove-internal-broken-links\/#Redirect_instead_of_unlinking\" >Redirect instead of unlinking<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.quickonlinetips.com\/archives\/2020\/04\/find-remove-internal-broken-links\/#Other_free_tools_to_find_broken_links\" >Other free tools to find broken links<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.quickonlinetips.com\/archives\/2020\/04\/find-remove-internal-broken-links\/#Keep_broken_links_from_coming_back\" >Keep broken links from coming back<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.quickonlinetips.com\/archives\/2020\/04\/find-remove-internal-broken-links\/#Frequently_asked_questions\" >Frequently asked questions<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.quickonlinetips.com\/archives\/2020\/04\/find-remove-internal-broken-links\/#Does_Broken_Link_Checker_slow_down_WordPress\" >Does Broken Link Checker slow down WordPress?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.quickonlinetips.com\/archives\/2020\/04\/find-remove-internal-broken-links\/#Should_I_unlink_or_redirect_broken_links\" >Should I unlink or redirect broken links?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.quickonlinetips.com\/archives\/2020\/04\/find-remove-internal-broken-links\/#Do_broken_internal_links_hurt_SEO\" >Do broken internal links hurt SEO?<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Why_broken_internal_links_hurt_your_site\"><\/span>Why broken internal links hurt your site<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>Bad user experience:<\/strong> readers who click a link and land on a 404 page often leave.<\/li>\n<li><strong>Wasted crawling:<\/strong> Googlebot follows internal links to discover and re-crawl pages. Dead ends waste that effort.<\/li>\n<li><strong>Lost link value:<\/strong> internal links pass authority between your posts. A broken link passes nothing.<\/li>\n<\/ul>\n<p>Every SEO audit tool flags broken links as a priority issue. They pile up quickly if you&#8217;ve done a site audit and deleted thin posts, creating lots of <a href=\"https:\/\/www.quickonlinetips.com\/archives\/2013\/07\/force-404-errors-wordpress\/\">404 pages<\/a>.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_to_find_broken_internal_links_in_WordPress\"><\/span>How to find broken internal links in WordPress<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The <a href=\"https:\/\/wordpress.org\/plugins\/broken-link-checker\/\" target=\"_blank\" rel=\"noopener\">Broken Link Checker<\/a> plugin by WPMU DEV is still the easiest way to <a href=\"https:\/\/www.quickonlinetips.com\/archives\/2012\/01\/find-broken-links-on-wordpress-blogs\/\">find broken links on WordPress blogs<\/a>. Newer versions use a cloud scanning engine, which checks your site from WPMU DEV&#8217;s servers so it doesn&#8217;t slow down your hosting. It needs a free WPMU DEV account. The original &#8220;local&#8221; engine is still available if you prefer to run it on your own server.<\/p>\n<ol>\n<li>Install and activate Broken Link Checker from <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Run a scan and wait for it to finish. Large sites can take a while.<\/li>\n<li>Open the list of broken links, and search for your own domain name with the link status set to <strong>Broken<\/strong>. This shows only broken internal links.<\/li>\n<\/ol>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-50532\" src=\"https:\/\/www.quickonlinetips.com\/archives\/wp-content\/uploads\/search-broken-links.png\" alt=\"Search broken internal links in Broken Link Checker\" width=\"343\" height=\"441\" srcset=\"https:\/\/www.quickonlinetips.com\/archives\/wp-content\/uploads\/search-broken-links.png 343w, https:\/\/www.quickonlinetips.com\/archives\/wp-content\/uploads\/search-broken-links-233x300.png 233w, https:\/\/www.quickonlinetips.com\/archives\/wp-content\/uploads\/search-broken-links-117x150.png 117w\" sizes=\"(max-width: 343px) 100vw, 343px\" \/><\/p>\n<p>In our case, the search instantly listed hundreds of broken internal links.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"How_to_remove_broken_internal_links_in_bulk\"><\/span>How to remove broken internal links in bulk<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Select some or all of the broken links with the checkbox at the top of the list, then choose a bulk action:<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-50531\" src=\"https:\/\/www.quickonlinetips.com\/archives\/wp-content\/uploads\/broken-links-checker.png\" alt=\"Remove broken internal links in bulk in WordPress\" width=\"768\" height=\"456\" srcset=\"https:\/\/www.quickonlinetips.com\/archives\/wp-content\/uploads\/broken-links-checker.png 768w, https:\/\/www.quickonlinetips.com\/archives\/wp-content\/uploads\/broken-links-checker-300x178.png 300w, https:\/\/www.quickonlinetips.com\/archives\/wp-content\/uploads\/broken-links-checker-150x89.png 150w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/p>\n<ul>\n<li><strong>Unlink:<\/strong> removes the link but keeps the anchor text, so your sentences still read normally. This fixed hundreds of links for us in seconds.<\/li>\n<li><strong>Edit URL:<\/strong> change a link to a working page, such as a newer post on the same topic. This is better than unlinking when a good replacement exists.<\/li>\n<li><strong>Not broken \/ Dismiss:<\/strong> for false alarms, such as a site that blocks link checkers.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"border alignnone wp-image-50536 size-full\" src=\"https:\/\/www.quickonlinetips.com\/archives\/wp-content\/uploads\/unlink-404-url.png\" alt=\"Unlink a 404 URL in Broken Link Checker\" width=\"710\" height=\"173\" srcset=\"https:\/\/www.quickonlinetips.com\/archives\/wp-content\/uploads\/unlink-404-url.png 710w, https:\/\/www.quickonlinetips.com\/archives\/wp-content\/uploads\/unlink-404-url-300x73.png 300w, https:\/\/www.quickonlinetips.com\/archives\/wp-content\/uploads\/unlink-404-url-150x37.png 150w\" sizes=\"(max-width: 710px) 100vw, 710px\" \/><\/p>\n<p>You can also fix links one at a time, or open the post to check the context and choose the best replacement.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Redirect_instead_of_unlinking\"><\/span>Redirect instead of unlinking<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If a deleted post has a close replacement, add a <strong>301 redirect<\/strong> from the old URL to the new one. That fixes every internal link and any backlinks from other sites at once. Rank Math (<strong>Rank Math &gt; Redirections<\/strong>) and the free <a href=\"https:\/\/wordpress.org\/plugins\/redirection\/\" target=\"_blank\" rel=\"noopener\">Redirection<\/a> plugin both make this easy. For pages that are gone for good, a <a href=\"https:\/\/www.quickonlinetips.com\/archives\/2014\/11\/http-410-error-pages-htaccess\/\">410 Gone<\/a> status tells Google to drop them faster.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Other_free_tools_to_find_broken_links\"><\/span>Other free tools to find broken links<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><a href=\"https:\/\/search.google.com\/search-console\" target=\"_blank\" rel=\"noopener\">Google Search Console<\/a>: the <strong>Pages<\/strong> report lists URLs returning <strong>Not found (404)<\/strong>, and shows which pages link to them.<\/li>\n<li><a href=\"https:\/\/ahrefs.com\/webmaster-tools\" target=\"_blank\" rel=\"noopener\">Ahrefs Webmaster Tools<\/a>: a free site audit that flags broken internal links. Our guide to the <a href=\"https:\/\/www.quickonlinetips.com\/archives\/2021\/10\/ahrefs-free-account\/\">free Ahrefs account<\/a> shows how to set it up.<\/li>\n<li><a href=\"https:\/\/www.screamingfrog.co.uk\/seo-spider\/\" target=\"_blank\" rel=\"noopener\">Screaming Frog SEO Spider<\/a>: a desktop crawler, free for up to 500 URLs.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Keep_broken_links_from_coming_back\"><\/span>Keep broken links from coming back<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li>Before deleting a post, search your site for links to it and update them, or add a redirect.<\/li>\n<li>Never change a post&#8217;s permalink without adding a redirect.<\/li>\n<li>Run a broken link scan every month or two, or after any big cleanup.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Frequently_asked_questions\"><\/span>Frequently asked questions<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Does_Broken_Link_Checker_slow_down_WordPress\"><\/span>Does Broken Link Checker slow down WordPress?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The cloud engine scans from WPMU DEV&#8217;s servers, so it doesn&#8217;t load your hosting. The local engine can be heavy on large sites, so limit how often it runs or deactivate it after cleaning up.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Should_I_unlink_or_redirect_broken_links\"><\/span>Should I unlink or redirect broken links?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Redirect when a close replacement page exists. Unlink when there&#8217;s no good replacement, so readers aren&#8217;t sent to an unrelated page.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Do_broken_internal_links_hurt_SEO\"><\/span>Do broken internal links hurt SEO?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>A few won&#8217;t cause a penalty, but many broken links waste crawl budget, lose internal link value and annoy visitors. It&#8217;s worth fixing them.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Broken internal links frustrate readers and waste Google&#8217;s crawl of your site. After a big content cleanup, when we deleted&#8230;<\/p>\n","protected":false},"author":4,"featured_media":50531,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"default","_kad_post_title":"default","_kad_post_layout":"default","_kad_post_sidebar_id":"","_kad_post_content_style":"default","_kad_post_vertical_padding":"default","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[6],"tags":[49,17],"class_list":["post-50530","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blogging","tag-tutorials","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/posts\/50530","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/comments?post=50530"}],"version-history":[{"count":2,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/posts\/50530\/revisions"}],"predecessor-version":[{"id":63640,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/posts\/50530\/revisions\/63640"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/media\/50531"}],"wp:attachment":[{"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/media?parent=50530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/categories?post=50530"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.quickonlinetips.com\/archives\/wp-json\/wp\/v2\/tags?post=50530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}