jekyll/jekyll-seo-tag
51.8
Adequate · 19 September 2026
601
lines of production code
Ruby
primary language
1
measurement over time
What this system is
This system is the Jekyll SEO Tag plugin, a Ruby gem designed to generate structured metadata and JSON-LD for Jekyll-based websites. It provides capabilities for managing author and image metadata, constructing HTML meta tags, and outputting valid JSON-LD schemas. The codebase focuses on maintaining high test coverage and enforcing code quality through modern linting and testing standards.
Removals
Removal of development convenience scripts
The repository no longer includes the \bin/console\ and \bin/setup\ scripts. Users can no longer use these commands to launch an interactive Ruby console with the gem loaded or to run automated setup steps like \bundle install\.
bin · high confidence
Behavioural changes
Jekyll SEO Tag v2.9.0: Refactored to Drop-based architecture with enhanced author and image handling
The Jekyll SEO Tag plugin has been updated to version 2.9.0, introducing a significant architectural shift from hash-based data structures to dedicated Drop classes (AuthorDrop, ImageDrop, JSONLDDrop) for better encapsulation and performance. This change enables more robust author metadata resolution, allowing users to define author types (Person or Organization) and URLs via \site.data.authors\. Image handling now supports relative paths resolved against the page directory and outputs structured \imageObject\ JSON-LD when additional properties are present. The JSON-LD output is now sorted by key for consistency, and the deprecated \JSONLD\ module is retained for backward compatibility while warning users. The plugin also memoizes various lookups to reduce allocation overhead.
lib/jekyll-seo-tag · high confidence
Refactored SEO tag generation with structured data drops and template minification
The Jekyll SEO tag plugin has been refactored to improve performance and maintainability. The Liquid template is now minified at load time using a specific regex to remove unnecessary whitespace, and the parsed template is cached for reuse. Logic for generating metadata has been moved from the template into dedicated Ruby drops (Author, Image, JSON-LD, etc.), which provide a structured payload to the template. This change also updates the template to use these new drop properties (e.g., \seo\_tag.author.name\, \seo\_tag.image.path\) and adds support for new meta tags including \og:image:alt\, \twitter:image:alt\, and webmaster verifications for Baidu and Alexa.
lib · high confidence
Update CI build script to use RSpec and Rubocop
The CI build process (script/cibuild) no longer relies on Rake; it now directly executes RSpec for tests and Rubocop for code style checks before building the gem.
script · high confidence
Test coverage
Added comprehensive test coverage for Jekyll SEO Tag drops and filters; Refactored test suite and added integration specs for Jekyll SEO Tag; Updated test fixtures for Jekyll SEO tag validation.
Dependencies
Introduce RuboCop configuration and update development tooling
The project now includes a \.rubocop.yml\ configuration file that enforces code style using the \rubocop-jekyll\ gem and targets Ruby 2.5, alongside a generated \.rubocop\_todo.yml\ to track existing offenses. This change replaces the previous Travis CI setup (\.travis.yml\) and Rakefile with a modern linting approach, while also updating the \.gitignore\ to better exclude build artifacts and refreshing the copyright year in \LICENSE.txt\.
(repo-wide) · high confidence
Update Jekyll dependency constraints and development tooling
The gem now requires Jekyll version 3.8 or higher (up to but not including 5.0), replacing the previous minimum of 2.4. Development dependencies have been updated to include html-proofer (\~\> 3.7) and rubocop-jekyll (\~\> 0.12.0), while the bundler requirement has been relaxed to version 1.15 or higher. The Gemfile has also been adjusted to conditionally load Jekyll and kramdown-parser-gfm based on environment variables for testing purposes.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 52.
Lenses
- Code Health 97
- Architecture 69
- Maturity 53
- Readiness 70
- Security 77
- Accessibility 38
Changes since last survey
- 300 commits — 278 feature/other, 22 fixes
By area
- (root) — 125 commits
- lib/jekyll-seo-tag — 44 commits
- (repo) — 43 commits
- spec/jekyll_seo_tag — 18 commits
- docs/advanced-usage.md — 13 commits
- docs/usage.md — 13 commits
- .github/workflows — 9 commits
- lib/template.html — 9 commits
- spec/jekyll_seo_tag_integration_spec.rb — 8 commits
- docs/installation.md — 5 commits
- lib/jekyll-seo-tag.rb — 5 commits
- docs/README.md — 4 commits
- spec/spec_helper.rb — 2 commits
- docs/_config.yml — 1 commit
- docs/_layouts — 1 commit
Notable commits
- fix: Fix Travis builds for Jekyll 3.x (#415)
- fix: Fix locale specs that use the fallback locale (#360)
- fix: Fix markdown for a code snippet
- fix: Fix markdown for indents
- fix: Fix test - props @Parkr
- fix: Fix: Consistently use self-closing tags
- fix: Merge branch 'master' into nil-image-path-fix
- fix: Merge pull request #199 from jekyll/nil-image-path-fix
- fix: Merge pull request #228 from jekyll/fix-for-invalid-url
- fix: Merge pull request #246 from localheinz/fix/self-closing
- fix: Merge pull request #268 from jekyll/pull/fix-267
- fix: Merge pull request #288 from set0gut1/fix-markdown
- fix: Rename Google webmaster tools to Google Search Console and fix a few small issues (#403)
- fix: fix #275 (#276)
- fix: fix for calling delete! on NiLClass
- fix: fix for image.path causing an invalid url error
- fix: fix for including name when author is passed by reference
- fix: fix installation numbering
- fix: fix readme h1
- fix: fix regex syntax
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
jekyll/jekyll-seo-tag was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 9eb0368516cd14539fa102fc52d88e634d0070dc — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.