In this article

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.


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";


apply_filters( ‘wp_robots’, array $robots )

Filters the directives to be included in the ‘robots’ meta tag.


5.7.1No longer prevents specific directives to occur together.

User Contributed Notes

You must log in before being able to contribute a note or feedback.