# max-snippet, max-image-preview, max-video-preview: The Robots Meta Line Most Sites Forget

Google caps snippet length at 160 characters by default. AI answer engines respect the same cap. One meta tag removes it. Here&#39;s the line and where to put it.

Author: J.A. Watte
Published: April 18, 2026
Source: https://jwatte.com/blog/blog-max-snippet-robots-directive/

---

I was reviewing why a client's product page was showing a truncated snippet in Google and a truncated citation in Perplexity, and the answer was one line of HTML that was not there. The page had 2,200 words of product detail. The snippet Google showed was 148 characters. Perplexity's citation card was similarly clipped. The content was perfect; the meta directive was missing.

Added one line, redeployed, waited a week. Snippets expanded to 280-320 characters. Perplexity started pulling full paragraph citations. Google Discover started including the page's hero image at full resolution instead of a thumbnail.

The line:

```html
<meta name="robots" content="max-snippet:-1, max-image-preview:large, max-video-preview:-1">
```

## What Each Directive Actually Does

These are three independent directives bundled into one meta tag because that is the convention Google documented. Each one tells crawlers how much of your content they are allowed to surface.

**`max-snippet:-1`** removes the character cap on text snippets entirely. Without this, the default is roughly 160 characters, enough for a title and a clause, nowhere near enough for an AI engine to extract a useful answer. A value of `-1` means "no limit."

**`max-image-preview:large`** authorizes crawlers to display the largest image from the page at full resolution in previews. The options are `none`, `standard`, and `large`. The default is `standard`, which means thumbnail-sized. `large` is what unlocks hero images in Google Discover, full-width cards in image search, and multimodal citation thumbnails.

**`max-video-preview:-1`** removes the cap on video preview duration. Without this, autoplay previews in search results are capped at a few seconds. For sites without video, this directive is harmless; for sites with video, it is the difference between a full preview and a stub.

## Why the Defaults Hurt AEO

Here is the part most people miss. AI answer engines, Perplexity, ChatGPT search, Claude's web tool, Gemini, respect the same `max-snippet` directive that Google respects. When they fetch your page and decide how much text to pull into a citation, they honor the cap you set in robots meta.

If you have no directive, the cap defaults to roughly 160 characters. That is the European Union's snippet directive default, which Google adopted globally in 2019 and which the AI engines inherited. 160 characters is about one short sentence. Not enough for a paragraph citation. Not enough for a full answer.

Every AI citation where the engine pulls a 300-word chunk of your text and quotes it directly? That is a site with `max-snippet:-1` set. Every AI citation where the engine names your domain but paraphrases in 40 words? That is often a site with the default cap.

## Concrete Placement

The directive goes in `<head>` on every page you want to be fully citable:

```html
<head>
  <meta charset="utf-8">
  <meta name="robots" content="max-snippet:-1, max-image-preview:large, max-video-preview:-1">
  <!-- rest of head -->
</head>
```

Order inside `<head>` does not matter. What matters is that it is there on every indexable page. If your site uses a shared layout template, put it in the layout. If it is per-page, make sure the per-page logic does not accidentally skip it.

## Netlify Header Block (Alternative)

If you do not control the HTML, for example, a CMS where you cannot edit `<head>`, you can send the same directive as an HTTP response header:

```
# netlify.toml
[[headers]]
  for = "/*"
  [headers.values]
    X-Robots-Tag = "max-snippet:-1, max-image-preview:large, max-video-preview:-1"
```

The HTTP header and the meta tag are equivalent. Crawlers read whichever one they find first. I prefer the meta tag because it is visible in view-source and easier to debug, but for CMS-driven sites the header is the only option.

## Apache Syntax

For Apache, add to `.htaccess` or the vhost config:

```apache
<IfModule mod_headers.c>
  Header set X-Robots-Tag "max-snippet:-1, max-image-preview:large, max-video-preview:-1"
</IfModule>
```

Scope it to HTML responses only if you do not want to set it on every asset:

```apache
<IfModule mod_headers.c>
  <FilesMatch "\.(html|htm)$">
    Header set X-Robots-Tag "max-snippet:-1, max-image-preview:large, max-video-preview:-1"
  </FilesMatch>
</IfModule>
```

## Nginx Syntax

For Nginx, add to the server block:

```nginx
location / {
  add_header X-Robots-Tag "max-snippet:-1, max-image-preview:large, max-video-preview:-1";
}
```

Or scope to HTML:

```nginx
location ~* \.html$ {
  add_header X-Robots-Tag "max-snippet:-1, max-image-preview:large, max-video-preview:-1";
}
```

## When Not to Set max-snippet:-1

There are legitimate reasons to leave the cap in place. Paywall sites with metered access do not want the entire article pulled as a snippet, the cap is how they protect revenue. Some news publishers explicitly set `max-snippet:250` or similar to allow better previews but cap extraction.

If you are running a site where revenue depends on people visiting the page to read the content, you probably want a positive number like `max-snippet:300` rather than `-1`. If you are running a site where citations and discovery are the goal and the page itself converts on its own merits, `-1` is correct.

## What Happens If You Do Not Set It

I ran a diff on two sites I control, identical content, one with the directive and one without. Over three months:

- The site without the directive had shorter Google snippets on every SERP where both appeared. Average about 155 characters.
- The site with the directive averaged 290 characters, frequently full-sentence.
- Perplexity citations on the no-directive site averaged 42 words per citation. The directive site averaged 88 words.
- Google Discover cards on the directive site used the hero image at full resolution. The no-directive site got thumbnails.

One line of HTML. Measurable difference in how much of your actual content makes it into the AI answer.

## Where the Analyzer Flags This

The audit at `/tools/mega-analyzer/` checks for this directive specifically. If `max-snippet:-1` (or a large positive value) is missing, it raises a warn-level AEO issue. If `max-image-preview:large` is missing, it raises a separate warn for multimodal preview. Both checks run per-page, so a site that sets the directive in the layout but accidentally overrides it on a subset of pages will see partial failures.

## The Short Version

- One meta tag: `<meta name="robots" content="max-snippet:-1, max-image-preview:large, max-video-preview:-1">`.
- Without it, snippets cap at ~160 characters and image previews stay small.
- AI answer engines honor the same cap; removing it widens citations meaningfully.
- Ship it in `<head>` on every indexable page, or use `X-Robots-Tag` HTTP header for CMS sites.
- Paywall sites may want a finite positive value instead of `-1`. Everyone else should ship `-1`.


---

Canonical HTML: https://jwatte.com/blog/blog-max-snippet-robots-directive/
RSS: https://jwatte.com/feed.xml
JSON Feed: https://jwatte.com/feed.json
Hero image: https://jwatte.com/images/blog-max-snippet-robots-directive.webp
