wp_robots()WP 5.7.0

Displays the robots meta tag as necessary.

Gathers robots directives to include for the current context, using the wp_robots filter. The directives are then sanitized, and the robots meta tag is output if there is at least one relevant directive.

Hooks from the function


null. Nothing (null).





#1 Example of adding a custom directive to the robots meta tag

This example shows how to add the directive follow to existing robots meta tag directives.

To add your own directives, you need to use wp_robots hook. It takes an array where in the key you need to specify the name of the directive, and in the value its value.

add_filter( 'wp_robots', 'my_wp_robots_add_follow' );

function my_wp_robots_add_follow( $robots ) {
	$robots['follow'] = true;

	return $robots;


Since 5.7.0 Introduced.
Since 5.7.1 No longer prevents specific directives to occur together.

wp_robots() code WP 6.5.2

function wp_robots() {
	 * Filters the directives to be included in the 'robots' meta tag.
	 * The meta tag will only be included as necessary.
	 * @since 5.7.0
	 * @param array $robots Associative array of directives. Every key must be the name of the directive, and the
	 *                      corresponding value must either be a string to provide as value for the directive or a
	 *                      boolean `true` if it is a boolean directive, i.e. without a value.
	$robots = apply_filters( 'wp_robots', array() );

	$robots_strings = array();
	foreach ( $robots as $directive => $value ) {
		if ( is_string( $value ) ) {
			// If a string value, include it as value for the directive.
			$robots_strings[] = "{$directive}:{$value}";
		} elseif ( $value ) {
			// Otherwise, include the directive if it is truthy.
			$robots_strings[] = $directive;

	if ( empty( $robots_strings ) ) {

	echo "<meta name='robots' content='" . esc_attr( implode( ', ', $robots_strings ) ) . "' />\n";