Configuring link validation in Optimizely CMS 12
When Optimizely released version 12 of their CMS, it was not possible to configure how links should be validated. Now it is! 🎉
It's all nicely described in the documentation, but here's a summary.
services.Configure<LinkValidatorOptions>(options => {
options.ExternalLinkMinimumRequestInterval = TimeSpan.FromSeconds(5);
options.MaximumRunTime = TimeSpan.Zero;
options.RecheckInterval = TimeSpan.FromHours(7);
options.UserAgent = "EPiServer Link Checker";
options.ProxyAddress = new Uri("http://myproxy.mysite.com");
options.ProxyUser = "myUserName";
options.ProxyPassword = "secretPassword";
options.ProxyDomain = ".mysite.com";
options.InternalLinkValidation = ValidationType.Api;
options.ExcludePatterns.Add(".*doc");
options.ExcludePatterns.Add(".*pdf");
});
The default values for each setting can be found in the configuring cms section. What's not mentioned in the documentation is the most important setting - ExternalLinkErrorThreshold!
If you have not seen the above error message – consider yourself very lucky! If you have seen it, you'd probably want to ramp up the setting below.
services.Configure<LinkValidatorOptions>(options => {
options.ExternalLinkErrorThreshold = 1000;
});
If you want to use IncludePatterns instead of ExcludePatterns, check out my old (but still valid) blog post about the horrors of the Episerver Link Validation job.