Library·SOP·SEO
Find links that send readers to missing pages, choose a useful repair, and check the saved changes with a fresh crawl.
Last reviewed: · Editorial review
Clarity, structure and references reviewed in this version. This is not a test in a live account.
Find links that send readers to missing pages, choose a useful repair, and check the saved changes with a fresh crawl.
This SOP covers:
This does not cover:
A source page contains the link; its destination is the page the link opens. Internal links stay on your website. External links go to another website.
Make a private copy of the Broken link repair log. Use Repair log for your findings; keep Worked examples separate from your website results.
Read Start here and Worked examples. The examples show a typo, an obsolete outside reference, a permanent page move, and a crawler-access difference.
In Scope, fill Website / scope with the domain or section requested and Content owner with the person who can confirm replacement pages.
Open Semrush, choose Site Audit, and open the campaign for the domain in your Scope tab. Check what the completed crawl actually covered.
In Overview, copy the last completed crawl date and crawled-page count into Scope → Before crawl date and Before pages crawled.
Open the campaign’s settings. Compare its crawl scope, page limit, excluded paths, and excluded checks with the section you were asked to repair. Put them in Scope → Crawl limit / exclusions.
Use Crawled Pages to check that the selected sections appear. In Scope → Coverage gaps, name missing or blocked sections. If the page limit cut the crawl short, arrange a larger crawl or separate section crawls with the audit owner. Combine their findings in this log.
Open Issues and inspect both Broken internal links and Broken external links. Use all the finding pages in each report, not just the first screen.
Open each issue’s affected-page list. For each finding, identify the page containing the link and the reported destination. If a missing destination appears on several pages, inspect its linking-page list as well.
Add one Repair log row per source-page and destination pair. Fill Source URL, Reported target URL, and Link type. Put the reported error in Before check and start Status at To check.
Continue through each report’s pages and rows. Add rows to your log as needed. If either report has no findings, write its name and “No findings” in Scope → Remaining work / next review.
A missing-page response, such as 404, means the address was not found. A blocked request or server error needs investigation before you remove useful content.
For each row, open Source URL as a reader. Find the link and follow it before deciding what to change.
Match the link’s destination with Reported target URL. In Link text / location, enter the clickable words or button label and the paragraph or section where it appears. For repeated links on that page, list each location.
In Chrome, open More (⋮) → More tools → Developer tools → Network. Turn on Preserve log and Disable cache, clear the list, then open the reported target. Select the page request, open Headers, and read its Request URL and Status Code.
In Before check, add the browser result and date beside the Semrush result, such as “Reported 404; browser 404; size-guide link opens Not found.” Check the page content too: an error message with a 200 response is still not a useful destination.
If the page works in the browser, is blocked, has a server error, or you cannot find the link, set Status to Needs investigation. In Reason / owner / due date, name the site or content owner, what differs, and the follow-up date. Continue with other rows.
For a confirmed broken link, read the source sentence or button and ask what the reader expected to find. Choose the repair that preserves that purpose.
Choose Replace link in Chosen fix when the address is mistyped or a useful equivalent page exists. Open the replacement, check its content, and copy its final public address into Replacement URL. For example, a typo in a size-guide link should point to the actual size guide.
Choose Remove link when the reference is no longer needed and no useful replacement exists. Decide whether to keep the words as plain text or remove an unsupported claim. Put “Remove link; no useful replacement” in Reason / owner / due date.
If the original page should still exist, choose Restore page and set Status to Waiting for owner. In Reason / owner / due date, name the editor who will restore the right content at the expected URL and a date. Retest after restoration.
For a URL on your site that moved permanently, check whether a redirect is also needed for old bookmarks and outside links.
Ask the content owner to confirm the lasting move and open the proposed replacement. Choose Permanent redirect only when that page meets the old page’s need. Fill Replacement URL with its final public address and explain the match in Reason / owner / due date.
When removed content has no similar replacement, choose Remove link or Replace link for its source links, and write “No equivalent page; old URL remains not found” in Reason / owner / due date. An unrelated homepage does not answer a request for a specific guide or product.
Work first on confirmed failures that stop a main next step, such as buying, requesting help, or finding a key guide. Then handle other confirmed links.
Move those rows to the top of Repair log. A broken delivery-policy link on many product pages usually comes before an obsolete reference in one old article because it interrupts more current readers. Check every source row even when several share a destination.
Set Status to Ready to fix when the destination or removal decision is checked. For missing decisions or access, choose Waiting for owner and enter the person, required action, and follow-up date in Reason / owner / due date.
Change the source link so new clicks use the right address. Add a redirect only when the old owned address should also lead to its permanent replacement.
For each ready row, open its source in WordPress → Pages or Posts, search by its title, and choose Edit. Find the location recorded in the log.
For Replace link or Permanent redirect, select the linked text or button, open the link control, choose Edit, and replace its URL with Replacement URL. Confirm the link and adjust its words only if needed to describe the destination.
For Remove link, select the linked text and use the link control’s Remove link option. Keep accurate text or remove the obsolete reference. If an unneeded button only led to that page, remove that button.
Preview the page and read the changed sentence or button. Use Update or the editor’s Save control to publish. If another person publishes, put their name and date in Reason / owner / due date and keep Status at Waiting for owner until the change is live.
If you chose Permanent redirect for one old URL, follow the linked SOP using the checked old address and replacement. Return here after its rule and live-response tests pass.
If several confirmed permanent moves need new rules, use the linked batch SOP instead of repeating the single-rule route. Include only checked moves, and return here after every mapping is tested.
A saved edit, a working live link, and a fresh crawler result are separate checks. Keep a repair pending until the checks that apply to it are complete.
After publication, reopen every changed Source URL as a reader and test each location listed in its row.
For replacements, click the saved link and confirm its final address and useful content. For removals, confirm the link or button is gone and the remaining text makes sense. For restorations, confirm the original link opens the restored content.
In Live check, enter the date, observed address or removal, and result. Include the linked SOP’s actual old-URL redirect result for permanent moves. Correct a failed edit and repeat its test.
Return to the same Site Audit campaign and choose Rerun campaign. Wait for the crawl to complete before checking its results.
Fill Scope → After crawl date and After pages crawled. In Crawled Pages, search for every changed source URL and confirm the new crawl includes it. Carry any missing or blocked pages into Coverage gaps.
Reopen both broken-link issue reports. Search for the source and reported target from each row. In Fresh crawl check, write whether its finding cleared, remains, or was not rechecked because the source was missed.
For findings that remain or new findings in the selected scope, repeat the browser check, choice, repair, and test steps. Set Status to Repaired only when the live check passes and the fresh crawl checked the source without that finding.
Finish the selected audit’s rows and update Scope → Remaining work / next review.
Compare the log with all pages of both fresh issue reports. Account for every source-and-target pair in the chosen scope. Combine section batches and keep unresolved rows with the required owner action and date.
Write the repair result and next review date in Remaining work / next review. Share your private log with the person who requested the repairs through your usual work channel. If findings or coverage gaps remain, call it a partial repair and name the remaining work.