Assessments for SEO and Readability
Every SEO and readability assessment from the Yoast SEO engine, plus the checks Kirby SEO Audit adds.
Overview
Kirby SEO Audit runs three groups of assessments over your content:
- SEO assessments: Powered by the Yoast SEO engine, focusing on the keyphrase, meta data, links, and technical SEO factors
- Readability assessments: Powered by the Yoast SEO engine, analyzing content structure, sentence length, and overall readability
- Custom SEO assessments: Provided by Kirby SEO Audit to expand on Yoast SEO
Complete Assessment List
Yoast Assessments
SEO Assessments
| Assessment | Key | What It Checks | Keyphrase |
|---|---|---|---|
| Introduction Keyword | introductionKeyword | Keyphrase appears in the first paragraph | Yes |
| Keyphrase Length | keyphraseLength | Keyphrase is not too short or long | Yes |
| Keyword Density | keyphraseDensity | Keyphrase frequency is optimal (not too low/high) | Yes |
| Meta Description Keyword | metaDescriptionKeyword | Keyphrase is present in meta description | Yes |
| Meta Description Length | metaDescriptionLength | Meta description is 120–156 characters | |
| Subheadings Keyword | subheadingsKeyword | Keyphrase appears in H2–H6 headings | Yes |
| Text Competing Links | textCompetingLinks | No links compete with target keyphrase | |
| Image Keyphrase | imageKeyphrase | Images contain keyphrase in alt/title attributes | |
| Text Images | images | Content includes images | |
| Text Length | textLength | Content meets minimum word count | |
| Outbound Links | externalLinks | External links are present | |
| Title Keyword | keyphraseInSEOTitle | Keyphrase appears in page title | Yes |
| Internal Links | internalLinks | Internal links are present | |
| Page Title Width | titleWidth | Title fits in search results (~60 chars) | |
| URL Keyword | slugKeyword | Keyphrase is in URL slug | Yes |
| Function Words | functionWordsInKeyphrase | Keyphrase contains content words (not just "the", "a") | Yes |
| Keyphrase Distribution | keyphraseDistribution | Keyphrase is evenly distributed throughout text | Yes |
Assessments marked in the Keyphrase column need a keyphrase from keyphraseField or keyphrase.
Readability Assessments
| Assessment | Key | What It Checks |
|---|---|---|
| Subheading Distribution | subheadingsTooLong | No text blocks exceed 300 words without a subheading |
| Paragraph Length | textParagraphTooLong | Paragraphs do not exceed 150 words |
| Sentence Length | textSentenceLength | At most 25% of sentences exceed 20 words |
| Transition Words | textTransitionWords | Content uses connective phrases |
| Passive Voice | passiveVoice | Passive voice is used sparingly |
| Text Presence | textPresence | Page contains text content |
| Sentence Beginnings | sentenceBeginnings | Sentences do not start the same way repeatedly |
| Word Complexity | wordComplexity | Vocabulary is not overly complex |
Kirby SEO Audit Custom Assessments
| Assessment | Key | What It Checks |
|---|---|---|
| Single H1 | singleH1 | Exactly one H1 heading exists |
| Heading Structure | headingStructureOrder | H1–H6 headings follow sequential order (no skips like H1→H3) |
| Image Alt Attributes | altAttribute | All images have alt text |
Custom Assessment Selection
By default, all assessments are enabled. To limit the report to some of them, list their keys from the tables above in the assessments property.
Language-Specific Features
Some assessments are only available in certain languages. The plugin uses the lang attribute of the rendered page's HTML for analysis, while the translations of the SEO results are based on the language selected in the Kirby Panel.
Make sure that the language code in your
languages/xx.php file matches the ISO 639-1 language code (e.g., use de for German, not ger).| Assessment | Supported Languages |
|---|---|
wordComplexity | de, en, es, fr |
keyphraseDistribution | ar, cs, de, el, en, es, fr, he, hu, id, it, ja, nb, nl, pl, pt, ru, sk, sv, tr |
metaDescriptionLength | ar, cs, de, el, en, es, fa, fr, he, hu, id, it, ja, nb, nl, pl, pt, ru, sk, sv, tr |
textParagraphTooLong | ar, cs, de, el, en, es, fa, fr, he, hu, id, it, ja, nb, nl, pl, pt, ru, sk, sv, tr |
textSentenceLength | ar, cs, de, el, en, es, fa, fr, he, hu, id, it, ja, nb, nl, pl, pt, ru, sk, sv, tr |
passiveVoice | ar, cs, de, el, en, es, fa, fr, he, hu, id, it, nb, nl, pl, pt, ru, sk, sv, tr |
textTransitionWords | ar, ca, cs, de, el, en, es, fa, fr, he, hu, id, it, ja, nb, nl, pl, pt, ru, sk, sv, tr |
functionWordsInKeyphrase | ar, cs, de, el, en, es, fa, fr, he, hu, id, it, ja, nb, nl, pl, pt, ru, sk, sv, tr |
Norwegian pages marked no, nn, or nb are all analyzed as Norwegian; the table lists it as nb.
With no
assessments list configured, an assessment that does not support your content's language is skipped silently. List it explicitly and the analysis aborts with an error naming the languages that assessment supports.