diff --git a/metatags_quick.admin.inc b/metatags_quick.admin.inc
index a20fe50..0337b08 100644
--- a/metatags_quick.admin.inc
+++ b/metatags_quick.admin.inc
@@ -9,7 +9,7 @@ function metatags_quick_admin_settings() {
   $form['front_settings']['use_front'] = array(
     '#type' => 'checkbox',
     '#title' => t('Use front page meta tags'),
-    '#description' => t('Don\'t use that option if your front page is a fieldable entity (i.e. single node, taxonomy term etc.)'),
+    '#description' => t('Don\'t use this option if your front page is a fieldable entity (i.e. single node, taxonomy term etc.)'),
     '#default_value' => $current_settings['use_front'],
     '#return_value' => 1,
   );
@@ -37,6 +37,24 @@ function metatags_quick_admin_settings() {
       '#value' => t('Create basic meta tags'),
     );
   }
+  $form['node_settings'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Node page meta tag defaults'),
+    '#collapsible' => TRUE,
+  );
+  $form['node_settings']['use_teaser'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Use the teaser of the page if the meta description is not set'),
+    '#description' => t('Use this to output a meta description tag if none would otherwise be included on the current node page'),
+    '#default_value' => $current_settings['use_teaser'],
+  );
+  $form['node_settings']['global_node_keywords'] = array(
+    '#type' => 'textfield',
+		'#size' => 80,
+    '#title' => t('Global keywords'),
+    '#description' => t('These keywords will be added after the page-specific keywords on all node pages'),
+    '#default_value' => isset($current_settings['global_node_keywords']) ? $current_settings['global_node_keywords'] : '',
+  );
   $form['op'] = array(
     '#value' => t('Submit'),
     '#type' => 'submit', 
@@ -47,6 +65,7 @@ function metatags_quick_admin_settings() {
 function metatags_quick_admin_settings_submit($form, &$form_state) {
   $new_settings = array(
     'use_front' => !empty($form_state['values']['use_front']),
+    'use_teaser' => !empty($form_state['values']['use_teaser']),
   );
   if (isset($form_state['values']['basic_init_op'])) {
     _metatags_quick_init_basic_fields();
@@ -60,6 +79,7 @@ function metatags_quick_admin_settings_submit($form, &$form_state) {
       $new_settings['front_values'][$form_key] = $form_state['values'][$form_key];
     }
   }
+  $new_settings['global_node_keywords'] = $form_state['values']['global_node_keywords'];
   variable_set('metatags_quick_settings', $new_settings);
   drupal_set_message(t('Meta tags (quick) settings saved'), 'status');
-}
\ No newline at end of file
+}
diff --git a/metatags_quick.module b/metatags_quick.module
index 1d244f5..c2ad4b6 100644
--- a/metatags_quick.module
+++ b/metatags_quick.module
@@ -118,12 +118,23 @@ function metatags_quick_entity_load($entities, $type) {
  * Implements hook_page_build
  */
 function metatags_quick_page_build($page) {
+  $tags = array();
+	$is_node_view = (arg(0) == 'node') && is_numeric(arg(1)) && !arg(2);
+  $module_settings = variable_get('metatags_quick_settings', _metatags_quick_settings_default());
   $meta_list = _metatags_quick_add_head();
   foreach ($meta_list as $meta_item) {
     // Skip meta tags that do not belong to the currently displayed page.
     if (isset($meta_item['type']) && menu_get_object($meta_item['type']) != $meta_item['entity']) {
       continue;
     }
+
+    // Global node keywords
+    if ($meta_item['name'] == 'keywords') {
+      if ($is_node_view && isset($module_settings['global_node_keywords']) && ($module_settings['global_node_keywords'] != '')) {
+        $meta_item['content'] .= ',' . $module_settings['global_node_keywords'];
+      }
+    }
+
     $element = array(
       '#tag' => 'meta',
       '#attributes' => array(
@@ -132,6 +143,13 @@ function metatags_quick_page_build($page) {
       ),
     );
     drupal_add_html_head($element, 'metatags_quick_' . $meta_item['name']);
+    $tags[] = $meta_item['name'];
+  }
+
+  
+  // Global node defaults
+  if ($is_node_view) {
+    _metatags_quick_global_node_defaults($tags, $module_settings);
   }
 }
 
@@ -292,6 +310,7 @@ function _metatags_quick_add_head($item = FALSE) {
 function _metatags_quick_settings_default() {
   return array(
     'use_front' => FALSE,
+    'use_teaser' => FALSE,
   );
 }
 
@@ -359,4 +378,34 @@ function _metatags_strlen($str) {
   else {
     return strlen($str);
   }
-}
\ No newline at end of file
+}
+
+function _metatags_quick_global_node_defaults($tags, $module_settings) {
+  // Use teaser for meta tag description
+  $meta_item['name'] = 'description';
+  if ($module_settings['use_teaser'] && !in_array($meta_item['name'], $tags)) {
+    $node = node_view(node_load(arg(1)),'teaser');
+    $element = array(
+      '#tag' => 'meta',
+      '#attributes' => array(
+        'name' => $meta_item['name'],
+        'content' => trim(strip_tags($node['body'][0]['#markup'])),
+      ),
+    );
+    drupal_add_html_head($element, 'metatags_quick_' . $meta_item['name']);
+  }
+
+  // Global node keywords
+  $meta_item['name'] = 'keywords';
+  $global_keywords = isset($module_settings['global_node_keywords']) && ($module_settings['global_node_keywords'] != '');
+  if ($global_keywords && !in_array($meta_item['name'], $tags)) {
+    $element = array(
+      '#tag' => 'meta',
+      '#attributes' => array(
+        'name' => $meta_item['name'],
+        'content' => trim(strip_tags($module_settings['global_node_keywords'])),
+      ),
+    );
+    drupal_add_html_head($element, 'metatags_quick_' . $meta_item['name']);
+  }
+}
