diff --git a/nodewords_basic/nodewords_basic.module b/nodewords_basic/nodewords_basic.module
index 995f4a1..762956d 100644
--- a/nodewords_basic/nodewords_basic.module
+++ b/nodewords_basic/nodewords_basic.module
@@ -18,23 +18,14 @@ function nodewords_basic_nodewords_tags_info() {
   $tags = array(
     'page_title' => array(
       'callback' => 'nodewords_basic_title',
-      'label' => t('Page title'),
-      'permission' => 'edit meta tag PAGE TITLE',
       'context' => array(
         'denied' => array(
           NODEWORDS_TYPE_DEFAULT,
         ),
       ),
-    ),
-    'abstract' => array(
-      'callback' => 'nodewords_basic_abstract',
-      'label' => t('Abstract'),
-      'permission' => 'edit meta tag ABSTRACT',
-      'templates' => array(
-        'head' => array(
-          'abstract' => NODEWORDS_META,
-        ),
-      ),
+      'label' => t('Page title'),
+      'permission' => 'edit meta tag PAGE TITLE',
+      'weight' => array('page_title' => -20),
     ),
     'canonical' => array(
       'callback' => 'nodewords_basic_canonical',
@@ -70,13 +61,24 @@ function nodewords_basic_nodewords_tags_info() {
       'permission' => 'edit meta tag COPYRIGHT',
       'templates' => array(
         'head' => array(
-          'copyright' => NODEWORDS_META
+          'copyright' => NODEWORDS_META,
         ),
         'search index' => array(
-          'copyright' => '<h3>%content</h3>'
+          'copyright' => '<h3>%content</h3>',
+        ),
+      ),
+      'weight' => array('copyright' => -8),
+    ),
+    'abstract' => array(
+      'callback' => 'nodewords_basic_abstract',
+      'label' => t('Abstract'),
+      'permission' => 'edit meta tag ABSTRACT',
+      'templates' => array(
+        'head' => array(
+          'abstract' => NODEWORDS_META,
         ),
       ),
-      'weight' => array('copyright' => -7),
+      'weight' => array('abstract' => -7),
     ),
     'description' => array(
       'callback' => 'nodewords_basic_description',
@@ -84,10 +86,10 @@ function nodewords_basic_nodewords_tags_info() {
       'permission' => 'edit meta tag DESCRIPTION',
       'templates' => array(
         'head' => array(
-          'description' => NODEWORDS_META
+          'description' => NODEWORDS_META,
         ),
         'search index' => array(
-          'description' => '<h3>%content</h3>'
+          'description' => '<h3>%content</h3>',
         ),
       ),
       'weight' => array('description' => -6),
@@ -98,13 +100,13 @@ function nodewords_basic_nodewords_tags_info() {
       'permission' => 'edit meta tag KEYWORDS',
       'templates' => array(
         'head' => array(
-          'keywords' => NODEWORDS_META
+          'keywords' => NODEWORDS_META,
         ),
         'search index' => array(
-          'keywords' => '<h2>%content</h2>'
+          'keywords' => '<h2>%content</h2>',
         ),
       ),
-      'weight' => array('keywords' => -8),
+      'weight' => array('keywords' => -5),
     ),
     'revisit-after' => array(
       'callback' => 'nodewords_basic_revisit_after',
@@ -115,6 +117,7 @@ function nodewords_basic_nodewords_tags_info() {
           'revisit-after' => NODEWORDS_META,
         ),
       ),
+      'weight' => array('revisit-after' => -4),
     ),
     'robots' => array(
       'callback' => 'nodewords_basic_robots',
@@ -140,6 +143,7 @@ function nodewords_basic_nodewords_tags_info() {
           'robots' => NODEWORDS_META,
         ),
       ),
+      'weight' => array('robots' => -3),
     ),
   );
 
diff --git a/nodewords_extra/nodewords_extra.module b/nodewords_extra/nodewords_extra.module
index a2708ff..f064480 100644
--- a/nodewords_extra/nodewords_extra.module
+++ b/nodewords_extra/nodewords_extra.module
@@ -27,6 +27,34 @@ function nodewords_extra_nodewords_api() {
  */
 function nodewords_extra_nodewords_tags_info() {
   $tags = array(
+    'dc.title' => array(
+      'context' => array(
+        'denied' => array(
+          NODEWORDS_TYPE_ERRORPAGE,
+          NODEWORDS_TYPE_OFFLINE,
+        ),
+      ),
+      'callback' => 'nodewords_extra_dc_title',
+      'label' => t('Dublin Core title'),
+      'permission' => 'edit meta tag Dublin Core TITLE',
+      'templates' => array(
+        'head' => array(
+          'dc.title' => NODEWORDS_META,
+        ),
+      ),
+      'weight' => array('dc.title' => 11),
+    ),
+    'dc.description' => array(
+      'callback' => 'nodewords_extra_dc_description',
+      'label' => t('Dublin Core description'),
+      'permission' => 'edit meta tag Dublin Core DESCRIPTION',
+      'templates' => array(
+        'head' => array(
+          'dc.description' => NODEWORDS_META,
+        ),
+      ),
+      'weight' => array('dc.description' => 12),
+    ),
     'dc.contributor' => array(
       'callback' => 'nodewords_extra_dc_contributor',
       'context' => array(
@@ -43,6 +71,7 @@ function nodewords_extra_nodewords_tags_info() {
           'dc.contributor' => NODEWORDS_META,
         ),
       ),
+      'weight' => array('dc.contributor' => 13),
     ),
     'dc.creator' => array(
       'callback' => 'nodewords_extra_dc_creator',
@@ -60,33 +89,7 @@ function nodewords_extra_nodewords_tags_info() {
           'dc.creator' => NODEWORDS_META,
         ),
       ),
-    ),
-    'dc.date' => array(
-      'callback' => 'nodewords_extra_dc_date',
-      'context' => array(
-        'allowed' => array(
-          NODEWORDS_TYPE_DEFAULT,
-          NODEWORDS_TYPE_NODE,
-          NODEWORDS_TYPE_PAGE,
-        ),
-      ),
-      'label' => t('Dublin Core date'),
-      'permission' => 'edit meta tag Dublin Core DATE',
-      'templates' => array(
-        'head' => array(
-          'dc.date' => NODEWORDS_META,
-        ),
-      ),
-    ),
-    'dc.description' => array(
-      'callback' => 'nodewords_extra_dc_description',
-      'label' => t('Dublin Core description'),
-      'permission' => 'edit meta tag Dublin Core DESCRIPTION',
-      'templates' => array(
-        'head' => array(
-          'dc.description' => NODEWORDS_META,
-        ),
-      ),
+      'weight' => array('dc.creator' => 14),
     ),
     'dc.publisher' => array(
       'callback' => 'nodewords_extra_dc_publisher',
@@ -103,22 +106,25 @@ function nodewords_extra_nodewords_tags_info() {
           'dc.publisher' => NODEWORDS_META,
         ),
       ),
+      'weight' => array('dc.publisher' => 15),
     ),
-    'dc.title' => array(
+    'dc.date' => array(
+      'callback' => 'nodewords_extra_dc_date',
       'context' => array(
-        'denied' => array(
-          NODEWORDS_TYPE_ERRORPAGE,
-          NODEWORDS_TYPE_OFFLINE,
+        'allowed' => array(
+          NODEWORDS_TYPE_DEFAULT,
+          NODEWORDS_TYPE_NODE,
+          NODEWORDS_TYPE_PAGE,
         ),
       ),
-      'callback' => 'nodewords_extra_dc_title',
-      'label' => t('Dublin Core title'),
-      'permission' => 'edit meta tag Dublin Core TITLE',
+      'label' => t('Dublin Core date'),
+      'permission' => 'edit meta tag Dublin Core DATE',
       'templates' => array(
         'head' => array(
-          'dc.title' => NODEWORDS_META,
+          'dc.date' => NODEWORDS_META,
         ),
       ),
+      'weight' => array('dc.date' => 16),
     ),
     'location' => array(
       'callback' => 'nodewords_extra_location',
@@ -130,6 +136,7 @@ function nodewords_extra_nodewords_tags_info() {
           'icbm' => NODEWORDS_META,
         ),
       ),
+      'weight' => array('location' => 17),
     ),
     'shorturl' => array(
       'context' => array(
@@ -148,6 +155,7 @@ function nodewords_extra_nodewords_tags_info() {
           'shorturl' => NODEWORDS_LINK_REL,
         ),
       ),
+      // This makes it show right after the Canonical URL.
       'weight' => array('shorturl' => -9),
     ),
   );
diff --git a/nodewords_og/nodewords_og.module b/nodewords_og/nodewords_og.module
index 76c3b5f..1364de0 100644
--- a/nodewords_og/nodewords_og.module
+++ b/nodewords_og/nodewords_og.module
@@ -23,6 +23,7 @@ function nodewords_og_nodewords_tags_info() {
     $tagsrc = nodewords_og_get_tags();
 
     $tags = array();
+    $weight = 20;
     foreach ($tagsrc as $key => $value) {
       $callback = 'nodewords_og_' . strtr($key, ':-', '__');
       $label = t('Open Graph: !labelsuffix', array('!labelsuffix' => (!empty($value['labelsuffix']) ? $value['labelsuffix'] : $key)));
@@ -50,6 +51,7 @@ function nodewords_og_nodewords_tags_info() {
             $key => NODEWORDS_META_PROPERTY,
           ),
         ),
+        'weight' => $weight++,
       );
     }
 
@@ -80,6 +82,10 @@ function nodewords_og_get_tags() {
       'labelsuffix' => t('Title'),
       'description' => t('The title of the object as it should appear in the graph.'),
     ),
+    'og:url' => array(
+      'labelsuffix' => t('URL'),
+      'description' => t("The canonical URL of your object that will be used as it's permanent ID in the graph. Use <code>&lt;front&gt;</code> for the front page."),
+    ),
     'og:type' => array(
       'labelsuffix' => t('Type'),
       'description' => t('The type of your object e.g. movie. <a href="@url" target="_blank">See the list of supported types</a>.', array('@url' => 'https://developers.facebook.com/docs/opengraph/#types')),
@@ -88,10 +94,6 @@ function nodewords_og_get_tags() {
       'labelsuffix' => t('Image'),
       'description' => t('An image URL which should represent your object within the graph. The image must be at least 50px by 50px and have a max aspect ratio of 3:1.'),
     ),
-    'og:url' => array(
-      'labelsuffix' => t('URL'),
-      'description' => t("The canonical URL of your object that will be used as it's permanent ID in the graph. Use <code>&lt;front&gt;</code> for the front page."),
-    ),
     'og:description' => array(
       'labelsuffix' => t('Description'),
       'description' => t('A one to two sentence description of your page.'),
