> ## Documentation Index
> Fetch the complete documentation index at: https://docs.37audits.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Meta Description Length Auditor

> Validates that the HTML meta description is present and within the recommended 150–160 character range

<Info>
  **SEO Auditor** — validates that the HTML meta description is present and within the recommended 150–160 character range.
</Info>

<CardGroup cols={2}>
  <Card title="SEO" icon="search">
    Descriptions that search engines can display in full and that summarize the page.
  </Card>

  <Card title="Click-through" icon="mouse-pointer-click">
    Search snippets use a unique, readable summary instead of a truncated or invented excerpt.
  </Card>
</CardGroup>

The HTML `meta name=description` is the snippet search engines often show under the title in results. This auditor fetches the page, extracts description tags with jsoup, and checks presence, emptiness, length bands, and duplicate tags.

## How it works

The auditor loads the audited URL and evaluates `meta[name=description]` elements:

1. **Fetch** — requests the HTML with jsoup (including HTTP Basic Auth when provided).
2. **Extract** — reads `document.select("meta[name=description]")`, uses the first tag's `content` attribute after trim, and counts how many description tags exist.
3. **Rules** — applies missing, empty, far-too-short (1–119), far-too-long (over 180), and duplicate-tag checks (FAIL), then slightly short (120–149) and slightly long (161–180) checks (WARNING). Length rules are skipped when the description is missing or empty.
4. **Aggregate** — any `FAIL` rule wins over `WARNING`; if every rule passes, the audit is `SUCCESS`.

Fetch errors (unreachable host, invalid URL) produce an `ERROR` response rather than a description finding.

## What it audits

Every row maps to one `checkRule*` method and one `CheckCode`. CheckCode suffixes use status ranges: `200` success, `300–399` warning, `400–499` fail.

| CheckCode                                                                             | Status    | When it fires                                                                                                                                                           | Recommendation                                                                                                   |
| ------------------------------------------------------------------------------------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| <a id="37A-MetaDescriptionLengthAuditor-400" />`37A-MetaDescriptionLengthAuditor-400` | `FAIL`    | The document has no `meta[name=description]` element.                                                                                                                   | Add a unique meta description of 150–160 characters on `{url}`.                                                  |
| <a id="37A-MetaDescriptionLengthAuditor-401" />`37A-MetaDescriptionLengthAuditor-401` | `FAIL`    | A meta description tag is present but its content is empty after trim.                                                                                                  | Put a unique summary of 150–160 characters in the meta description on `{url}`.                                   |
| <a id="37A-MetaDescriptionLengthAuditor-402" />`37A-MetaDescriptionLengthAuditor-402` | `FAIL`    | The meta description is 1–119 characters.                                                                                                                               | Expand the description beyond `"{description}"` so it summarizes the page in 150–160 characters.                 |
| <a id="37A-MetaDescriptionLengthAuditor-403" />`37A-MetaDescriptionLengthAuditor-403` | `FAIL`    | The meta description is longer than 180 characters.                                                                                                                     | Shorten `"{description}"` from `{length}` characters to 150–160 so search results can display it.                |
| <a id="37A-MetaDescriptionLengthAuditor-404" />`37A-MetaDescriptionLengthAuditor-404` | `FAIL`    | The document has more than one `meta[name=description]` element; crawlers typically use only the first.                                                                 | Keep a single meta description on `{url}`; remove the extra `{descriptionCount - 1}` meta description tag(s).    |
| <a id="37A-MetaDescriptionLengthAuditor-300" />`37A-MetaDescriptionLengthAuditor-300` | `WARNING` | The meta description is 120–149 characters.                                                                                                                             | Expand `"{description}"` toward 150–160 characters so snippets are less likely to be padded.                     |
| <a id="37A-MetaDescriptionLengthAuditor-301" />`37A-MetaDescriptionLengthAuditor-301` | `WARNING` | The meta description is 161–180 characters.                                                                                                                             | Shorten `"{description}"` from `{length}` characters toward 150–160 so snippets are less likely to be truncated. |
| <a id="37A-MetaDescriptionLengthAuditor-200" />`37A-MetaDescriptionLengthAuditor-200` | `SUCCESS` | Every rule above passed; one `SUCCESS` check is added with the message `Meta description "{description}" is {length} characters, within the recommended 150–160 range.` | —                                                                                                                |

## Output documentation

| Status      | Description                                                                         | Test logic                                                                                                                                                 |
| ----------- | ----------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **SUCCESS** | The page has a single meta description of 150–160 characters                        | One `meta[name=description]` is present, not blank after trim, and `length` is between 150 and 160 inclusive.                                              |
| **WARNING** | The description is usable but may be padded or truncated in search snippets         | Length is 120–149 (`300`) or 161–180 (`301`).                                                                                                              |
| **FAIL**    | The description is missing, empty, duplicated, or far outside the recommended range | No meta description (`400`); empty content (`401`); length 1–119 (`402`); length greater than 180 (`403`); more than one `meta[name=description]` (`404`). |
| **ERROR**   | The auditor could not fetch or parse the page                                       | Network, HTTP, or parse failure in `process`.                                                                                                              |

## Risks and considerations

### Search visibility

* Missing or empty meta descriptions force search engines to invent a snippet, which often mismatches the page and lowers click-through.
* Descriptions over 160 characters are typically truncated in SERPs; over 180 characters are almost never shown in full.
* Very short descriptions (under 120 characters) waste snippet space and give users little reason to click.

### Uniqueness and intent

* Duplicate `meta name=description` tags leave crawlers guessing which value to use. Keep a single tag whose content matches this page.
* Reusing the same generic description across many URLs collapses rankings and analytics into one unhelpful snippet.

### Whitespace and encoding

* Leading and trailing whitespace is trimmed before length is measured; a description of only spaces is treated as empty.
* Character count is the Java string length of the trimmed `content` attribute, not a pixel-width estimate used by some SERP renderers.
* Only the first `meta[name=description]` is measured; extra description tags are flagged separately and otherwise ignored.
