Open source · SEO & Search

Meta Snippet Linter

Lint title and description length, duplication and route coverage.

v0.1.0 · Node.js 22+ · MIT

Browse the public repository · View releases

stdout carries the JSON report and nothing else, so it pipes straight into a parser. The summary above is on stderr, and --json silences it.

This walkthrough uses the tool's public README and checked-in example files. Run the command from a repository checkout with Node.js 22+; inspect the source before using it on your own files.

Run the checked-in example

node bin/meta-snippet-linter.mjs --config examples/clean/meta.config.json
node bin/meta-snippet-linter.mjs --config site/meta.config.json

Read the result

incomplete outranks fail, which outranks pass. A run that could not read a page never exits 0, and a run that measured nothing reports nothing-checked rather than coming back clean.

Where this check stops

The length bounds are house style, not search-engine guarantees. No engine publishes a character limit. Snippets are truncated by rendered pixel width in a layout nobody controls, on a device nobody controls, and an engine may rewrite a title or description entirely from page content. A title inside your bounds is a title that matches the policy you wrote down — nothing more. This tool carries that sentence in its own report so it cannot be quoted as a ranking promise.

Before adapting the command to your own workflow, review the accepted inputs, exit codes and safety boundaries in the README.

Compiled with AI assistance from checked-in public documentation and example scripts. Run the example and review the repository's current documentation before relying on its result.