Index: src/bp-templates/bp-legacy/buddypress/members/register.php
--- src/bp-templates/bp-legacy/buddypress/members/register.php
+++ src/bp-templates/bp-legacy/buddypress/members/register.php
@@ -63,7 +63,7 @@
 					<h4><?php _e( 'Profile Details', 'buddypress' ); ?></h4>
 
 					<?php /* Use the profile field loop to render input fields for the 'base' profile field group */ ?>
-					<?php if ( bp_is_active( 'xprofile' ) ) : if ( bp_has_profile( array( 'profile_group_id' => 1, 'fetch_field_data' => false ) ) ) : while ( bp_profile_groups() ) : bp_the_profile_group(); ?>
+					<?php if ( bp_is_active( 'xprofile' ) ) : if ( bp_has_profile_signup() ) : while ( bp_profile_groups() ) : bp_the_profile_group(); ?>
 
 					<?php while ( bp_profile_fields() ) : bp_the_profile_field(); ?>
 
Index: src/bp-xprofile/bp-xprofile-admin.php
--- src/bp-xprofile/bp-xprofile-admin.php
+++ src/bp-xprofile/bp-xprofile-admin.php
@@ -365,13 +365,24 @@
 				// Validate default visibility
 				if ( ! empty( $_POST['default-visibility'] ) && in_array( $_POST['default-visibility'], wp_list_pluck( bp_xprofile_get_visibility_levels(), 'id' ) ) ) {
 					bp_xprofile_update_field_meta( $field_id, 'default_visibility', $_POST['default-visibility'] );
+				} else {
+					bp_xprofile_delete_meta( $field_id, 'field', 'default_visibility' );
 				}
 
 				// Validate custom visibility
-				if ( ! empty( $_POST['allow-custom-visibility'] ) && in_array( $_POST['allow-custom-visibility'], array( 'allowed', 'disallowed' ) ) ) {
+				if ( ! empty( $_POST['allow-custom-visibility'] ) && in_array( $_POST['allow-custom-visibility'], array( 'allowed', 'disabled' ) ) ) {
 					bp_xprofile_update_field_meta( $field_id, 'allow_custom_visibility', $_POST['allow-custom-visibility'] );
+				} else {
+					bp_xprofile_delete_meta( $field_id, 'field', 'allow_custom_visibility' );
 				}
 
+				// Validate signup
+				if ( ! empty( $_POST['signup-position'] ) ) {
+					bp_xprofile_update_field_meta( $field_id, 'signup_position', (int) $_POST['signup-position'] );
+				} else {
+					bp_xprofile_delete_meta( $field_id, 'field', 'signup_position' );
+				}
+
 				/**
 				 * Fires at the end of the process to save a field for a user, if successful.
 				 *
@@ -489,8 +500,11 @@
 		<legend>
 			<span>
 				<?php bp_the_profile_field_name(); ?>
-				<?php if ( ! $field->can_delete ) : ?> <?php _e( '(Primary)', 'buddypress' ); endif; ?>
-				<?php if ( bp_get_the_profile_field_is_required() ) : ?><?php _e( '(Required)', 'buddypress' ) ?><?php endif; ?>
+
+				<?php if ( empty( $field->can_delete )                                    ) : ?><?php esc_html_e( '(Primary)',  'buddypress' ); endif; ?>
+				<?php if ( bp_get_the_profile_field_is_required()                         ) : ?><?php esc_html_e( '(Required)', 'buddypress' ); endif; ?>
+				<?php if ( bp_xprofile_get_meta( $field->id, 'field', 'signup_position' ) ) : ?><?php esc_html_e( '(Sign-up)',  'buddypress' ); endif; ?>
+
 				<?php
 
 				/**
Index: src/bp-xprofile/bp-xprofile-template.php
--- src/bp-xprofile/bp-xprofile-template.php
+++ src/bp-xprofile/bp-xprofile-template.php
@@ -298,6 +298,25 @@
 	return apply_filters( 'bp_has_profile', $profile_template->has_groups(), $profile_template );
 }
 
+/**
+ * Query XProfile fields used during signup in `register.php` template part
+ *
+ * @since BuddyPress (2.3.0)
+ *
+ * @param mixed $args
+ */
+function bp_has_profile_signup( $args = '' ) {
+
+	// Parse signup arguments
+	$r = bp_parse_args( $args, array(
+		'profile_group_id' => 1,
+		'fetch_field_data' => false
+	), 'signup_fields' );
+
+	// Query for profile fields to show in signup
+	return bp_has_profile( $r );
+}
+
 function bp_profile_groups() {
 	global $profile_template;
 	return $profile_template->profile_groups();
Index: src/bp-xprofile/classes/class-bp-xprofile-field.php
--- src/bp-xprofile/classes/class-bp-xprofile-field.php
+++ src/bp-xprofile/classes/class-bp-xprofile-field.php
@@ -110,6 +110,13 @@
 	public $allow_custom_visibility = 'allowed';
 
 	/**
+	 * @since BuddyPress (2.3.0)
+	 *
+	 * @var int Position of field on user registration page
+	 */
+	public $signup_position = null;
+
+	/**
 	 * @since BuddyPress (2.0.0)
 	 *
 	 * @var BP_XProfile_Field_Type Field type object used for validation
@@ -191,6 +198,7 @@
 			// Get metadata for field
 			$default_visibility       = bp_xprofile_get_meta( $id, 'field', 'default_visibility'      );
 			$allow_custom_visibility  = bp_xprofile_get_meta( $id, 'field', 'allow_custom_visibility' );
+			$signup_position          = bp_xprofile_get_meta( $id, 'field', 'signup_position'         );
 
 			// Setup default visibility
 			$this->default_visibility = ! empty( $default_visibility )
@@ -201,6 +209,11 @@
 			$this->allow_custom_visibility = ( 'disabled' === $allow_custom_visibility )
 				? 'disabled'
 				: 'allowed';
+
+			// Is this field used on the registration page
+			$this->signup_position = ( false !== $signup_position )
+				? $signup_position
+				: null;
 		}
 	}
 
@@ -680,9 +693,12 @@
 							// Output the required metabox
 							$this->required_metabox();
 
-							// Output the field visibility metaboxes
+							// Output the field visibility metabox
 							$this->visibility_metabox();
 
+							// Output the signup metabox
+							$this->signup_metabox();
+
 							/**
 							 * Fires after XProfile Field sidebar metabox.
 							 *
@@ -902,6 +918,29 @@
 	}
 
 	/**
+	 * Output the metabox for enabling this field to appear on user registration
+	 *
+	 * @since BuddyPress (2.3.0)
+	 */
+	private function signup_metabox() {
+	?>
+
+		<div class="postbox">
+			<h3><label for="signup-field"><?php _e( 'Sign Ups', 'buddypress' ); ?></label></h3>
+			<div class="inside">
+				<ul>
+					<li>
+						<input type="checkbox" id="signup-position" name="signup-position" value="1" <?php checked( $this->signup_position, ! null ); ?> />
+						<label for="signup-position"><?php esc_html_e( 'Display on Registration', 'buddypress' ); ?></label>
+					</li>
+				</ul>
+			</div>
+		</div>
+
+	<?php
+	}
+
+	/**
 	 * Output the metabox for setting what type of field this is
 	 *
 	 * @since BuddyPress (2.3.0)
