Skip to content

Releases: CyberCraftBD/power-seo

Release v1.0.19

Choose a tag to compare

@github-actions github-actions released this 27 Jul 09:42

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[1.0.19] - 2026-07-27

Fixed

  • @power-seo/corecountKeywordOccurrences (used by calculateKeywordDensity and analyzeKeyphraseOccurrences) still used ASCII \b word boundaries, so non-Latin keyphrases (e.g. Bangla) and keyphrases with non-word edges (C++, C#, .NET) counted as zero — producing a false "keyphrase density 0% / keyword never used" report. It now uses lookaround boundaries on letter/number classes (completing #158) (#169).
  • @power-seo/coreanalyzeKeyphraseOccurrences().density no longer multiplies by the keyphrase word count; it now matches the documented/tested calculateKeywordDensity definition (occurrences ÷ total words), so the same keyphrase no longer reports two different densities (#170).
  • @power-seo/content-analysiskeyphrase-introduction defines the introduction as the first ~150 words of plain text instead of only the first <p> element, so intros not wrapped in <p> (e.g. a leading <div>) are no longer reported as missing the keyphrase (#171).
  • @power-seo/content-analysissubheading-distribution no longer reports "no subheadings" when a single <h2> leads the content, and no longer counts a heading's own words toward the following section's length (a 298-word section under a 3-word heading was falsely flagged as exceeding 300 words) (#172).
  • @power-seo/content-analysiskeyphrase-markup counts nested emphasis once: a keyphrase in <strong><em>…</em></strong> was counted per wrapping tag, producing impossible "emphasized 2 of 1" output and false "over-emphasized / keyword stuffing" reports. A single backreferenced scan now consumes inner tags (#173).
  • @power-seo/content-analysiskeyphrase-slug matches each keyphrase word against whole slug tokens instead of substrings, so "seo" no longer counts as present in a slug like season-guide (#174).
  • @power-seo/content-analysissingle-h1 treats the page title as an implicit H1 (like the heading-structure check), so a body that already contains its own <h1> plus the CMS title is correctly flagged as duplicate H1s instead of "single H1, good" (#175).
  • @power-seo/content-analysisdetectIntent with an editor-selected expectedIntent override no longer injects a confidence of 100 on the 0–1 scale or duplicates the same-type intent signal, fixing the "10000%" confidence display and the spurious "informational vs informational competing intents" warning.

[1.0.17] - 2026-07-23

Fixed

  • @power-seo/corestripHtml no 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/coregetParagraphs no 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). ensureTrailingSlash no 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). The local sub-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 /g regexes 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, matches contentCategory by 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 in shared-ymyl.ts (#159).
  • @power-seo/content-analysis — "ad hoc" no longer counts as an FTC disclosure and #ad/#sponsored hashtags 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-analysisintent-related-coverage returns na for unrecognized keyphrase shapes instead of a dead-end 0/5 and adds checklist/tips/examples/tutorial mappings; secondary-keyphrases returns na when no seeds are configured; intent-depth-match enforces documented upper bounds for informational/commercial content; single-h1 no 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).

[1.0.16] - 2026-07-20

Security

  • @power-seo/redirects — Open-redirect guard (#129). Resolved destinations are now validated before use: javascript:, data:, vbscript:, and file: schemes are always rejected; destinations that become off-origin through wildcard/param/regex substitution (//host, \\host, any scheme: prefix — including single-slash forms like https:/host that browsers normalize to absolute URLs) are rejected unless the rule's own destination template is external or allowExternalRedirects is enabled.
  • @power-seo/schema + @power-seo/react — JSON-LD XSS hardening (#124, #125, #136, #146). All JSON-LD React components and the Breadcrumb component serialize through the shared escaping serializer (<, >, &, plus the U+2028/U+2029 line separators) closing </script>-injection vectors.
  • @power-seo/integrations + @power-seo/search-console — Upstream API response bodies are sanitized (secrets redacted, truncated to 200 chars) before appearing in thrown error messages (#130).
  • @power-seo/tracking — Analytics script builders validate GA4/Clarity/PostHog IDs against strict allow-lists and reject any PostHog host that is not a bare http(s) origin, preventing XSS breakout from inline dangerouslySetInnerHTML scripts (#139).

Fixed

  • @power-seo/metacreateMetadata() no longer clobbers metadata.other when both advanced robots directives and additionalMetaTags are used; entries are merged (#133).
  • @power-seo/meta + @power-seo/corecreateMetadata() and buildMetaTags() now derive og:title/og:description/og:url and twitter:title/twitter:description from top-level title/description/canonical when not explicitly set, so social cards are complete by default (#134). Explicit openGraph/twitter values still take precedence.
  • @power-seo/content-analysis — Content freshness no longer uses a hardcoded "now"; the current date is injected (overridable via options.now) (#127).
  • @power-seo/content-analysis — Media count no longer double-counts video iframes and no longer counts raw video URLs in text as embeds (#121).
  • @power-seo/content-analysis — Transition-word thresholds now come from shared READABILITY constants, matching @power-seo/readability (#122).
  • **`@po...
Read more

v1.0.18 — expectedIntent override + diminishing returns for repeated signals (#152)

Choose a tag to compare

@github-actions github-actions released this 25 Jul 09:12

Release 1.0.18

Two content-scoring improvements. All 17 @power-seo/* packages are published together at 1.0.18.

Editor-selected target intent (expectedIntent)

analyzeContent() now accepts an optional expectedIntent input:

analyzeContent({
  content,
  focusKeyphrase,
  expectedIntent: 'commercial', // 'informational' | 'navigational' | 'transactional' | 'commercial' | 'commercial-investigation'
});

When set, every intent-aware check scores the content against the selected
intent instead of auto-detecting it from the focus keyphrase. This lets an
editor who knows a page's job — a pricing page whose keyphrase happens to read
"informational", for example — override the classification so the Intent and
E-E-A-T tabs score against reality. 'commercial' is accepted as an alias for
'commercial-investigation'.

detectIntent, ExpectedIntent, IntentType, and IntentResult are now
exported from @power-seo/content-analysis, so UIs can show auto-detected vs.
target intent side by side.

Diminishing returns for repeated signal phrases (fixes #152)

Previously, E-E-A-T and AEO checks counted every regex match at full value, so
repeating an exact trigger phrase ("I recommend" ×10) scored the same as ten
genuinely varied signals — the checks were trivially gameable by phrase
stuffing.

@power-seo/core gains countEffectiveMatches(): each distinct matched
phrase earns full credit once, and identical repeats earn log₂-scaled credit
(1 + log2(n)), so ten copies of one phrase are worth ~4.3 instead of 10.
Identical phrases matched by more than one pattern are merged, which also
removes same-phrase double-dipping within a check.

Applied to the three checks named in the issue:

  • eeat-experience-depth — density tier now uses effective (repetition-discounted) markers; descriptions note "N raw, M after repetition discounting".
  • eeat-methodology-transparency — tier thresholds use effective matches.
  • aeo-fact-density — the same fact repeated no longer counts as multiple facts.

Ten varied experience markers now strictly outscore one marker repeated ten
times, and pasting a trigger-phrase list can no longer buy the top tier. The
deterministic, explainable design is unchanged — only repetition is discounted.

Quality

  • 6 new regression tests; 432 tests passing in @power-seo/content-analysis.
  • All 17 packages build clean and are version-aligned at 1.0.18.

v1.0.17 — Analyzer correctness: 20 verified scoring bugs fixed (#148–#167)

Choose a tag to compare

@CyberCraftBangladesh CyberCraftBangladesh released this 23 Jul 15:04

Fixed

  • @power-seo/corestripHtml no 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/coregetParagraphs no 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). ensureTrailingSlash no 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). The local sub-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 /g regexes 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, matches contentCategory by 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 in shared-ymyl.ts (#159).
  • @power-seo/content-analysis — "ad hoc" no longer counts as an FTC disclosure and #ad/#sponsored hashtags 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-analysisintent-related-coverage returns na for unrecognized keyphrase shapes instead of a dead-end 0/5 and adds checklist/tips/examples/tutorial mappings; secondary-keyphrases returns na when no seeds are configured; intent-depth-match enforces documented upper bounds for informational/commercial content; single-h1 no 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).

v1.0.16 — Security hardening and correctness fixes (#121–#146)

Choose a tag to compare

@CyberCraftBangladesh CyberCraftBangladesh released this 23 Jul 14:45

Security

  • @power-seo/redirects — Open-redirect guard (#129). Resolved destinations are now validated before use: javascript:, data:, vbscript:, and file: schemes are always rejected; destinations that become off-origin through wildcard/param/regex substitution (//host, \\host, any scheme: prefix — including single-slash forms like https:/host that browsers normalize to absolute URLs) are rejected unless the rule's own destination template is external or allowExternalRedirects is enabled.
  • @power-seo/schema + @power-seo/react — JSON-LD XSS hardening (#124, #125, #136, #146). All JSON-LD React components and the Breadcrumb component serialize through the shared escaping serializer (<, >, &, plus the U+2028/U+2029 line separators) closing </script>-injection vectors.
  • @power-seo/integrations + @power-seo/search-console — Upstream API response bodies are sanitized (secrets redacted, truncated to 200 chars) before appearing in thrown error messages (#130).
  • @power-seo/tracking — Analytics script builders validate GA4/Clarity/PostHog IDs against strict allow-lists and reject any PostHog host that is not a bare http(s) origin, preventing XSS breakout from inline dangerouslySetInnerHTML scripts (#139).

Fixed

  • @power-seo/metacreateMetadata() no longer clobbers metadata.other when both advanced robots directives and additionalMetaTags are used; entries are merged (#133).
  • @power-seo/meta + @power-seo/corecreateMetadata() and buildMetaTags() now derive og:title/og:description/og:url and twitter:title/twitter:description from top-level title/description/canonical when not explicitly set, so social cards are complete by default (#134). Explicit openGraph/twitter values still take precedence.
  • @power-seo/content-analysis — Content freshness no longer uses a hardcoded "now"; the current date is injected (overridable via options.now) (#127).
  • @power-seo/content-analysis — Media count no longer double-counts video iframes and no longer counts raw video URLs in text as embeds (#121).
  • @power-seo/content-analysis — Transition-word thresholds now come from shared READABILITY constants, matching @power-seo/readability (#122).
  • @power-seo/audit — Keyphrase density thresholds now use the shared KEYWORD_DENSITY constants (0.5–2.5%) instead of a hardcoded 3.0% bound (#126).
  • @power-seo/content-analysis — Overlapping regex patterns no longer inflate marker counts in E-E-A-T case-study detection; distinct match spans are merged via the new countDistinctMatches utility (#128).
  • @power-seo/core — Removed dead identical-branch ternary in countSyllables suffix handling (#132).
  • @power-seo/corebuildMetaTags no longer discards noindex/nofollow overrides; resolveTitle/applyTitleTemplate no longer corrupt titles containing $-patterns or legitimate leading/trailing separators; stripQueryParams keeps repeated params; calculateKeywordDensity matches its documented metric (#135).
  • @power-seo/schemaclean() now recurses into nested objects and arrays instead of stripping only top-level undefined (#136).
  • @power-seo/sitemap — Priorities are emitted without lossy rounding; toNextSitemap normalizes relative locs against an optional hostname instead of silently dropping them; splitSitemap index URLs are normalized to avoid double slashes (#137).
  • @power-seo/redirects — Query strings no longer break rule matching or leak into path params; substituteParams and matchRegex replace every occurrence with boundary-aware matching; toNextRedirects performs a real regex/wildcard → Next.js segment translation (#138).
  • @power-seo/imagesFILENAME_PATTERN no longer flags descriptive alt text like "Photo 2 dogs playing" as a raw filename (#140).
  • @power-seo/readabilitycolemanLiau counts alphabetic letters directly instead of approximating from character count, so punctuation- and digit-heavy text no longer inflates the grade (#141).
  • @power-seo/linksfindOrphanPages retains page titles; buildLinkGraph strips fragments and skips mailto:/tel: links so they no longer create phantom nodes (#142).
  • @power-seo/audit — Empty/info-only categories are excluded and category weights renormalized instead of substituting a synthetic score of 100 (#143).
  • @power-seo/search-consoleinspectUrl targets the URL Inspection endpoint instead of the v3 root; createTokenManager resets its cache on a failed token fetch instead of caching the rejection forever (#144).
  • @power-seo/analyticsanalyzeQueryRankings uses contiguous half-open buckets with an open-ended top bucket, so fractional GSC positions are no longer dropped (#145).

Changed

  • @power-seo/core — Consolidated shared utilities: escapeXml (xml-utils), HTTP retry/backoff (http-retry), JSON-LD serialization (json-ld), and pattern matching (pattern-utils) are now single-sourced in core and reused by sitemap, redirects, integrations, and search-console (#131). Word counting and sentence splitting are unified across content-analysis checks (#123).

Release v1.0.15

Choose a tag to compare

@github-actions github-actions released this 05 Apr 21:35

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[1.0.15] - 2026-04-06

Added

AEO: Answer Engine Optimization — 8 New Checks (@power-seo/content-analysis)

Answer Engine Optimization (AEO) is now a first-class scoring category. With AI Overviews appearing in 48% of all queries (Feb 2026) and Perplexity/ChatGPT routing 4.4× more converting traffic than organic search, AEO signals are critical for content discoverability in AI-driven environments.

  • aeo-direct-answer (maxScore: 10) — Detects definition-first openings ("X is/refers to/means…"). Definition-first openings generate up to 34× more daily AI citations vs. narrative openings.
  • aeo-faq-section (maxScore: 10) — Counts Q&A pairs: question-phrased H2/H3 headings followed by 30–200 word answer paragraphs. FAQPage schema + FAQ section yields 2.7–3.2× higher AI Overview citation rate.
  • aeo-fact-density (maxScore: 8) — Measures verifiable fact signals (percentages, currencies, years, study attributions, measurements) per 100 words. Princeton GEO study: adding statistics increases AI visibility by 40%.
  • aeo-tldr-summary (maxScore: 7) — Detects TL;DR / Key Takeaways / summary sections with structured bullet lists. Summary blocks receive 2.1× more AI citations (Moz AI Content Study, 2025).
  • aeo-concise-answers (maxScore: 7) — Checks that question headings are followed by concise 40–120 word answer paragraphs. Perplexity AI study: 40–60 word answers under question headings generate 220% more citations.
  • aeo-structured-data-hints (maxScore: 7) — Detects structured content patterns: tables, numbered step-by-step processes, comparison sections, how-to ordered lists. AI engines extract structured content 3.8× more often than prose (SurferSEO, Q4 2025).
  • aeo-citation-readiness (maxScore: 8) — Measures citation signals: external source links, attribution phrases ("according to…"), footnotes, and a Sources/References section. BrightEdge 2025: cited pages have 3.1× more external references.
  • aeo-entity-coverage (maxScore: 9) — Estimates named entity density (proper nouns, brands, technologies, people, standards). Target: 15–25 entities per 1,000 words. Kalicube AEO study: 15+ entities/1,000 words = 4.8× higher AI engine selection rate.

New CheckId Union Types

  • Added 8 new AEO check IDs to the CheckId union type in types.ts
  • Full TypeScript type safety and disabledChecks config support for all AEO checks

Changed

SEO Score Weight Rebalancing (@power-seo/content-analysis)

Weights revised based on 2026 ranking factor research: Google Content Warehouse API Leak (2024), NavBoost signals confirmed in DOJ antitrust trial, First Page Sage Q1 2025 correlation study, and Ahrefs/Portent readability research.

Category Old Weight New Weight Rationale
E-E-A-T 35% 30% Adjusted to accommodate AEO
Intent 27% 24% Adjusted to accommodate AEO
AEO 0% 20% New category — AI engine citation signals
SEO Analysis 26% 18% Keyword density confirmed NOT a ranking factor (Mueller)
SERP/CTR 2% 5% NavBoost click signals confirmed critical by DOJ trial
Readability 9% 2% Zero correlation with rankings (Ahrefs, Portent studies)
Social 1% 1% Unchanged

maxScore Calibration — content-analysis Checks

All check maxScore values recalibrated to reflect 2026 research-backed importance weighting. Previously all checks had maxScore: 5; now checks are weighted by their actual impact on search rankings:

Check Old maxScore New maxScore Reason
word-count 5 10 First Page Sage: satisfying content = 23% of ranking weight
content-freshness 5 10 First Page Sage: freshness = 6%; critical for AI grounding
media-count 5 8 Visual content improves dwell time (NavBoost signal)
eeat-content-accuracy 5 10 Core trust signal; YMYL pages penalised heavily for inaccuracy
eeat-source-quality 5 10 External citations = primary E-E-A-T trust signal
eeat-author-schema 5 10 Author markup directly consumed by Google E-E-A-T evaluators
eeat-experience-depth 5 9 First-hand experience confirmed as ranking differentiator (HCU)
eeat-topical-authority 5 8 Content Warehouse API: siteFocusScore is a core ranking signal
eeat-overall-score 5 8 Aggregated E-E-A-T pillar summary
intent-keyword-classification 5 10 Intent mismatch = primary cause of ranking failure
intent-content-alignment 5 10 Google's primary satisfaction signal
intent-satisfaction-score 5 10 NavBoost: satisfying intent → good clicks → ranking boost
intent-format-match 5 8 Format mismatch reduces dwell time (NavBoost bad click signal)
intent-depth-match 5 8 Thin content for intent = high bounce = NavBoost penalty
intent-snippet-readiness 5 6 Featured snippet still present in non-AI-Overview results
keyphrase-density 5 1 Confirmed NOT a ranking factor (John Mueller, multiple statements)

maxScore Calibration — readability Checks (@power-seo/readability)

Check Old maxScore New maxScore Reason
sentence-length 5 8 Affects scanability and dwell time
paragraph-length 5 8 Mobile UX signal; affects bounce rate
passive-voice 5 6 Clarity signal; affects comprehension
flesch-reading-ease 5 4 Zero correlation with rankings (Ahrefs 2024 study, 1.9M pages)
transition-words 5 3 Minor UX signal only
consecutive-sentences 5 3 Minor stylistic signal only

Fixed

  • word-count good-result maxScore was 5 (not updated with other returns) — corrected to 10
  • All "poor" status returns in modified check files now have consistent maxScore matching "good"/"ok" returns
  • intent-format-match "na" early-return maxScore corrected from 5 to 8

[1.0.14] - 2026-03-25

Added

E-E-A-T Checks — 25 New Checks (@power-seo/content-analysis)

Comprehensive Google E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) signal detection:

Experience (5 checks)

  • eeat-experience-depth — First-hand experience signals (personal pronouns, temporal markers, testing outcomes, process narration)
  • eeat-original-research — Original data, surveys, experiments, and unique findings
  • eeat-specificity-depth — Specific details, product versions, measurements that demonstrate hands-on knowledge
  • eeat-multimedia-evidence — Screenshots, diagrams, original photos, embedded video evidence
  • eeat-case-study-patterns — Case study and real-world example patterns

Expertise (5 checks)

  • eeat-author-schema — Author JSON-LD schema completeness (name, jobTitle, worksFor, credentials, knowsAbout, sameAs)
  • eeat-topical-authority — Topical focus and niche expertise signals
  • eeat-technical-vocabulary — Domain-specific technical terminology usage
  • eeat-expert-hedging — Calibrated language ("research suggests", "in most cases") vs. overconfident claims
  • eeat-methodology-transparency — Research methods, data sources, and process transparency

Authoritativeness (5 checks)

  • eeat-author-social — Social profile links (LinkedIn, Twitter/X, GitHub)
  • eeat-organization — Organization schema and brand signals
  • eeat-published-works — References to publications, research papers, books
  • eeat-expert-sourcing — Citations from named experts and authoritative sources
  • eeat-editorial-review — Editorial process signals (reviewed by, fact-checked, updated by)

Trustworthiness (6 checks)

  • eeat-source-quality — External link quality and diversity (academic, government, industry)
  • eeat-ymyl-compliance — YMYL (Your Money or Your Life) content risk level assessment
  • eeat-conflict-disclosure — Conflict of interest and sponsorship disclosure
  • eeat-content-accuracy — Misleading language, unsubstantiated claims, clickba...
Read more

Release v1.0.12

Choose a tag to compare

@github-actions github-actions released this 28 Feb 16:01

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[1.0.12] - 2026-03-03

Fixed

Documentation

  • @power-seo/preview: Added TwitterImageValidation structure documentation
  • @power-seo/sitemap: Fixed lastmod conversion claim and clarified namespace detection scope
  • @power-seo/redirects: Corrected API function signatures, status codes, and config types (5 fixes)
  • @power-seo/links: Fixed function signatures and property names (3 fixes)
  • @power-seo/audit: Added missing hostname parameter to API reference
  • @power-seo/images: Corrected function signatures, return types, and examples (7 fixes)
  • @power-seo/ai: Fixed focusKeyphrase parameter name in OpenAI example
  • @power-seo/analytics: Corrected correlation return type, ranking tiers, and usage examples
  • @power-seo/search-console: Fixed TokenManager type definition and CI/CD example
  • @power-seo/integrations: Corrected error properties and config parameter types
  • @power-seo/tracking: Added missing isGranted method to API reference

Total: 18 documentation issues fixed across 11 packages


[1.0.11] - 2026-03-01

Added

Documentation

  • Comprehensive GitHub Wiki with 38+ pages covering all packages and use cases
  • Interactive MDX documentation files for enhanced learning experience
  • Home page with organized navigation for Quick Start, Core Concepts, and Package APIs
  • Wiki homepage synchronized across repository and GitHub Pages
  • Complete guide to all 17 packages with API references

Features

  • Wiki-based documentation system for better discoverability
  • Enhanced package documentation with real-world examples
  • MDX files for interactive documentation in docs/ directory
  • Improved navigation structure across all documentation

Changed

Documentation

  • Updated README.md with comprehensive documentation links
  • Restructured docs/ directory with WIKI_HOME.mdx for easy navigation
  • Improved package selection guide with visual organization
  • Enhanced framework integration documentation

Fixed

  • Wiki homepage rendering and display issues
  • Documentation page synchronization across platforms
  • Fixed duplicate wiki page references
  • Improved markdown formatting for better GitHub rendering

[1.0.10] - 2026-02-28

Added

New Packages

  • @power-seo/ai - LLM-agnostic AI prompt templates for SEO tasks
  • @power-seo/search-console - Google Search Console API client
  • @power-seo/integrations - Semrush and Ahrefs API clients
  • @power-seo/tracking - Analytics tracking with GDPR consent
  • @power-seo/analytics - Analytics dashboard builder
  • @power-seo/images - Image SEO analysis
  • @power-seo/readability - Readability scoring algorithms

Features

  • Real-time content analysis (Yoast-style scoring)
  • Pixel-accurate SERP previews
  • XML sitemap streaming for 50,000+ URLs
  • Comprehensive SEO audit (30+ rules)
  • Link graph analysis with orphan detection
  • Advanced robots directives support
  • Multi-language support with hreflang
  • Batch processing and data export
  • Advanced filtering and monitoring

Documentation

  • 11 comprehensive wiki pages (5,063 lines)
  • 20+ GitHub Discussion templates
  • Getting started guides for all frameworks
  • Package selection guide with presets
  • Architecture overview
  • Real-world use case tutorials
  • Troubleshooting guide (20+ solutions)
  • Complete API reference

Build & CI/CD

  • GitHub Actions workflows
  • Changesets-based versioning
  • ESLint and Prettier configuration
  • Vitest with 95%+ coverage
  • Turborepo optimization
  • CodeQL and Socket.dev monitoring
  • Provenance-signed releases

Changed

API Improvements

  • Full TypeScript support across all packages
  • Standardized error handling
  • Better validation error messages
  • Enhanced type definitions

Performance

  • Optimized bundle sizes
  • Tree-shakeable exports
  • Dual ESM + CJS output
  • Parallel rule execution
  • Improved memory usage

Documentation

  • Updated package READMEs
  • Added 120+ SVG assets
  • Interactive examples
  • Architecture documentation

Fixed

  • XSS vulnerabilities in JSON-LD rendering
  • ReDoS-prone regex patterns
  • URL normalization issues
  • Redirect chain detection edge cases
  • Memory optimization for large datasets

Security

  • No install scripts
  • No runtime network access
  • No eval or dynamic code
  • Input validation and sanitization
  • Automated security scanning
  • Dependency vulnerability management

[1.0.1] - 2026-01-05

Added

  • Multi-language support and i18n
  • Accessibility improvements
  • Advanced analytics dashboard
  • Batch processing
  • Data export utilities

Fixed

  • Content analysis edge cases
  • Readability accuracy
  • Schema validation

[1.0.0] - 2025-12-01

Added

Core Packages (10)

  • @power-seo/core - Zero-dependency foundation
  • @power-seo/react - React SEO components
  • @power-seo/meta - SSR meta helpers
  • @power-seo/schema - JSON-LD builders (23 types)
  • @power-seo/content-analysis - Yoast-style scoring
  • @power-seo/preview - SERP/OG/Twitter previews
  • @power-seo/sitemap - XML sitemap generation
  • @power-seo/redirects - Redirect engine
  • @power-seo/links - Link graph analysis
  • @power-seo/audit - Full audit engine

Features

  • Type-safe builders for all SEO tasks
  • Framework-native (Next.js 14+, Remix v2, React SPAs)
  • Comprehensive test coverage
  • Full TypeScript support
  • Tree-shakeable exports
  • Production-ready

[1.0.0-beta.1] - 2025-10-01

Added

  • Beta release for testing
  • End-to-end test suite
  • Documentation and examples

Fixed

  • Community feedback issues
  • Edge case handling

[1.0.0-alpha] - 2025-09-15

Added

  • Alpha release for early testing
  • Core functionality
  • API documentation
  • CI/CD workflows

Requirements

  • Node.js: >= 18.0.0
  • TypeScript: >= 5.0 (optional)
  • React: >= 18.0.0 (for React packages only)

License

MIT © 2026 CyberCraft Bangladesh

v1.0.11

Choose a tag to compare

@CyberCraftBangladesh CyberCraftBangladesh released this 27 Feb 18:54

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[1.0.11] - 2026-02-28

Added

New Packages

  • @power-seo/ai - LLM-agnostic AI prompt templates for SEO tasks
  • @power-seo/search-console - Google Search Console API client
  • @power-seo/integrations - Semrush and Ahrefs API clients
  • @power-seo/tracking - Analytics tracking with GDPR consent
  • @power-seo/analytics - Analytics dashboard builder
  • @power-seo/images - Image SEO analysis
  • @power-seo/readability - Readability scoring algorithms

Features

  • Real-time content analysis (Yoast-style scoring)
  • Pixel-accurate SERP previews
  • XML sitemap streaming for 50,000+ URLs
  • Comprehensive SEO audit (30+ rules)
  • Link graph analysis with orphan detection
  • Advanced robots directives support
  • Multi-language support with hreflang
  • Batch processing and data export
  • Advanced filtering and monitoring

Documentation

  • 11 comprehensive wiki pages (5,063 lines)
  • 20+ GitHub Discussion templates
  • Getting started guides for all frameworks
  • Package selection guide with presets
  • Architecture overview
  • Real-world use case tutorials
  • Troubleshooting guide (20+ solutions)
  • Complete API reference

Build & CI/CD

  • GitHub Actions workflows
  • Changesets-based versioning
  • ESLint and Prettier configuration
  • Vitest with 95%+ coverage
  • Turborepo optimization
  • CodeQL and Socket.dev monitoring
  • Provenance-signed releases

Changed

API Improvements

  • Full TypeScript support across all packages
  • Standardized error handling
  • Better validation error messages
  • Enhanced type definitions

Performance

  • Optimized bundle sizes
  • Tree-shakeable exports
  • Dual ESM + CJS output
  • Parallel rule execution
  • Improved memory usage

Documentation

  • Updated package READMEs
  • Added 120+ SVG assets
  • Interactive examples
  • Architecture documentation

Fixed

  • XSS vulnerabilities in JSON-LD rendering
  • ReDoS-prone regex patterns
  • URL normalization issues
  • Redirect chain detection edge cases
  • Memory optimization for large datasets

Security

  • No install scripts
  • No runtime network access
  • No eval or dynamic code
  • Input validation and sanitization
  • Automated security scanning
  • Dependency vulnerability management

[1.0.1] - 2026-01-05

Added

  • Multi-language support and i18n
  • Accessibility improvements
  • Advanced analytics dashboard
  • Batch processing
  • Data export utilities

Fixed

  • Content analysis edge cases
  • Readability accuracy
  • Schema validation

[1.0.0] - 2025-12-01

Added

Core Packages (10)

  • @power-seo/core - Zero-dependency foundation
  • @power-seo/react - React SEO components
  • @power-seo/meta - SSR meta helpers
  • @power-seo/schema - JSON-LD builders (23 types)
  • @power-seo/content-analysis - Yoast-style scoring
  • @power-seo/preview - SERP/OG/Twitter previews
  • @power-seo/sitemap - XML sitemap generation
  • @power-seo/redirects - Redirect engine
  • @power-seo/links - Link graph analysis
  • @power-seo/audit - Full audit engine

Features

  • Type-safe builders for all SEO tasks
  • Framework-native (Next.js 14+, Remix v2, React SPAs)
  • Comprehensive test coverage
  • Full TypeScript support
  • Tree-shakeable exports
  • Production-ready

[1.0.0-beta.1] - 2025-10-01

Added

  • Beta release for testing
  • End-to-end test suite
  • Documentation and examples

Fixed

  • Community feedback issues
  • Edge case handling

[1.0.0-alpha] - 2025-09-15

Added

  • Alpha release for early testing
  • Core functionality
  • API documentation
  • CI/CD workflows

Requirements

  • Node.js: >= 18.0.0
  • TypeScript: >= 5.0 (optional)
  • React: >= 18.0.0 (for React packages only)

License

MIT © 2026 CyberCraft Bangladesh

Release v1.0.10

Choose a tag to compare

@github-actions github-actions released this 27 Feb 20:24

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

[1.0.11] - 2026-02-28

Added

Documentation

  • Comprehensive GitHub Wiki with 38+ pages covering all packages and use cases
  • Interactive MDX documentation files for enhanced learning experience
  • Home page with organized navigation for Quick Start, Core Concepts, and Package APIs
  • Wiki homepage synchronized across repository and GitHub Pages
  • Complete guide to all 17 packages with API references

Features

  • Wiki-based documentation system for better discoverability
  • Enhanced package documentation with real-world examples
  • MDX files for interactive documentation in docs/ directory
  • Improved navigation structure across all documentation

Changed

Documentation

  • Updated README.md with comprehensive documentation links
  • Restructured docs/ directory with WIKI_HOME.mdx for easy navigation
  • Improved package selection guide with visual organization
  • Enhanced framework integration documentation

Fixed

  • Wiki homepage rendering and display issues
  • Documentation page synchronization across platforms
  • Fixed duplicate wiki page references
  • Improved markdown formatting for better GitHub rendering

[1.0.10] - 2026-02-28

Added

New Packages

  • @power-seo/ai - LLM-agnostic AI prompt templates for SEO tasks
  • @power-seo/search-console - Google Search Console API client
  • @power-seo/integrations - Semrush and Ahrefs API clients
  • @power-seo/tracking - Analytics tracking with GDPR consent
  • @power-seo/analytics - Analytics dashboard builder
  • @power-seo/images - Image SEO analysis
  • @power-seo/readability - Readability scoring algorithms

Features

  • Real-time content analysis (Yoast-style scoring)
  • Pixel-accurate SERP previews
  • XML sitemap streaming for 50,000+ URLs
  • Comprehensive SEO audit (30+ rules)
  • Link graph analysis with orphan detection
  • Advanced robots directives support
  • Multi-language support with hreflang
  • Batch processing and data export
  • Advanced filtering and monitoring

Documentation

  • 11 comprehensive wiki pages (5,063 lines)
  • 20+ GitHub Discussion templates
  • Getting started guides for all frameworks
  • Package selection guide with presets
  • Architecture overview
  • Real-world use case tutorials
  • Troubleshooting guide (20+ solutions)
  • Complete API reference

Build & CI/CD

  • GitHub Actions workflows
  • Changesets-based versioning
  • ESLint and Prettier configuration
  • Vitest with 95%+ coverage
  • Turborepo optimization
  • CodeQL and Socket.dev monitoring
  • Provenance-signed releases

Changed

API Improvements

  • Full TypeScript support across all packages
  • Standardized error handling
  • Better validation error messages
  • Enhanced type definitions

Performance

  • Optimized bundle sizes
  • Tree-shakeable exports
  • Dual ESM + CJS output
  • Parallel rule execution
  • Improved memory usage

Documentation

  • Updated package READMEs
  • Added 120+ SVG assets
  • Interactive examples
  • Architecture documentation

Fixed

  • XSS vulnerabilities in JSON-LD rendering
  • ReDoS-prone regex patterns
  • URL normalization issues
  • Redirect chain detection edge cases
  • Memory optimization for large datasets

Security

  • No install scripts
  • No runtime network access
  • No eval or dynamic code
  • Input validation and sanitization
  • Automated security scanning
  • Dependency vulnerability management

[1.0.1] - 2026-01-05

Added

  • Multi-language support and i18n
  • Accessibility improvements
  • Advanced analytics dashboard
  • Batch processing
  • Data export utilities

Fixed

  • Content analysis edge cases
  • Readability accuracy
  • Schema validation

[1.0.0] - 2025-12-01

Added

Core Packages (10)

  • @power-seo/core - Zero-dependency foundation
  • @power-seo/react - React SEO components
  • @power-seo/meta - SSR meta helpers
  • @power-seo/schema - JSON-LD builders (23 types)
  • @power-seo/content-analysis - Yoast-style scoring
  • @power-seo/preview - SERP/OG/Twitter previews
  • @power-seo/sitemap - XML sitemap generation
  • @power-seo/redirects - Redirect engine
  • @power-seo/links - Link graph analysis
  • @power-seo/audit - Full audit engine

Features

  • Type-safe builders for all SEO tasks
  • Framework-native (Next.js 14+, Remix v2, React SPAs)
  • Comprehensive test coverage
  • Full TypeScript support
  • Tree-shakeable exports
  • Production-ready

[1.0.0-beta.1] - 2025-10-01

Added

  • Beta release for testing
  • End-to-end test suite
  • Documentation and examples

Fixed

  • Community feedback issues
  • Edge case handling

[1.0.0-alpha] - 2025-09-15

Added

  • Alpha release for early testing
  • Core functionality
  • API documentation
  • CI/CD workflows

Requirements

  • Node.js: >= 18.0.0
  • TypeScript: >= 5.0 (optional)
  • React: >= 18.0.0 (for React packages only)

License

MIT © 2026 CyberCraft Bangladesh

Release v1.0.4

Choose a tag to compare

@CyberCraftBangladesh CyberCraftBangladesh released this 22 Feb 04:35

@Power-SEO v1.0.4

All 17 packages published to npm under the @power-seo scope.

What's new

  • Rewrote documentation for core, content-analysis, links, audit, images, ai, analytics, and integrations packages to follow the full template structure
  • @power-seo in Ecosystem section headings now links to npmjs.com/org/power-seo across all 17 READMEs
  • CyberCraft Bangladesh links to ccbd.dev across all 17 READMEs
  • All packages bumped to v1.0.3

Install any package

npm install @power-seo/core
npm install @power-seo/react
# ...any of the 17 packages

See the full package list on npm.

Release v1.0.2

Choose a tag to compare

@github-actions github-actions released this 21 Feb 23:59

@Power-SEO v1.0.2

All 17 packages published to npm under the @power-seo scope.

Install any package

npm install @power-seo/core
npm install @power-seo/react
# ...any of the 17 packages

See the full package list on npm.