Press Ctrl / CMD + C to copy this to your clipboard.
This post will be reported to the moderators as potential spam to be looked at
Have a little problem with SEO Checker. The moment i enable it CPU usage spikes to 100%. If i comment out SEO modules in web.config everything goes back to normal.
I have the newest version installed (previously used version 1.8 - same behavior), cleaned database tables to no avail.
It's worth mentioning that i have custom URL rewrite rule set up for IIS (and disabled URL Rewriting in SEO Checker)
Have anyone had a similar issue? Thanks
Was this after a huge page publish? Then disable Automatic validate after publish in settings.
Hi Richard and thanks for your reply.
I've disabled Automatic validate and after that CPU dropped. So far so good.
Went to backoffice, selected Home node and SEO tab, validation result kicked in and then CPU spiked to 100% again.
I can see in IIS that a request to /umbraco/backoffice,SEOChecker/SEOCheckerApi/validate?id=1111 is beeing processed for 4 minutes now.
Also went to umbraco log and found a bunch of errors:
ERROR SEOChecker.Core.Repository.Queue.AnalyserQueueRepository - [Thread 8] SEOChecker: Error validating document '16325'
umbraco.DataLayer.SqlHelperException: Umbraco Exception (DataLayer): SQL helper exception in ExecuteNonQuery ---> System.Data.SqlClient.SqlException: String or binary data would be truncated.
I think there are two issues here. One is that the datatype acts on the preview version of content by default. This needs to ensure you have the preview structure there. You can alos validate the published version then you need to add the app setting SEOChecker.DisablePreviewValidation to web.config and give that the value true. Then it doesn't generate the preview version.
The other issue is propably the ErrorDescription column in SEOChecker_ValidationIssues table. Can you try to increase that one?
Hope this helps,
After increasing ErrorDescription and Error columns values the log problem was solved, thanks.
However i'm still facing the pending request problem which btw in my opinion is the reason for this 100% CPU problem. It seems like there is some retry loop there?
I've also noticed another log entry:
ERROR SEOChecker.Core.Validation.SEOValidator - [Thread 22] SEOChecker: Error during validating tag for document: 1053 using validator 'BrokenLinks'
System.ArgumentNullException: Value cannot be null.
Parameter name: format
at System.String.Format(String format, Object arg0, Object arg1)
at SEOChecker.Validators.ContentValidators.Links.BrokenLinkValidator.Parse(ValidationResult result, IUmbracoDocument document, HtmlDocument htmlDocument, IContextInfo contextInfo)
at SEOChecker.Core.Validation.SEOValidator.Validate(ValidationResult validationResult, IUmbracoDocument document, HtmlDocument htmlDocument, IContextInfo context)
The document (1053) is the one being validated.
Did you change web.config also? To disable preview validation? There is a retry on links being validated but that should only validate external urls
Yep, i added
<add key="SEOChecker.DisablePreviewValidation" value="true"/>
Is there a way to confirm that preview validation is in fact disabled?
No that should just work, only by removing the whole datatype. Not anything else in the logs anymore?
The only thing that still pops out is the error i mentioned above regarding BrokenLinks validator.
A wild guess : let's assume that on this node there is a, say, ContentPicker with a link to non existing page. is it possible that this could cause validation failure and endless retry loop?
It should not validate internal links when in editmode but you never know. Can you add another key to web.config
<add key="SEOChecker.LogDebugHTML" value="true" />
This will log the html of the page in /app_data/temp/seochecker/preview. Lots of external links in there?
No external links created. In fact the only folder created after i added this entry was debug/published with home node html.
I noticed something else. When i select the home node in backoffice and check current requests to the server i can see the one to SEOCheckerApi/Validate and a bunch of others from server IP to many of the child nodes.
To me it seems like the validator traverse child nodes for some reason. And probably validation will end when whole tree will be validated?
That last for sure is not happening. only the current document is validated
Even when there is a mobile menu with child nodes links rendered as external?
Wouldn't the BrokenLinks validator check them out?
Oh but those are external links indeed, those will be checked. But the not saving the debug file is kind of telling me that it can't create any connection using the webclient object at all form the server. Otherwise it would have saved the file.
Right, so normally it would check the URL and save its HTML output to a file?
Thought that it is a simple ping.
If you validate then it saves the page when you set the web.config key.
Link validation is normal pings indeed. But the first issue is your real issue I am affraid.
But the validated node HTML was in fact saved.
I think a get a whole picture now. My home node HTML contains a news list generated for mobile. Since there are about a 1000 nodes there, the links validator has to ping all of them and it takes time. When it's done the CPU should go back to normal.
Will give it a few minutes and get back to you.
It took about 30 minutes to complete, but after that CPU dropped.
My only concern is that the whole validation will be fired again at some point, right?
I did disable automatic validation trigger though so only manual validation is now possible?
It's validating because the datatype does some validation as well. This is also needed to give feedback about keyword usage. What I would advise since it's only the home node that has that many external links to remove the SEOChecker datatype from the homepage then it won't validate that page. All other pages don't have that many links I assume and won't be an issue.
Thank you Richard for your help, really appreciate it.
The thing is, this load of links is generated as a part of global menu so it's pretty much everywhere.
Will have to figure out what to do with them then.
I am experiencing the same issue with high CPU spikes which I believe is due to SEO-checker following every link on every page as a result of the global menu with many links. Turning off the "Validate on Publish" did reduce the CPU load, which for now is fine.
Did you find a solution to sort of exclude the global nav from the list of links that SEO-checker checks?
It's been a while since i worked on this project, but as far as i recall, the solution for me was to get rid of the mobile navigation (i only show the root nodes and then load children if needed).
So nothing special really.
is working on a reply...
Write your reply to:
Image will be uploaded when post is submitted