Allow or block Google-Extended on Next.js: app/robots.js and a proxy rule

Return a rule with userAgent “Google-Extended” and disallow “/” from app/robots.js. Deploy for it to take effect.

This response

You are ClaudeBot (Anthropic). Citable recognised you as an AI agent, so this is https://getcitable.in/crawlers/google-extended/nextjs with the UI removed — the content only. A browser asking for the same address gets the full designed page.

Google-Extended, and where Next.js keeps the rule

Google-Extended is not a crawler. It sends no requests of its own: Google reads pages with its existing crawlers, and Google-Extended is the name robots.txt uses to say whether those pages may be used to train Gemini models.

In the App Router, robots.txt is either a static file or the output of app/robots.js, a function that returns the rules.

Step by step

What to paste

A group that names a crawler replaces the * group for that crawler; it does not add to it. Paths the * group closes are open to a crawler with its own group unless they are repeated there.

app/robots.js, refusing Google-Extended:

export default function robots() {
  return {
    rules: [
      { userAgent: "Google-Extended", disallow: "/" },
      { userAgent: "*", allow: "/" },
    ],
  };
}

The same as a static robots.txt:

User-agent: Google-Extended
Disallow: /

What trips people up

app/robots.js is run at build time and its output is cached. Editing it changes nothing on the live site until the next deploy. If the site is on Vercel, the Firewall sits in front of all of it.

Asked, or actually refused?

No request carries the name Google-Extended, so a rule on the user agent never matches it. robots.txt is the only place this name has any effect.

Check it yourself

Read the file a crawler is given and look for the group that names Google-Extended. There is no request to test: Google-Extended never sends one.

The request:

curl -s https://your-site.example/robots.txt

Questions

How do I block Google-Extended on Next.js?

Return a rule with userAgent “Google-Extended” and disallow “/” from app/robots.js. Deploy for it to take effect.

How do I allow Google-Extended on Next.js?

A crawler that robots.txt does not name follows the * group, so Google-Extended needs no rule to be allowed. To allow it by name, add the Allow block.

Can Next.js actually stop Google-Extended, or only ask it?

No request carries the name Google-Extended, so a rule on the user agent never matches it. robots.txt is the only place this name has any effect.

Does a rule for Google-Extended affect Googlebot or my Google rankings?

Refusing Google-Extended tells Google not to use your pages to train Gemini models. It does not change whether Googlebot reads them, and Google says it is not used as a ranking signal and does not affect inclusion in Google Search.

Checked against Next.js's own documentation on 1 October 2026

Related

About Citable

Citable strips the UI from a website for AI agents and serves them only the content.

When an AI agent — ChatGPT, Claude, Perplexity or any of the 81 that Citable recognises — opens a page, Citable removes the theme, scripts, navigation and layout and serves only the content: the same facts, at the same URL, on the site's own domain. People and Google still get the full designed page.

How it works: https://getcitable.in/how-it-works · Summary for AI agents: https://getcitable.in/llms.txt


Source: https://getcitable.in/crawlers/google-extended/nextjs · Citable · Run the free audit · llms.txt · getcitable@gmail.com