diff --git a/config/install/xmlsitemap.settings.yml b/config/install/xmlsitemap.settings.yml
index 9156de3..f732add 100644
--- a/config/install/xmlsitemap.settings.yml
+++ b/config/install/xmlsitemap.settings.yml
@@ -4,6 +4,7 @@ prefetch_aliases: 1
 chunk_size: 'auto'
 batch_limit: 100
 path: 'xmlsitemap'
+base_url: 'http://default'
 frontpage_priority: 1.0
 frontpage_changefreq: 86400
 lastmod_format: 'Y-m-d\TH:i\Z'
diff --git a/config/schema/xmlsitemap.schema.yml b/config/schema/xmlsitemap.schema.yml
index e0fb12b..5042f3e 100644
--- a/config/schema/xmlsitemap.schema.yml
+++ b/config/schema/xmlsitemap.schema.yml
@@ -22,6 +22,9 @@ xmlsitemap.settings:
     path:
       type: string
       label: 'Path of the XML generated files'
+    base_url:
+      type: string
+      label: 'Default base URL used for sitemaps and sitemap links'
     frontpage_priority:
       type: float
       label: 'Priority of the frontpage'
diff --git a/src/Form/XmlSitemapSettingsForm.php b/src/Form/XmlSitemapSettingsForm.php
index 3de48c1..de3fd10 100644
--- a/src/Form/XmlSitemapSettingsForm.php
+++ b/src/Form/XmlSitemapSettingsForm.php
@@ -177,10 +177,10 @@ class XmlSitemapSettingsForm extends ConfigFormBase {
       '#field_prefix' => file_build_uri(''),
       '#required' => TRUE,
     ];
-    $form['advanced']['xmlsitemap_base_url'] = [
+    $form['advanced']['base_url'] = [
       '#type' => 'textfield',
       '#title' => t('Default base URL'),
-      '#default_value' => $this->state->get('xmlsitemap_base_url'),
+      '#default_value' => $config->get('base_url'),
       '#size' => 30,
       '#description' => t('This is the default base URL used for sitemaps and sitemap links.'),
       '#required' => TRUE,
@@ -254,11 +254,11 @@ class XmlSitemapSettingsForm extends ConfigFormBase {
       $form_state->setErrorByName('chunk_size', t('The sitemap page link count of @size will create more than 1,000 sitemap pages. Please increase the link count.', ['@size' => $chunk_size]));
     }
 
-    $base_url = $form_state->getValue('xmlsitemap_base_url');
+    $base_url = $form_state->getValue('base_url');
     $base_url = rtrim($base_url, '/');
-    $form_state->setValue('xmlsitemap_base_url', $base_url);
+    $form_state->setValue('base_url', $base_url);
     if ($base_url != '' && !UrlHelper::isValid($base_url, TRUE)) {
-      $form_state->setErrorByName('xmlsitemap_base_url', t('Invalid base URL.'));
+      $form_state->setErrorByName('base_url', t('Invalid base URL.'));
     }
 
     parent::validateForm($form, $form_state);
@@ -286,11 +286,9 @@ class XmlSitemapSettingsForm extends ConfigFormBase {
         'changefreq' => $values['frontpage_changefreq'],
       ]);
     }
-    $this->state->set('xmlsitemap_developer_mode', $values['xmlsitemap_developer_mode']);
-    $this->state->set('xmlsitemap_base_url', $values['xmlsitemap_base_url']);
 
+    $this->state->set('xmlsitemap_developer_mode', $values['xmlsitemap_developer_mode']);
     unset($values['xmlsitemap_developer_mode']);
-    unset($values['xmlsitemap_base_url']);
 
     foreach ($values as $key => $value) {
       $config->set($key, $value);
diff --git a/src/Tests/XmlSitemapFunctionalTest.php b/src/Tests/XmlSitemapFunctionalTest.php
index def03e8..036f306 100644
--- a/src/Tests/XmlSitemapFunctionalTest.php
+++ b/src/Tests/XmlSitemapFunctionalTest.php
@@ -50,18 +50,18 @@ class XmlSitemapFunctionalTest extends XmlSitemapTestBase {
   public function testBaseURL() {
     // @codingStandardsIgnoreEnd
     $this->drupalLogin($this->admin_user);
-    $edit = ['xmlsitemap_base_url' => ''];
+    $edit = ['base_url' => ''];
     $this->drupalPostForm('admin/config/search/xmlsitemap/settings', $edit, t('Save configuration'));
 
-    $edit = ['xmlsitemap_base_url' => 'invalid'];
+    $edit = ['base_url' => 'invalid'];
     $this->drupalPostForm('admin/config/search/xmlsitemap/settings', $edit, t('Save configuration'));
     $this->assertText(t('Invalid base URL.'));
 
-    $edit = ['xmlsitemap_base_url' => 'http://example.com/ '];
+    $edit = ['base_url' => 'http://example.com/ '];
     $this->drupalPostForm('admin/config/search/xmlsitemap/settings', $edit, t('Save configuration'));
     $this->assertText(t('Invalid base URL.'));
 
-    $edit = ['xmlsitemap_base_url' => 'http://example.com/'];
+    $edit = ['base_url' => 'http://example.com/'];
     $this->drupalPostForm('admin/config/search/xmlsitemap/settings', $edit, t('Save configuration'));
     $this->assertText(t('The configuration options have been saved.'));
 
diff --git a/src/XmlSitemapGenerator.php b/src/XmlSitemapGenerator.php
index ef133b9..048ea24 100644
--- a/src/XmlSitemapGenerator.php
+++ b/src/XmlSitemapGenerator.php
@@ -233,7 +233,7 @@ class XmlSitemapGenerator implements XmlSitemapGeneratorInterface {
     $url_options = $sitemap->uri['options'];
     $url_options += [
       'absolute' => TRUE,
-      'base_url' => rtrim($this->state->get('xmlsitemap_base_url'), '/'),
+      'base_url' => rtrim($this->config->get('base_url'), '/'),
       'language' => $this->languageManager->getDefaultLanguage(),
       // @todo Figure out a way to bring back the alias preloading optimization.
       // 'alias' => $this->config->get('prefetch_aliases'),
@@ -330,7 +330,7 @@ class XmlSitemapGenerator implements XmlSitemapGeneratorInterface {
     $url_options = $sitemap->uri['options'];
     $url_options += [
       'absolute' => TRUE,
-      'xmlsitemap_base_url' => $this->state->get('xmlsitemap_base_url'),
+      'xmlsitemap_base_url' => $this->config->get('base_url'),
       'language' => $this->languageManager->getDefaultLanguage(),
       'alias' => TRUE,
     ];
diff --git a/xmlsitemap.install b/xmlsitemap.install
index 435a069..e5f1b54 100644
--- a/xmlsitemap.install
+++ b/xmlsitemap.install
@@ -281,6 +281,13 @@ function xmlsitemap_schema() {
         'not null' => TRUE,
         'default' => 0,
       ],
+      'base_url' => [
+        'description' => 'The base URL.',
+        'type' => 'varchar',
+        'length' => 255,
+        'not null' => TRUE,
+        'default' => '',
+      ],
     ],
     'primary key' => ['id', 'type', 'language'],
     'indexes' => [
@@ -316,14 +323,16 @@ function xmlsitemap_install() {
 
   $state_variables = xmlsitemap_state_variables();
   \Drupal::state()->setMultiple($state_variables);
-  $xmlsitemap_base_url = rtrim(Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString(), '/');
-  \Drupal::state()->set('xmlsitemap_base_url', $xmlsitemap_base_url);
+  $base_url = rtrim(Url::fromRoute('<front>', [], ['absolute' => TRUE])->toString(), '/');
+
+  $editable = \Drupal::configFactory()->getEditable('xmlsitemap.settings');
+  $editable->set('base_url', $base_url)->save();
   $context = xmlsitemap_get_current_context();
   $sitemap = \Drupal::entityTypeManager()->getStorage('xmlsitemap')->create([
     'id' => xmlsitemap_sitemap_get_context_hash($context),
   ]);
   $sitemap->context = xmlsitemap_get_current_context();
-  $sitemap = $sitemap->setLabel(\Drupal::state()->get('xmlsitemap_base_url'));
+  $sitemap = $sitemap->setLabel($base_url);
   $sitemap->save();
 
   xmlsitemap_check_directory();
@@ -383,3 +392,21 @@ function xmlsitemap_update_8002() {
 function xmlsitemap_update_8003() {
   xmlsitemap_update_8002();
 }
+
+/**
+ * Added base url to export in config.
+ */
+function xmlsitemap_update_8004() {
+  $database = \Drupal::database();
+  $column_schema = [
+    'description' => 'The base URL.',
+    'type' => 'varchar',
+    'length' => 255,
+    'not null' => TRUE,
+    'default' => '',
+  ];
+  $database->schema()->addField('xmlsitemap', 'base_url', $column_schema);
+  $editable = \Drupal::configFactory()->getEditable('xmlsitemap.settings');
+  $state = \Drupal::state()->get('xmlsitemap_base_url');
+  $editable->set('base_url', $state)->save();
+}
diff --git a/xmlsitemap.module b/xmlsitemap.module
index 30c73ab..667b659 100644
--- a/xmlsitemap.module
+++ b/xmlsitemap.module
@@ -457,7 +457,7 @@ function xmlsitemap_sitemap_uri(XmlSitemapInterface $sitemap) {
   \Drupal::moduleHandler()->alter('xmlsitemap_context_url_options', $uri['options'], $context);
   $uri['options'] += [
     'absolute' => TRUE,
-    'base_url' => \Drupal::state()->get('xmlsitemap_base_url'),
+    'base_url' => \Drupal::config('xmlsitemap.settings')->get('base_url'),
   ];
   return $uri;
 }
