diff --git src/wp-includes/formatting.php src/wp-includes/formatting.php
index 8d51492a13..201787a252 100644
--- src/wp-includes/formatting.php
+++ src/wp-includes/formatting.php
@@ -2263,6 +2263,14 @@ function sanitize_title_with_dashes( $title, $raw_title = '', $context = 'displa
 				'%c2%b0',
 				'%e2%80%a6',
 				'%e2%84%a2',
+				// Bullets characters.
+				'%e2%80%a2',
+				'%e2%80%a3',
+				'%e2%97%a6',
+				'%e2%81%83',
+				'%e2%81%8c',
+				'%e2%81%8d',
+				'%e2%97%98',
 				// Acute accents.
 				'%c2%b4',
 				'%cb%8a',
diff --git tests/phpunit/tests/formatting/SanitizeTitleWithDashes.php tests/phpunit/tests/formatting/SanitizeTitleWithDashes.php
index c3059614e3..3efb449850 100644
--- tests/phpunit/tests/formatting/SanitizeTitleWithDashes.php
+++ tests/phpunit/tests/formatting/SanitizeTitleWithDashes.php
@@ -140,4 +140,17 @@ class Tests_Formatting_SanitizeTitleWithDashes extends WP_UnitTestCase {
 		$this->assertEquals( 'aaaa', sanitize_title_with_dashes( 'ááa´aˊ', '', 'save' ) );
 	}
 
+	/**
+	 * @ticket 49791
+	 */
+	public function test_replaces_bullets() {
+		$this->assertEquals( 'fancy-title-amazing', sanitize_title_with_dashes( 'Fancy Title • Amazing', '', 'save' ) );
+		$this->assertEquals( 'fancy-title-amazing', sanitize_title_with_dashes( 'Fancy Title ‣ Amazing', '', 'save' ) );
+		$this->assertEquals( 'fancy-title-amazing', sanitize_title_with_dashes( 'Fancy Title ⁃ Amazing', '', 'save' ) );
+		$this->assertEquals( 'fancy-title-amazing', sanitize_title_with_dashes( 'Fancy Title ⁌ Amazing', '', 'save' ) );
+		$this->assertEquals( 'fancy-title-amazing', sanitize_title_with_dashes( 'Fancy Title ⁍ Amazing', '', 'save' ) );
+		$this->assertEquals( 'fancy-title-amazing', sanitize_title_with_dashes( 'Fancy Title ◘ Amazing', '', 'save' ) );
+		$this->assertEquals( 'fancy-title-amazing', sanitize_title_with_dashes( 'Fancy Title ◦ Amazing', '', 'save' ) );
+	}
+
 }
