Title: wp_get_speculation_rules_default_configuration
Published: August 20, 2026

---

# wp_get_speculation_rules_default_configuration(): array<string,

## In this article

 * [Description](https://developer.wordpress.org/reference/functions/wp_get_speculation_rules_default_configuration/?output_format=md#description)
 * [Return](https://developer.wordpress.org/reference/functions/wp_get_speculation_rules_default_configuration/?output_format=md#return)
 * [Source](https://developer.wordpress.org/reference/functions/wp_get_speculation_rules_default_configuration/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/functions/wp_get_speculation_rules_default_configuration/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/functions/wp_get_speculation_rules_default_configuration/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/functions/wp_get_speculation_rules_default_configuration/?output_format=md#wp--skip-link--target)

This function’s access is marked private. This means it is not intended for use 
by plugin or theme developers, only by core. It is listed here for completeness.

Returns the default speculation rules configuration that the value ‘auto’ resolves
to.

## 󠀁[Description](https://developer.wordpress.org/reference/functions/wp_get_speculation_rules_default_configuration/?output_format=md#description)󠁿

WordPress Core defaults to a mode of ‘prefetch’ and an eagerness of ‘conservative’.
Hosting providers can override either default by way of the `WP_SPECULATIVE_LOADING_DEFAULT_MODE`
and `WP_SPECULATIVE_LOADING_DEFAULT_EAGERNESS` constants or environment variables.
This only changes what the ‘auto’ value resolves to, so a plugin which supplies 
an explicit mode or eagerness via the [‘wp_speculation_rules_configuration’](https://developer.wordpress.org/reference/hooks/wp_speculation_rules_configuration/)
filter continues to take precedence.

Note that an eagerness of ‘immediate’ is not permitted as a default, since WordPress
does not allow it for the document-level rules that it generates.

## 󠀁[Return](https://developer.wordpress.org/reference/functions/wp_get_speculation_rules_default_configuration/?output_format=md#return)󠁿

 array<string, string> Associative array with `'mode'` and `'eagerness'` keys.

## 󠀁[Source](https://developer.wordpress.org/reference/functions/wp_get_speculation_rules_default_configuration/?output_format=md#source)󠁿

    ```php
    function wp_get_speculation_rules_default_configuration(): array {
    	$default_mode = 'prefetch';
    	$mode         = wp_get_speculative_loading_override( 'WP_SPECULATIVE_LOADING_DEFAULT_MODE' );
    	if ( WP_Speculation_Rules::is_valid_mode( $mode ) ) {
    		$default_mode = $mode;
    	}

    	$default_eagerness = 'conservative';
    	$eagerness         = wp_get_speculative_loading_override( 'WP_SPECULATIVE_LOADING_DEFAULT_EAGERNESS' );
    	if (
    		WP_Speculation_Rules::is_valid_eagerness( $eagerness ) &&
    		// 'immediate' is a valid eagerness, but for safety WordPress does not allow it for document-level rules.
    		'immediate' !== $eagerness
    	) {
    		$default_eagerness = $eagerness;
    	}

    	return array(
    		'mode'      => $default_mode,
    		'eagerness' => $default_eagerness,
    	);
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/speculative-loading.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.1/src/wp-includes/speculative-loading.php#L124)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.1/src/wp-includes/speculative-loading.php#L124-L145)

## 󠀁[Related](https://developer.wordpress.org/reference/functions/wp_get_speculation_rules_default_configuration/?output_format=md#related)󠁿

| Uses | Description | 
| [wp_get_speculative_loading_override()](https://developer.wordpress.org/reference/functions/wp_get_speculative_loading_override/)`wp-includes/speculative-loading.php` |

Returns the value of a speculative loading override, as supplied by a constant or an environment variable.

  | 
| [WP_Speculation_Rules::is_valid_mode()](https://developer.wordpress.org/reference/classes/wp_speculation_rules/is_valid_mode/)`wp-includes/class-wp-speculation-rules.php` |

Checks whether the given speculation rules mode is valid.

  | 
| [WP_Speculation_Rules::is_valid_eagerness()](https://developer.wordpress.org/reference/classes/wp_speculation_rules/is_valid_eagerness/)`wp-includes/class-wp-speculation-rules.php` |

Checks whether the given speculation rules eagerness is valid.

  |

| Used by | Description | 
| [wp_get_speculation_rules_configuration()](https://developer.wordpress.org/reference/functions/wp_get_speculation_rules_configuration/)`wp-includes/speculative-loading.php` |

Returns the speculation rules configuration.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/functions/wp_get_speculation_rules_default_configuration/?output_format=md#changelog)󠁿

| Version | Description | 
| [7.1.0](https://developer.wordpress.org/reference/since/7.1.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Ffunctions%2Fwp_get_speculation_rules_default_configuration%2F)
before being able to contribute a note or feedback.