Links

Semrush

Details an integration available for Semrush, built and maintained by Umbraco HQ.
This integration provides a keywords search tool powered by Semrush.

Minimum version requirements

Umbraco CMS

Major
Minor/Patch
Version 8
8.5.4
Version 9
9.0.1
Version 10
10.0.0
Version 11
11.0.0

How To Use

Once the package is installed, the integration is made available in the Umbraco backoffice as a Content App.
The Content App is available for all types of content items as well as for all user groups.
A keyword search can be initiated using a content field as a starting point, or by entering a custom phrase. The results can be filtered for different metrics across markets.
Administrators are provided with additional features for managing the connectivity with their organization's account with Semrush.
For more detail on the integration, its purpose, and how2 it was built, please see the accompanying blog post.

Self Hosted OAuth Configuration

The easiest way to configure the integration is to make use of an application Umbraco has pre-configured with Semrush. With this in place, the authorization flow will go through a proxy website Umbraco maintains before redirecting back to your Umbraco backoffice.
From version 1.2.0, we introduced an alternate approach that requires a little more setup. It removes the need for relying on any services from Umbraco when using the integration.
To use this you need to setup your own app with Semrush and use an extended configuration like this:
Versions 9 and above
Version 8
appsettings.json
"Umbraco": {
"CMS": {
"Integrations": {
"SEO": {
"Semrush": {
"Settings": {
"BaseUrl": "https://oauth.semrush.com/",
"UseUmbracoAuthorization": true/false
},
"OAuthSettings": {
"Ref": "[your ref number]",
"ClientId": "[your client id]",
"ClientSecret": "[your client secret]",
"RedirectUri": "https://[your website base URL]/umbraco/api/semrushauthorization/oauth",
"TokenEndpoint": "https://oauth.semrush.com/oauth2/access_token",
"Scopes": "user.id,domains.info,url.info,positiontracking.info"
}
}
}
}
}
}
web.config
<appSettings>
...
<add key="Umbraco.Cms.Integrations.SEO.Semrush.BaseUrl" value="https://oauth.semrush.com/" />
<add key="Umbraco.Cms.Integrations.SEO.Semrush.UseUmbracoAuthorization" value="true/false" />
<add key="Umbraco.Cms.Integrations.SEO.Semrush.ClientId" value="[your client id]" />
<add key="Umbraco.Cms.Integrations.SEO.Semrush.ClientSecret" value="[your client secret]" />
<add key="Umbraco.Cms.Integrations.SEO.Semrush.RedirectUri" value="https://[your website base URL]/umbraco/api/semrushauthorization/oauth" />
<add key="Umbraco.Cms.Integrations.SEO.Semrush.TokenEndpoint" value="https://oauth.semrush.com/oauth2/access_token" />
<add key="Umbraco.Cms.Integrations.SEO.Semrush.Scopes" value="user.id,domains.info,url.info,positiontracking.info" />
</appSettings>
The authorization mode is toggled by the UseUmbracoAuthorization flag, which by default is set to true meaning that previous versions are not impacted.
Authorization specific methods are exposed by the ISemrushAuthorizationService and implemented by two services:
The used service is provided using the AuthorizationImplementationFactory method, depending on the type of authorization selected.
If you are selecting your own authorization flow that uses the AuthorizationService, the redirect URL will be this one: /umbraco/api/semrushauthorization/oauth, from SemrushAuthorizationController. Please make sure to set to correct URL in the settings of the website and in the configuration of your Semrush app.
The authorization controller uses the window.postMessage interface for cross-window communications when redirecting from the semrush authorization server.