Umbraco DXP
CMSCloudHeartcoreMarketplace
  • Umbraco DXP
  • Sustainability Best Practices
  • Commercial products
    • Umbraco Forms
    • Umbraco Deploy
    • Umbraco Workflow
    • Umbraco Commerce
    • Umbraco UI Builder
    • Umbraco Engage
    • Commercial Products, Relations and dependencies
  • Marketplace
    • Introduction
    • Listing Your Package
    • Package Telemetry Data
  • Packages
    • Authorized Services
    • Storage Providers
  • Integrations
    • Categories
    • ActiveCampaign
    • ActiveCampaign with Umbraco Forms
    • Algolia
    • Aprimo
    • CookieBot
    • CommerceTools
    • Dynamics
    • emerchantpay with Umbraco Forms
    • Google Search Console
    • HubSpot
    • HubSpot with Umbraco Forms
    • inriver
    • Semrush
    • Shopify
    • Zapier
    • Zapier with Umbraco Forms
Powered by GitBook
On this page
  • Package Links
  • Minimum version requirements
  • How To Use
  • Self Hosted OAuth Configuration

Was this helpful?

Edit on GitHub
Export as PDF
  1. Integrations

Semrush

Details an integration available for Semrush, built and maintained by Umbraco HQ.

PreviousinriverNextShopify

Last updated 2 months ago

Was this helpful?

This integration provides a keywords search tool powered by .

Package Links

Minimum version requirements

To ensure compatibility, check the Dependencies tab on NuGet for the required Umbraco CMS version. For example, see .

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 .

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:

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.

The used service is provided using the AuthorizationImplementationFactory method, depending on the type of authorization selected.

The authorization controller uses the window.postMessage interface for cross-window communications when redirecting from the semrush authorization server.

Authorization specific methods are exposed by the and implemented by two services:

If you are selecting your own authorization flow that uses the AuthorizationService, the redirect URL will be this one: /umbraco/api/semrushauthorization/oauth, from . Please make sure to set to correct URL in the settings of the website and in the configuration of your Semrush app.

Semrush
NuGet install
Source code
Umbraco marketplace listing
Umbraco.Cms.Integrations.SEO.Semrush
accompanying blog post
ISemrushAuthorizationService
UmbracoAuthorizationService
AuthorizationService
SemrushAuthorizationController