diff --git a/composer.json b/composer.json
index c811205bcf704ddd426ba7b44652bd1f6d76842a..7be31fdb60c5c7444ef2608913063077e11ba4ba 100644
--- a/composer.json
+++ b/composer.json
@@ -94,7 +94,6 @@
     "drupal/composer_manager": "8.1.0-rc2",
     "drupal/ctools": "8.3.0-alpha26",
     "drupal/token": "8.1.0-beta1",
-    "drupal/pathauto": "8.1.0-alpha3",
     "drupal/page_manager": "8.1.0-alpha23",
     "drupal/panels": "8.3.0-beta4",
     "drupal/panelizer": "8.3.0-alpha2",
@@ -105,13 +104,12 @@
     "drupal/smart_trim": "8.1.0",
     "drupal/advanced_text_formatter": "8.1.0-beta3",
     "drupal/block_class": "8.1.x-dev",
-    "drupal/metatag": "8.1.0-beta9",
-    "drupal/google_analytics": "8.2.1",
     "drupal/extlink": "8.1.0-alpha2",
     "drupal/linkit": "8.4.1",
     "drupal/anchor_link": "8.1.0-alpha1",
     "drupal/features": "8.3.0-beta7",
     "drupal/views_infinite_scroll": "8.1.2",
+    
     "drupal/embed": "8.1.0-rc3",
     "drupal/entity": "8.1.0-alpha3",
     "drupal/entity_browser": "8.1.0-alpha7",
@@ -122,8 +120,19 @@
     "drupal/media_entity_image": "8.1.2",
     "drupal/media_entity_audio": "8.1.0-beta3",
     "drupal/video_embed_field": "8.1.2",
+    
+    "drupal/pathauto": "8.1.0-alpha3",
+    "drupal/redirect": "8.1.0-alpha1",
+    "drupal/metatag": "8.1.0-beta9",
+    "drupal/robotstxt": "8.1.0",
+    "drupal/search404": "8.1.0-beta1",
+    "drupal/sitemap": "8.1.0",
+    "drupal/xmlsitemap": "8.1.0-alpha2",
+    "drupal/google_analytics": "8.2.1",
+    
     "drupal/bootstrap": "8.3.0-rc2",
     "drupal/adminimal_theme": "8.1.1",
+    
     "drupal/varbase_editor": "8.4.0-alpha1"
   }
 }
diff --git a/drupal-org.make b/drupal-org.make
index 7ed10407e1c2b756ad3ded3cadf40bc3d171b0ff..a40469b6021e7cd1dee58ebc9443b6839a27baa3 100644
--- a/drupal-org.make
+++ b/drupal-org.make
@@ -33,12 +33,6 @@ projects[token][download][type] = git
 projects[token][download][url] = https://git.drupal.org/project/token
 projects[token][download][tag] = 8.x-1.0-beta1
 
-projects[pathauto][type] = module
-projects[pathauto][subdir] = "contrib"
-projects[pathauto][download][type] = git
-projects[pathauto][download][url] = https://git.drupal.org/project/pathauto
-projects[pathauto][download][tag] = 8.x-1.0-alpha3
-
 projects[page_manager][type] = module
 projects[page_manager][subdir] = "contrib"
 projects[page_manager][download][type] = git
@@ -115,18 +109,6 @@ projects[block_class][version] = "8.x-1.x-dev"
 projects[block_class][download][type] = git
 projects[block_class][download][branch] = 8.x-1.x
 
-projects[metatag][type] = module
-projects[metatag][subdir] = "contrib"
-projects[metatag][download][type] = git
-projects[metatag][download][url] = https://git.drupal.org/project/metatag
-projects[metatag][download][tag] = 8.x-1.0-beta9
-
-projects[google_analytics][type] = module
-projects[google_analytics][subdir] = "contrib"
-projects[google_analytics][download][type] = git
-projects[google_analytics][download][url] = https://git.drupal.org/project/google_analytics
-projects[google_analytics][download][tag] = 8.x-2.1
-
 projects[extlink][type] = module
 projects[extlink][subdir] = "contrib"
 projects[extlink][download][type] = git
@@ -211,6 +193,58 @@ projects[video_embed_field][download][type] = git
 projects[video_embed_field][download][url] = https://git.drupal.org/project/video_embed_field
 projects[video_embed_field][download][tag] = 8.x-1.2
 
+;;;;;;;;;;;;;;;;;;;;;
+;; Contrib modules for Varbase SEO.
+;;;;;;;;;;;;;;;;;;;;;
+
+projects[pathauto][type] = module
+projects[pathauto][subdir] = "contrib"
+projects[pathauto][download][type] = git
+projects[pathauto][download][url] = https://git.drupal.org/project/pathauto
+projects[pathauto][download][tag] = 8.x-1.0-alpha3
+
+projects[redirect][type] = module
+projects[redirect][subdir] = "contrib"
+projects[redirect][download][type] = git
+projects[redirect][download][url] = https://git.drupal.org/project/redirect
+projects[redirect][download][tag] = 8.x-1.0-alpha1
+
+projects[metatag][type] = module
+projects[metatag][subdir] = "contrib"
+projects[metatag][download][type] = git
+projects[metatag][download][url] = https://git.drupal.org/project/metatag
+projects[metatag][download][tag] = 8.x-1.0-beta9
+
+projects[robotstxt][type] = module
+projects[robotstxt][subdir] = "contrib"
+projects[robotstxt][download][type] = git
+projects[robotstxt][download][url] = https://git.drupal.org/project/robotstxt
+projects[robotstxt][download][tag] = 8.x-1.0
+
+projects[search404][type] = module
+projects[search404][subdir] = "contrib"
+projects[search404][download][type] = git
+projects[search404][download][url] = https://git.drupal.org/project/search404
+projects[search404][download][tag] = 8.x-1.0-beta1
+
+projects[sitemap][type] = module
+projects[sitemap][subdir] = "contrib"
+projects[sitemap][download][type] = git
+projects[sitemap][download][url] = https://git.drupal.org/project/sitemap
+projects[sitemap][download][tag] = 8.x-1.0
+
+projects[xmlsitemap][type] = module
+projects[xmlsitemap][subdir] = "contrib"
+projects[xmlsitemap][download][type] = git
+projects[xmlsitemap][download][url] = https://git.drupal.org/project/xmlsitemap
+projects[xmlsitemap][download][tag] = 8.x-1.0-alpha2
+
+projects[google_analytics][type] = module
+projects[google_analytics][subdir] = "contrib"
+projects[google_analytics][download][type] = git
+projects[google_analytics][download][url] = https://git.drupal.org/project/google_analytics
+projects[google_analytics][download][tag] = 8.x-2.1
+
 ;;;;;;;;;;;;;;;;;;;;;
 ;; Development contrib modules
 ;;;;;;;;;;;;;;;;;;;;;
diff --git a/modules/varbase_features/varbase_landing/config/optional/pathauto.pattern.landing_page_pattern.yml b/modules/varbase_features/varbase_landing/config/optional/pathauto.pattern.landing_page_pattern.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a2a9fc567cc3a8549f5805653c6cf87018ceb4be
--- /dev/null
+++ b/modules/varbase_features/varbase_landing/config/optional/pathauto.pattern.landing_page_pattern.yml
@@ -0,0 +1,21 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - node
+id: landing_page_pattern
+label: 'Landing Page pattern'
+type: 'canonical_entities:node'
+pattern: '[node:title]'
+selection_criteria:
+  1446c726-29a1-4042-b3db-b855722dda30:
+    id: node_type
+    bundles:
+      landing_page: landing_page
+    negate: false
+    context_mapping:
+      node: node
+    uuid: 1446c726-29a1-4042-b3db-b855722dda30
+selection_logic: and
+weight: -5
+relationships: {  }
diff --git a/modules/varbase_features/varbase_landing/config/optional/xmlsitemap.settings.node.landing_page.yml b/modules/varbase_features/varbase_landing/config/optional/xmlsitemap.settings.node.landing_page.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f1e1b1d0ec889e8cb28db4d3461e6db89498ddc1
--- /dev/null
+++ b/modules/varbase_features/varbase_landing/config/optional/xmlsitemap.settings.node.landing_page.yml
@@ -0,0 +1,3 @@
+status: false
+priority: 0.5
+changefreq: 0
diff --git a/modules/varbase_features/varbase_landing/varbase_landing.info.yml b/modules/varbase_features/varbase_landing/varbase_landing.info.yml
index d2e33a1c11ccffa8fc2e9c45e489c41ae5aef6a2..479ea8897fb69e4fe4ee7c74262888d5628ccfa6 100644
--- a/modules/varbase_features/varbase_landing/varbase_landing.info.yml
+++ b/modules/varbase_features/varbase_landing/varbase_landing.info.yml
@@ -8,5 +8,7 @@ dependencies:
   - node
   - panelizer
   - path
+  - pathauto
+  - user
 version: 8.x-4.0
 package: Varbase
diff --git a/modules/varbase_features/varbase_page/config/optional/pathauto.pattern.basic_page_pattern.yml b/modules/varbase_features/varbase_page/config/optional/pathauto.pattern.basic_page_pattern.yml
new file mode 100644
index 0000000000000000000000000000000000000000..215f353a955b8f459d3ba1823093241525dd1305
--- /dev/null
+++ b/modules/varbase_features/varbase_page/config/optional/pathauto.pattern.basic_page_pattern.yml
@@ -0,0 +1,21 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - node
+id: basic_page_pattern
+label: 'Basic page pattern'
+type: 'canonical_entities:node'
+pattern: '[node:title]'
+selection_criteria:
+  dcf19e26-d8d0-4d53-8a5d-9d3c48916467:
+    id: node_type
+    bundles:
+      page: page
+    negate: false
+    context_mapping:
+      node: node
+    uuid: dcf19e26-d8d0-4d53-8a5d-9d3c48916467
+selection_logic: and
+weight: -5
+relationships: {  }
diff --git a/modules/varbase_features/varbase_page/config/optional/xmlsitemap.settings.node.page.yml b/modules/varbase_features/varbase_page/config/optional/xmlsitemap.settings.node.page.yml
new file mode 100644
index 0000000000000000000000000000000000000000..f1e1b1d0ec889e8cb28db4d3461e6db89498ddc1
--- /dev/null
+++ b/modules/varbase_features/varbase_page/config/optional/xmlsitemap.settings.node.page.yml
@@ -0,0 +1,3 @@
+status: false
+priority: 0.5
+changefreq: 0
diff --git a/modules/varbase_features/varbase_page/varbase_page.info.yml b/modules/varbase_features/varbase_page/varbase_page.info.yml
index 397dc2d22acbeae519d13b7794edaad7d53654e7..20bd4bce04ee2a1ab81aef380794366dde7927cf 100644
--- a/modules/varbase_features/varbase_page/varbase_page.info.yml
+++ b/modules/varbase_features/varbase_page/varbase_page.info.yml
@@ -9,6 +9,7 @@ dependencies:
   - page_manager
   - panelizer
   - path
+  - pathauto
   - rdf
   - smart_trim
   - text
diff --git a/modules/varbase_features/varbase_seo/config/install/pathauto.settings.yml b/modules/varbase_features/varbase_seo/config/install/pathauto.settings.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a607bba4899fc72323b7dfaf232be9e13c81cb1d
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/pathauto.settings.yml
@@ -0,0 +1,11 @@
+punctuation:
+  hyphen: 1
+verbose: false
+separator: '-'
+max_length: 100
+max_component_length: 100
+transliterate: true
+reduce_ascii: false
+case: true
+ignore_words: 'a, an, as, at, before, but, by, for, from, is, in, into, like, of, off, on, onto, per, since, than, the, this, that, to, up, via, with'
+update_action: 2
diff --git a/modules/varbase_features/varbase_seo/config/install/redirect.settings.yml b/modules/varbase_features/varbase_seo/config/install/redirect.settings.yml
new file mode 100644
index 0000000000000000000000000000000000000000..568caa1bb3b1423819f8f28712ae9fcad8aa2838
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/redirect.settings.yml
@@ -0,0 +1,13 @@
+canonical: true
+auto_redirect: true
+default_status_code: 301
+passthrough_querystring: true
+warning: false
+nonclean_to_clean: true
+ignore_admin_path: false
+frontpage_redirect: true
+deslash: false
+access_check: true
+normalize_aliases: true
+content_location_header: false
+term_path_handler: true
diff --git a/modules/varbase_features/varbase_seo/config/install/robotstxt.settings.yml b/modules/varbase_features/varbase_seo/config/install/robotstxt.settings.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1472e0eddbbbf1b970de9e346e6e8e5eb598b018
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/robotstxt.settings.yml
@@ -0,0 +1 @@
+content: "#\r\n# robots.txt\r\n#\r\n# This file is to prevent the crawling and indexing of certain parts\r\n# of your site by web crawlers and spiders run by sites like Yahoo!\r\n# and Google. By telling these \"robots\" where not to go on your site,\r\n# you save bandwidth and server resources.\r\n#\r\n# This file will be ignored unless it is at the root of your host:\r\n# Used:    http://example.com/robots.txt\r\n# Ignored: http://example.com/site/robots.txt\r\n#\r\n# For more information about the robots.txt standard, see:\r\n# http://www.robotstxt.org/robotstxt.html\r\n\r\nUser-agent: *\r\n# CSS, JS, Images\r\nAllow: /core/*.css$\r\nAllow: /core/*.css?\r\nAllow: /core/*.js$\r\nAllow: /core/*.js?\r\nAllow: /core/*.gif\r\nAllow: /core/*.jpg\r\nAllow: /core/*.jpeg\r\nAllow: /core/*.png\r\nAllow: /core/*.svg\r\nAllow: /profiles/*.css$\r\nAllow: /profiles/*.css?\r\nAllow: /profiles/*.js$\r\nAllow: /profiles/*.js?\r\nAllow: /profiles/*.gif\r\nAllow: /profiles/*.jpg\r\nAllow: /profiles/*.jpeg\r\nAllow: /profiles/*.png\r\nAllow: /profiles/*.svg\r\n# Directories\r\nDisallow: /core/\r\nDisallow: /profiles/\r\n# Files\r\nDisallow: /README.txt\r\nDisallow: /web.config\r\n# Paths (clean URLs)\r\nDisallow: /admin/\r\nDisallow: /comment/reply/\r\nDisallow: /filter/tips/\r\nDisallow: /node/add/\r\nDisallow: /search/\r\nDisallow: /user/register/\r\nDisallow: /user/password/\r\nDisallow: /user/login/\r\nDisallow: /user/logout/\r\n# Paths (no clean URLs)\r\nDisallow: /index.php/admin/\r\nDisallow: /index.php/comment/reply/\r\nDisallow: /index.php/filter/tips/\r\nDisallow: /index.php/node/add/\r\nDisallow: /index.php/search/\r\nDisallow: /index.php/user/password/\r\nDisallow: /index.php/user/register/\r\nDisallow: /index.php/user/login/\r\nDisallow: /index.php/user/logout/\r\n"
diff --git a/modules/varbase_features/varbase_seo/config/install/search404.settings.yml b/modules/varbase_features/varbase_seo/config/install/search404.settings.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ae55b9a6f737442e4c6019a431ce88efb0ae87b4
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/search404.settings.yml
@@ -0,0 +1,18 @@
+search404_redirect_301: false
+search404_do_custom_search: false
+search404_custom_search_path: search/@keys
+search404_jump: false
+search404_skip_auto_search: false
+search404_disable_error_message: false
+search404_use_or: false
+search404_use_search_engine: false
+search404_ignore_extensions: 'htm html php'
+search404_ignore_query: 'gif jpg jpeg bmp png'
+search404_first: false
+search404_regex: ''
+search404_page_text: ''
+search404_do_google_cse: false
+search404_do_search_by_page: false
+site_404: search404
+search404_page_title: 'Page not found'
+search404_ignore: 'and or the'
diff --git a/modules/varbase_features/varbase_seo/config/install/sitemap.settings.yml b/modules/varbase_features/varbase_seo/config/install/sitemap.settings.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b6c57c18025b5f4a517228cfdab58fbbad1ee84a
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/sitemap.settings.yml
@@ -0,0 +1,32 @@
+page_title: Sitemap
+message:
+  value: ''
+  format: restricted_html
+show_front: true
+show_titles: true
+show_books: {  }
+books_expanded: true
+show_menus:
+  footer: footer
+  main: main
+  account: '0'
+  admin: '0'
+  tools: '0'
+show_menus_hidden: false
+show_vocabularies: {  }
+show_description: true
+show_count: true
+vocabulary_depth: -1
+term_threshold: 0
+forum_threshold: -1
+rss_front: rss.xml
+show_rss_links: 1
+rss_taxonomy: -1
+css: true
+order:
+  front: -50
+  menus_account: -50
+  menus_admin: -50
+  menus_footer: -50
+  menus_main: -50
+  menus_tools: -50
diff --git a/modules/varbase_features/varbase_seo/config/install/xmlsitemap.settings.yml b/modules/varbase_features/varbase_seo/config/install/xmlsitemap.settings.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0cc9d9e841230231622e21a69eff78ad45c94460
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/xmlsitemap.settings.yml
@@ -0,0 +1,15 @@
+minimum_lifetime: 0
+xsl: 1
+prefetch_aliases: 1
+chunk_size: auto
+batch_limit: 100
+path: xmlsitemap
+frontpage_priority: !!float 1
+frontpage_changefreq: 86400
+lastmod_format: 'Y-m-d\TH:i\Z'
+gz: false
+clean_url: 0
+cron_threshold_error: 1209600
+cron_threshold_warning: 172800
+disable_cron_regeneration: false
+i18n_selection_mode: simple
diff --git a/modules/varbase_features/varbase_seo/config/install/xmlsitemap.xmlsitemap.NXhscRe0440PFpI5dSznEVgmauL25KojD7u4e9aZwOM.yml b/modules/varbase_features/varbase_seo/config/install/xmlsitemap.xmlsitemap.NXhscRe0440PFpI5dSznEVgmauL25KojD7u4e9aZwOM.yml
new file mode 100644
index 0000000000000000000000000000000000000000..ebc458e3a0fa14c81e1185db2b2c5b194c99a59d
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/install/xmlsitemap.xmlsitemap.NXhscRe0440PFpI5dSznEVgmauL25KojD7u4e9aZwOM.yml
@@ -0,0 +1,10 @@
+langcode: en
+status: true
+dependencies: {  }
+id: NXhscRe0440PFpI5dSznEVgmauL25KojD7u4e9aZwOM
+label: xmlsitemap
+chunks: 1
+links: 1
+max_filesize: 327
+context: {  }
+updated: 1471173118
diff --git a/modules/varbase_features/varbase_seo/config/optional/rdf.mapping.user.user.yml b/modules/varbase_features/varbase_seo/config/optional/rdf.mapping.user.user.yml
new file mode 100644
index 0000000000000000000000000000000000000000..4c6825a5f69be78aad953585190a4e6b63e81678
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/config/optional/rdf.mapping.user.user.yml
@@ -0,0 +1,14 @@
+langcode: en
+status: true
+dependencies:
+  module:
+    - user
+id: user.user
+targetEntityType: user
+bundle: user
+types:
+  - 'schema:Person'
+fieldMappings:
+  name:
+    properties:
+      - 'schema:name'
diff --git a/modules/varbase_features/varbase_seo/varbase_seo.features.yml b/modules/varbase_features/varbase_seo/varbase_seo.features.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8ac52eee9b78f26c31dfe33a0489664fcee672ee
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/varbase_seo.features.yml
@@ -0,0 +1,2 @@
+bundle: varbase
+required: true
diff --git a/modules/varbase_features/varbase_seo/varbase_seo.info.yml b/modules/varbase_features/varbase_seo/varbase_seo.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..1499d3303c94008643f739077e1be7273dd51913
--- /dev/null
+++ b/modules/varbase_features/varbase_seo/varbase_seo.info.yml
@@ -0,0 +1,10 @@
+name: 'Varbase SEO'
+description: 'Provide SEO Core features and settings.'
+type: module
+core: 8.x
+dependencies:
+  - rdf
+  - user
+  - xmlsitemap
+version: 8.x-4.0
+package: Varbase
diff --git a/varbase.info.yml b/varbase.info.yml
index 74f1ba1e17863a05f6f1f6ce8d5ae3a44a4c1e2d..f57b8e468af864793aed8dba3c468f57e242574a 100644
--- a/varbase.info.yml
+++ b/varbase.info.yml
@@ -56,7 +56,6 @@ dependencies:
   - ctools_block
   - ctools_views
   - token
-  - pathauto
   - page_manager
   - page_manager_ui
   - panels
@@ -69,8 +68,6 @@ dependencies:
   - smart_trim
   - advanced_text_formatter
   - block_class
-  - metatag
-  - google_analytics
   - extlink
   - features
   - features_ui
@@ -88,11 +85,22 @@ dependencies:
   - video_embed_media
   - video_embed_wysiwyg
   
+  # Contrib modules for Varbase SEO.
+  - pathauto
+  - redirect
+  - metatag
+  - robotstxt
+  - search404
+  - sitemap
+  - xmlsitemap
+  - google_analytics
+  
   # Varbase core functionality.
   - varbase_core
   - varbase_page
   - varbase_landing
   - varbase_editor
+  - varbase_seo
 
   # Varbase site functionality.
   - varbase_site