Unbreak your links! There are so ... many ... broken ... links ...
Specifically, the ones that got broken by upgrading blog platforms.
Start by checking links on the biggest/oldest blogs like e.g. https://devblogs.microsoft.com/oldnewthing/ and https://devblogs.microsoft.com/visualstudio/
Unfortunately, some of the links might be effectively broken without actually returning an HTTP error code.
The link from https://devblogs.microsoft.com/oldnewthing/20120720-00/?p=7083 to http://blogs.msdn.com/b/oldnewthing/archive/2010/10/18/10077133.aspx doesn't quite illustrate this, because it resolves to https://devblogs.microsoft.com/oldnewthing/2010/10/18 -- the list of articles posted on that date, which in this case has only one article and will generally be easy for the user to resolve from context; however, if a link to something specific ends up redirecting to https://devblogs.microsoft.com/oldnewthing/ in the end, that's a broken link.
Examples of links that are actually broken:
https://devblogs.microsoft.com/visualstudio/whats-a-pkgdef-and-why/ has these links:
- http://blogs.msdn.com/aaronmar/archive/2009/06/05/pkgdef-and-the-experimental-instance-in-vs-2010.aspx -> https://docs.microsoft.com/en-us/archive/blogs/aaronmar/ -- should be: https://docs.microsoft.com/en-us/archive/blogs/aaronmar/pkgdef-and-the-experimental-instance-in-vs-2010
- http://blogs.msdn.com/aaronmar/archive/2009/11/06/all-your-regkeys-are-belong-to-us.aspx -> https://docs.microsoft.com/en-us/archive/blogs/aaronmar/ -- should be: https://docs.microsoft.com/en-us/archive/blogs/aaronmar/all-your-regkeys-are-belong-to-us
- http://blogs.msdn.com/visualstudio/archive/2009/12/07/Bootstrapping-of-VS-packages-and-VSIX-extensions-in-VS2010.aspx -> https://devblogs.microsoft.com/visualstudio/ -- should be: https://devblogs.microsoft.com/visualstudio/bootstrapping-of-vs-packages-and-vsix-extensions-in-vs2010/
Basically, I would scrape ALL the links out of the blog under study, then list off:
- Obviously broken links: those that (after following redirects, if any) result in an HTTP error (either a status code in the 4xx or 5xx range, or can't get an HTTP response at all).
- Group by domain name, sorted by number of URLs on that domain
- Ignore domains having nothing to do with MS
- Redirected links:
- Group by the eventual redirect target, sorted by number of distinct link URLs
- Ignore domains that aren't yours, I guess
Next, figure out the best way to make the links work again.