diff --git src/wp-includes/default-filters.php src/wp-includes/default-filters.php
index 75dadfc..ae0f9cd 100644
--- src/wp-includes/default-filters.php
+++ src/wp-includes/default-filters.php
@@ -233,6 +233,7 @@ add_action( 'wp_head',             'wp_print_styles',                  8    );
 add_action( 'wp_head',             'wp_print_head_scripts',            9    );
 add_action( 'wp_head',             'wp_generator'                           );
 add_action( 'wp_head',             'rel_canonical'                          );
+add_action( 'wp_head',             'wp_dns_prefetch'                        );
 add_action( 'wp_head',             'wp_shortlink_wp_head',            10, 0 );
 add_action( 'wp_head',             'wp_site_icon',                    99    );
 add_action( 'wp_footer',           'wp_print_footer_scripts',         20    );
diff --git src/wp-includes/general-template.php src/wp-includes/general-template.php
index 23525b5..8ec9629 100644
--- src/wp-includes/general-template.php
+++ src/wp-includes/general-template.php
@@ -2523,6 +2523,28 @@ function wp_site_icon() {
 }
 
 /**
+ * Prints out domains to prefetch for page speed optimization.
+ *
+ * @since 4.4.0
+ */
+function wp_dns_prefetch() {
+	/**
+	 * Filter the domains to prefetch for page speed optimization.
+	 *
+	 * @since 4.4.0
+	 *
+	 * @param array $prefetch_urls Domains to prefetch.
+	 */
+	$prefetch_domains = apply_filters( 'dns_prefetch_domains', array() );
+	$prefetch_domains = array_unique( array_map( 'strtolower', $prefetch_domains ) );
+
+	foreach ( $prefetch_domains as $domain ) {
+		$domain = esc_url( untrailingslashit( $domain ), array('http', 'https') );
+		printf( "<link rel='dns-prefetch' href='%s'>\r\n", $domain );
+	}
+}
+
+/**
  * Whether the user should have a WYSIWIG editor.
  *
  * Checks that the user requires a WYSIWIG editor and that the editor is
diff --git tests/phpunit/tests/general/template.php tests/phpunit/tests/general/template.php
index f935a1b..39a935c 100644
--- tests/phpunit/tests/general/template.php
+++ tests/phpunit/tests/general/template.php
@@ -177,4 +177,27 @@ class Tests_General_Template extends WP_UnitTestCase {
 		$this->site_icon_id  = wp_insert_attachment( $attachment, $upload['file'] );
 		wp_update_attachment_metadata( $this->site_icon_id, wp_generate_attachment_metadata( $this->site_icon_id, $upload['file'] ) );
 	}
+
+	/**
+	 * @ticket 34292
+	 */
+	function test_wp_dns_prefetch() {
+		$this->assertEmpty( get_echo( 'wp_dns_prefetch' ) );
+
+		add_filter( 'dns_prefetch_domains', array( $this, '_add_dns_prefetch_domains' ) );
+
+		$expected = "<link rel='dns-prefetch' href='http://wordpress.org'>\r\n" .
+		            "<link rel='dns-prefetch' href='https://google.com'>\r\n" .
+		            "<link rel='dns-prefetch' href='//make.wordpress.org'>\r\n";
+
+		$this->assertEquals( $expected, get_echo( 'wp_dns_prefetch' ) );
+	}
+
+	function _add_dns_prefetch_domains( $domains ) {
+		$domains[] = 'http://wordpress.org';
+		$domains[] = 'https://google.com';
+		$domains[] = '//make.wordpress.org';
+
+		return $domains;
+	}
 }
