What robots meta tag does WordPress add by default?

On a normal public site, WordPress prints one robots meta tag on every page: max-image-preview:large. It adds noindex by itself only to internal search results, embed views, comment reply links and the login screen. There is no per-post noindex control in core; that needs a plugin or code.

The tag you will find in your source

View the source of any post on a plugin-free WordPress site and the head contains:

html
<meta name='robots' content='max-image-preview:large' />

There is no index, follow, because those are the defaults search engines assume when nothing is said. The one directive present tells Google it may show a large image preview from the page, which matters for surfaces like Discover. WordPress adds it only while the site is public. The term is explained in our glossary under max-image-preview.

The tag is built by a single core function that collects directives from a filter, so themes and plugins add to or change the same tag instead of printing their own. When you see two robots tags on a page, something is bypassing that system.

Where core adds noindex by itself

PageRobots valueWhy
Internal search results (/?s=term)noindex, followEndless, low-value combinations
Embed view of a post (/post-name/embed/)noindex, followA stripped copy meant for iframes on other sites
A post opened through a comment's Reply link (?replytocom=123)noindex, followSame page, different query string
A commenter's preview of their unapproved commentnoindex, followPrivate, temporary view
Login, registration and lost password screensnoindex, noarchiveNothing to rank, and should not be cached by engines
Every page, when Discourage search engines is tickednoindex, nofollowThe site-wide off switch under Settings, Reading

Notice follow in the first four rows. Core keeps links followable on noindexed pages of a public site, and switches to nofollow only when the whole site is discouraged.

Requests that are not pages get a header instead of a tag. The REST API and admin-ajax.php respond with X-Robots-Tag: noindex, so JSON responses stay out of the index without any meta tag.

What core leaves indexable

Everything else. With no SEO plugin, these are all indexable and carry only the image preview directive:

  • category, tag, author and date archives, including empty-looking ones;
  • paginated archives (/page/2/) and paginated comments;
  • attachment pages, on sites where they are still enabled;
  • any custom post type or taxonomy registered as public;
  • the privacy policy and other utility pages.

Whether those should be indexed is a judgment per site, and core does not make it for you. Category archives are often worth indexing; date archives and thin tag pages usually are not.

Controlling it properly

For a single page, WordPress alone gives you no checkbox. Your options are a plugin or a small filter on wp_robots. In Hydrogen SEO, each post and page has Noindex, Nofollow and snippet controls in the editor, and site-wide rules per content type live on the Robots screen; the details are in robots meta settings and advanced robots meta. The plugin also noindexes the 404 page and lets you set author and date archives to index, noindex or disabled.

Two rules keep you out of trouble:

  • Do not block a noindexed page in robots.txt. A crawler that cannot fetch the page never sees the tag, so the URL can stay in results. Let it be crawled until it has dropped out.
  • Check the rendered tag, not the setting. View the source or run curl -s URL | grep -i "name=.robots" and confirm there is exactly one robots meta tag with the value you expect.

To find out why a specific URL is excluded, our guide to Excluded by noindex tag walks through each possible source.

Common questions

Why does my page say max-image-preview:large when I never set it?

WordPress adds it to every page of a public site by default. It permits large image previews in Google and does not restrict indexing in any way.

Does WordPress add "index, follow" anywhere?

No. Core does not print those values because they are what search engines assume by default. Some plugins add them explicitly; the effect is the same.

Can I noindex one post without a plugin?

Only with code: a filter on wp_robots that adds noindex when that post is being viewed. Core has no setting for it in the editor.