markwemekamp / rankone-umbraco-seo-tool Goto Github PK
View Code? Open in Web Editor NEWSEO Tool for Umbraco websites
License: MIT License
SEO Tool for Umbraco websites
License: MIT License
The tag keywordmetadescriptionanalyzer_multiple_meta_description_tags is not being translated
Hi,
I have installed this package in my umbraco 7.5.11. However, there are not consistent with my dashboard listing, many pages showing "No information available". Besides that, there are also many pages not listing. For example: under "Singapore" should list down all its child pages like "Vietnam".
My logs are getting semi frequent additions of this Error:
System.InvalidOperationException: Cannot render a macro when there is no current PublishedContentRequest. at Umbraco.Web.UmbracoComponentRenderer.RenderMacro(String alias, IDictionary'2 parameters) at Umbraco.Web.PropertyEditors.ValueConverters.MacroContainerValueConverter.<>c__DisplayClass1_1.<RenderMacros>b__1(String macroAlias, Dictionary'2 macroAttributes) at Umbraco.Core.Macros.MacroTagParser.ParseMacros(String text, Action'1 textFoundCallback, Action'2 macroFoundCallback) at Umbraco.Web.PropertyEditors.ValueConverters.MacroContainerValueConverter.RenderMacros(String source, Boolean preview) at Umbraco.Web.PropertyEditors.ValueConverters.MacroContainerValueConverter.ConvertDataToSource(PublishedPropertyType propertyType, Object source, Boolean preview) at Umbraco.Web.PublishedCache.XmlPublishedCache.XmlPublishedProperty.get_Value() at RankOne.Helpers.FocusKeywordHelper.FindFocusKeywordInDashboardProperties(IPublishedContent node) at RankOne.Helpers.FocusKeywordHelper.GetFocusKeyword(IPublishedContent node) at RankOne.Services.AnalyzeService.CreateAnalysis(IPublishedContent node, String focusKeyword) at RankOne.Controllers.AnalysisApiController.AnalyzeNode(Int32 id, String focusKeyword)
Do you have any idea at what is causing this? A macro I assume, but how do I find which one is responsible? If you could point me in the right direction of debugging this, that would be helpful. I dont know if this is an issue on my end, or the plugin, but regardless, I would like to find a solution.
Templating is apparently different in Merchello so the dashboard returns a "no template set" error
Great package! Thank you! Noticed a typo and a missing period. Thought I'd let you know for some future release.
"Title is longer than 60 characters, anything longer than 60 characters will be concatenated."
Should be...
"Title is longer than 60 characters. Anything longer than 60 characters will be truncated."
The API endpoints 404 when Umbraco is installed into a subfolder since the paths are absolute e.g.
var url = '/umbraco/backoffice/rankone/DashboardApi/GetPageHierarchy';
Let me know if you need more info.
It looks like RankOne is not loading anymore in the back-end for each page of my website in 7.5.11. It used to load, but all of a sudden it stopped working / loads REALLY SLOW OR NOT AT ALL. It sometimes gives me an error or sometimes take forever to load...I'm so confused. This happens on my local development and server.
Any suggestions to get the tool to start loading again (the one that tells you about suggestions, your % ranking, etc.)?
in package.manifest you have mentioned
javascript: [
'/App_Plugins/RankOne/js/templates.js',/App_Plugins/RankOne/js/scripts.js'
'
],
css : [
'~/App_Plugins/RankOne/css/styles.css'
]
but, we can't find this files from source code.kindly help us
Thank you for sharing this package.
For people without VS access, will there be a package update on the Umbraco Projects page?
I'm experiencing this only on production and not on localhost
It looks like something is broken, possibly in regard to the latest styles.css file (RankOne v 0.3.5), in Umbraco version 7.5.10. Both overall site dashboard and individual document dashboards are affected. All of the raw information displays, but the styling is wacked out.
Rolling back to RankOne v0.3.4 renders correctly in Umbraco 7.5.10.
When I try to refresh pages, it doesn't work and the console logs:
GET http://site.localtest.me/umbraco/backoffice/RankOne/DashboardApi/UpdateAllPages 500 (Internal Server Error)
A little more information that may be useful to reproduce
Here's what the logs say
2018-05-16 09:32:17,554 [P32088/D42/T249] ERROR RankOne.Controllers.DashboardApiController - Unhandled controller exception occurred
System.ArgumentNullException: Value cannot be null.
Parameter name: source
at System.Linq.Enumerable.Any[TSource](IEnumerable1 source) at RankOne.Analyzers.Template.MetaDescriptionAnalyzer.Analyse(IPageData pageData) at RankOne.Summaries.BaseSummary.GetAnalysis() at RankOne.Services.PageAnalysisService.SetAnalyzerResults(PageAnalysis pageAnalysis, HtmlResult html) at RankOne.Services.PageAnalysisService.CreatePageAnalysis(IPublishedContent node, String focusKeyword) at RankOne.Services.AnalyzeService.CreateAnalysis(IPublishedContent node, String focusKeyword) at RankOne.Helpers.PageScoreNodeHelper.UpdatePageScore(PageScoreNode node) at RankOne.Helpers.PageScoreNodeHelper.GetPageHierarchy(IEnumerable
1 nodeCollection, Boolean useCache)
at RankOne.Helpers.PageScoreNodeHelper.GetPageHierarchy(IEnumerable1 nodeCollection, Boolean useCache) at lambda_method(Closure , Object , Object[] ) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters) at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary
2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoveNext()
It seems like mclenney has the same issue in #22, but that doesn't seem to have been resolved since
Only after a page refresh the loader is gone and the dashboard is visible
After installing a new instance of RankOne SEO package in an Umbraco 7.6.4 installation - I'm finding that the focuskeyword never gets set. I've tried adding my own field to the node with an alias of 'focusKeyword', and I've also tried using the Dashboard property editor and using the cog wheel to set the keyword but after saving and publishing, the keyword field of the Dashboard property editor still says "The focus keyword for this page is not set. You can add a focus keyword by opening the settings dialog on the top of this screen."
First i tried to update my nuget package and then it failed.
Then i uninstalled my nugetpackage and installed the package still nothing, now i manually setup the table so now it works.
Here is the error from the log
System.Data.SqlClient.SqlException (0x80131904): Invalid object name 'NodeReport'.
ved System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
ved System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
ved System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
ved System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
ved System.Data.SqlClient.SqlDataReader.get_MetaData()
ved System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)
ved System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
ved System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
ved System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
ved System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
ved Umbraco.Core.Persistence.PetaPocoCommandExtensions.<>c__DisplayClass4.<ExecuteReaderWithRetry>b__3()
ved Umbraco.Core.Persistence.FaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)
ved Umbraco.Core.Persistence.Database.<Query>d__7`1.MoveNext()
ClientConnectionId:0417f342-6c39-4e45-b6a5-0b031d85bd26
Error Number:208,State:1,Class:16
If you write æøå in your description or title it becomes to this:
her er der æ ø å jo
When I press on Initialize I get An error has occured.
response back from getting 500 Internal Server Error
http://localhost:55968/umbraco/backoffice/rankone/RankOneApi/Initialize
Console stack trace:
ExceptionMessage:"Object reference not set to an instance of an object."
Stacktrace: at Umbraco.Core.Persistence.Database.BeginTransaction(IsolationLevel isolationLevel)
↵ at Umbraco.Core.Persistence.DatabaseSchemaHelper.CreateTable(Boolean overwrite, Type modelType)
↵ at RankOne.Controllers.RankOneApiController.Initialize()
↵ at lambda_method(Closure , Object , Object[] )
↵ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.b__9(Object instance, Object[] methodParameters)
↵ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
↵ at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
↵--- End of stack trace from previous location where exception was thrown ---
↵ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
↵ at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
↵ at System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoveNext()
↵--- End of stack trace from previous location where exception was thrown ---
↵ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
↵ at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
↵ at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
↵--- End of stack trace from previous location where exception was thrown ---
↵ at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
↵--- End of stack trace from previous location where exception was thrown ---
↵ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
↵ at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
↵ at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()
↵--- End of stack trace from previous location where exception was thrown ---
↵ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
↵ at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
↵ at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
↵--- End of stack trace from previous location where exception was thrown ---
↵ at System.Web.Http.Filters.ActionFilterAttribute.d__5.MoveNext()
↵--- End of stack trace from previous location where exception was thrown ---
↵ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
↵ at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
↵ at System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext()
↵--- End of stack trace from previous location where exception was thrown ---
↵ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
↵ at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
↵ at System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext()
↵--- End of stack trace from previous location where exception was thrown ---
↵ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
↵ at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
↵ at System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext()
↵--- End of stack trace from previous location where exception was thrown ---
↵ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
↵ at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
↵ at System.Web.Http.Filters.AuthorizationFilterAttribute.d__2.MoveNext()
↵--- End of stack trace from previous location where exception was thrown ---
↵ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
↵ at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
↵ at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext()"
Name
I get this issue with the updated version.
I am using Umbraco version 7.5.11.
{"Message":"An error has occurred.","ExceptionMessage":"An error occurred when trying to create a controller of type 'DashboardApiController'. Make sure that the controller has a parameterless public constructor.","ExceptionType":"System.InvalidOperationException","StackTrace":" at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)\r\n at System.Web.Http.Controllers.HttpControllerDescriptor.CreateController(HttpRequestMessage request)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()","InnerException":{"Message":"An error has occurred.","ExceptionMessage":"Could not load file or assembly 'HtmlAgilityPack, Version=1.4.9.5, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)","ExceptionType":"System.IO.FileLoadException","StackTrace":" at RankOne.Helpers.HtmlHelper..ctor()\r\n at RankOne.Services.PageAnalysisService..ctor()\r\n at RankOne.Services.AnalyzeService..ctor()\r\n at RankOne.Helpers.PageScoreNodeHelper..ctor()\r\n at RankOne.Services.DashboardDataService..ctor()\r\n at lambda_method(Closure )\r\n at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)"}}
Worth locking the nuget package down to Umbraco Versions?
Is it possible to disable some of the analyzers?
In this http/2 world, the "additional calls" analyzer isn't needed.
Html 5 standard states that document can contain multiple h1, with some rules.
The elements: article, section, nav, aside are section/content elements and can have a h1. =)
https://www.w3.org/TR/html-markup/h1.html
http://webdesign.tutsplus.com/articles/the-truth-about-multiple-h1-tags-in-the-html5-era--webdesign-16824
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.