v1.0.17 — Analyzer correctness: 20 verified scoring bugs fixed (#148–#167)
·
6 commits
to development
since this release
Fixed
@power-seo/core—stripHtmlno longer truncates all remaining text when a<script>/<style>tag has no closing tag (only the opening tag is removed), fixing silent content loss for checks that re-strip entity-decoded prose mentioning<script>(#148). Inline tags (<b>,<em>,<a>,<code>, …) no longer insert a space when stripped, so keyphrases spanning inline formatting match again and word counts are accurate; block tags still separate words (#157).@power-seo/core—getParagraphsno longer deletes content between the first and last<br>on a line (only two consecutive<br>s act as a separator), splits on all block-level closers (</ul>,</ol>,</table>,</figure>,</blockquote>, headings) instead of only</p>, and excludes<pre>blocks from paragraph analysis (#150, #160).@power-seo/core— Keyphrases with non-word edges ("C++", "C#", ".NET") now match: keyword occurrence/density regexes use lookaround boundaries instead of\b(#158).extractTagContents('p')no longer matches<pre>/<picture>as paragraph openers (#162). Sentence splitting no longer breaks after common abbreviations (e.g., i.e., etc., vs., Mr., Dr.) (#165).ensureTrailingSlashno longer produces a double slash on bare domains (#167).@power-seo/readability— Passive-voice detection requires an actual past participle (curated irregular list + suffix rule) instead of any word ending in t/en/ed, and the percentage is computed per sentence and clamped to 100 (#156). Transition words are matched with word boundaries, so "distillery"/"tribute" no longer count (#163). ARI and Coleman-Liau count letters and digits only (spaces/punctuation no longer inflate grades by ~5 levels), and Flesch/FKG are computed from raw ratios instead of pre-rounded averages (#165).<pre>/<code>content is excluded from all readability statistics (#151).@power-seo/content-analysis— Bare keyphrases are no longer classified navigational by insertion order: intent defaults to informational unless real navigational modifiers are present, which also removes fabricated "competing intents" warnings for short keyphrases (#149, #167). Thelocalsub-type no longer triggers on any keyphrase containing "in" (#163).@power-seo/content-analysis— FAQ/PAA question detection requires a real question (ends with?or starts with an interrogative); answer paragraphs are searched only within the question's own section, so declarative headings with an unrelated trailing paragraph no longer score full AEO Q&A points (#155). TL;DR detection requires the bullet list to follow the summary heading within its section, and the heading must be a real summary title (#163).@power-seo/content-analysis— Stateful/gregexes used with.test()were made non-global in YMYL disclaimer, affiliate-link, and References-section detection, eliminating flip-flopping results between identical calls and within-call affiliate undercounting (#154).@power-seo/content-analysis— YMYL detection requires two distinct category terms, matchescontentCategoryby exact token (a "Newsletter" category no longer triggers news, "syntax" no longer triggers tax), and phrase-ifies over-broad terms like "recall"; shared detection lives inshared-ymyl.ts(#159).@power-seo/content-analysis— "ad hoc" no longer counts as an FTC disclosure and#ad/#sponsoredhashtags are matched correctly (#163); "paragraph"/"photography" no longer count as charts in original-research detection (#163); CTA-intent alignment scans link and button text instead of all prose, so "Open Graph" in body copy no longer registers as a navigational CTA (#163); sentence-initial "According to Jane Doe" is detected,<cite>/<figcaption>containing nested markup are counted, and the expert-consensus source type is no longer dead code (#164).@power-seo/content-analysis— Link parsing no longer drops hrefs containing#fragments (external/internal/nofollow/competing link checks now see them) (#161). Table-of-contents detection requires ≥2 anchor links inside one list instead of matching any list plus any later anchor in the document (#166).@power-seo/content-analysis—intent-related-coveragereturnsnafor unrecognized keyphrase shapes instead of a dead-end 0/5 and adds checklist/tips/examples/tutorial mappings;secondary-keyphrasesreturnsnawhen no seeds are configured;intent-depth-matchenforces documented upper bounds for informational/commercial content;single-h1no longer penalizes body content that starts at H2 when the page title serves as the H1; author-schema descriptions report a consistent field count; the E-E-A-T overall score is graded from pillar points instead of flat tiers, removing multi-point cliffs; future publish/modified dates no longer earn freshness credit (#167).