Most SEO advice boils down to a checklist: put the keyword in the title, don’t write 300-word paragraphs, add some alt text. The trouble is remembering to run through the checklist every time. Emet’s SEO panel runs it for you, continuously, against the entry you have open.
It lives in the SEO tab of the right-hand panel in the entry editor. It’s on by default; set seo.enabled: false in admin/cms.yaml to hide the tab.
What it does#
The panel scores your entry from 0 to 100 against 26 rules, grouped into five categories: Keyword, Title, Content, Links and Readability. Each rule has a weight, and the score is the weighted share of rules you pass. Categories with a failing rule open automatically so you can see what’s wrong; everything else stays collapsed. A rule that’s only partly satisfied (a 600-word post when the rule wants 1000, say) shows an amber tick and a partial score like 3/4.
The full list of rules, thresholds and weights is on the Rules page.
Everything runs in your browser, on the Markdown source. There’s no server and nothing is sent anywhere. The body is re-analysed about a second after you stop typing, so the score keeps up with you without the editor lagging.
The focus keyword#
Nine of the rules are about a focus keyword: is it in the title, the description, the URL, the first 10% of the text, and so on. Type one into the Focus Keyword box at the top of the panel. Without one, those nine rules are skipped entirely rather than failed, so a new entry with no keyword starts with a fairly flattering score.
The keyword is kept with the open entry in your browser. It’s never written to the file, so colleagues won’t see it and it won’t survive you clearing your browser data. If you want it to stick, put it in the description.
Keyword matching is case-insensitive and ignores accents, but it’s a plain substring match, so “cat” is found in “category”. Pick keywords accordingly.
Where the inputs come from#
The panel reads the entry’s frontmatter directly, with no mapping configuration:
| Input | Frontmatter field |
|---|---|
| Title | title |
| Meta description | description (only this key; meta_description and friends are ignored) |
| Permalink | The entry’s slug and section, via the same permalink resolution the rest of Emet uses, plus url if set |
| Site URL | site.url in admin/site.yaml, used to tell internal links from external ones |
| Thumbnail | image, then thumbnail, then featured_image |
| Thumbnail alt text | image_alt, then thumbnail_alt, then featured_image_alt |
The thumbnail counts as an image for the asset rules and its alt text is checked for the keyword, which is how a post with no inline images can still pass them.
Homepages and section indexes#
Some rules make no sense on a list page. Nobody wants a keyword density check on blog/_index.md, and the homepage doesn’t need a permalink. So Emet classifies each entry before scoring it:
- A
_index.mdwhose path has at most two segments (content/_index.md) is the homepage. Permalink, external link, title sentiment, number and power-word rules are skipped, along with content length and all four readability rules. - Any other
_index.mdis a section index. Keyword-in-content, density, paragraph, link, content length and readability rules are skipped. - Everything else is ordinary content and gets the full set.
Note that the classification is purely on path depth, measured after stripping base_path. On a site that lives in a subdirectory via base_path, the homepage is at docs/content/_index.md; the docs prefix is removed first, so it is still classified as the homepage.
Previews#
Below the rules are two collapsible previews. SERP Preview shows a Google-style result with your title, URL and description, and counters for title (60) and description (160) characters that go amber when short and red when long. Social Preview shows the link card for LinkedIn, X and Facebook; see Social previews.
If you’ve set up Google Search Console, a Search Console section at the bottom shows real clicks, impressions and queries for the page.
Where next?#
- Rules for every rule, its threshold and how to turn it off or reweight it.
- Social previews for the link cards.
- The AI chat can run the analysis and suggest fixes, if you have a provider configured.