PHPackages                             brandefy-studio/bolt-enhanced-seo - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. brandefy-studio/bolt-enhanced-seo

ActiveBolt-extension[Utility &amp; Helpers](/categories/utility)

brandefy-studio/bolt-enhanced-seo
=================================

Enhanced SEO extension for Bolt 5 and 6 with real-time analysis, meta tags, and Google preview

v1.1.2(3mo ago)017MITJavaScriptPHP &gt;=8.1

Since Jan 25Pushed 3mo agoCompare

[ Source](https://github.com/Brandefy-Studio/bolt-enhanced-seo)[ Packagist](https://packagist.org/packages/brandefy-studio/bolt-enhanced-seo)[ RSS](/packages/brandefy-studio-bolt-enhanced-seo/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (6)Versions (6)Used By (0)

Bolt Enhanced SEO Extension v1.1.2
==================================

[](#bolt-enhanced-seo-extension-v112)

[![License: MIT](https://camo.githubusercontent.com/08cef40a9105b6526ca22088bc514fbfdbc9aac1ddbf8d4e6c750e3a88a44dca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d626c75652e737667)](LICENSE)[![Bolt CMS](https://camo.githubusercontent.com/4530e8bbaf545b35567813d550255a68e4147682fe2dadbd9abd678908da235d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f426f6c74253230434d532d35253230253743253230362d626c7565)](https://boltcms.io)[![PHP Version](https://camo.githubusercontent.com/1a5e13126d38c1d05f712dae30e7f60ae0444a9c882e9e526349ccba27facb8d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d253345253344382e312d626c7565)](https://php.net)[![Version](https://camo.githubusercontent.com/63581ff8196e0cec357b66185a2ae628330cf35a0af523c82ec8ca67abfde49b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d312e312e322d677265656e2e737667)](CHANGELOG.md)

Enhanced SEO extension for Bolt CMS 5/6 with **real-time SEO analysis**, comprehensive meta tag management, and Google search preview.

✨ What's New in v1.1.2
----------------------

[](#-whats-new-in-v112)

🎯 **Keywords Field Scoring** - Keywords now contribute to SEO score!

- **Conditional weighting** - Only scored when enabled (maxlength &gt; 0)
- **Smart detection** - 7-15 keywords = optimal score
- **Auto-normalization** - Score adjusts when keywords disabled
- **11 Comprehensive Checks** - Added keywords analysis

### Added in v1.1.0

[](#added-in-v110)

🎯 **Real-time SEO Analyzer** - Get instant feedback as you write!

- **Live SEO Score (0-100)** with visual circle indicator
- **10 Automated Checks** running in real-time
- **Focus Keyphrase Analysis** - Optimize for your target keyword
- **Smart Suggestions** - Actionable improvements as you type
- **Content Quality Checks** - Length, density, links analysis

Features
--------

[](#features)

✅ **Real-time SEO Analyzer** ⭐ Enhanced in v1.1.2

- Live scoring (0-100) with color-coded feedback
- 11 comprehensive SEO checks (added Keywords check)
- Focus keyphrase optimization
- Content analysis &amp; suggestions
- Conditional scoring based on configuration

✅ **Custom SEO Field Type** - Dedicated `seo` field for all content types
✅ **Google Search Preview** - Real-time SERP preview as you type
✅ **Meta Tag Management** - Title, description, keywords, canonical, robots
✅ **Open Graph Support** - Facebook/LinkedIn social media optimization
✅ **Multi-language Support** - Works with Bolt's localization system
✅ **Template Integration** - Simple Twig functions for frontend output
✅ **Flexible Configuration** - Extensive YAML configuration options
✅ **No Database Changes** - Stores SEO data as JSON in fields

Installation
------------

[](#installation)

### Via Composer (Recommended)

[](#via-composer-recommended)

```
composer require brandefy-studio/bolt-enhanced-seo
```

### Manual Installation

[](#manual-installation)

1. Download the latest release
2. Extract to `vendor/brandefy-studio/bolt-enhanced-seo`
3. Run `composer dump-autoload`

Setup
-----

[](#setup)

### Step 1: Add SEO Field to ContentTypes

[](#step-1-add-seo-field-to-contenttypes)

Edit `config/bolt/contenttypes.yaml`:

```
pages:
    name: Pages
    singular_name: Page
    fields:
        title:
            type: text
            class: large
            group: content

        slug:
            type: slug
            uses: title
            group: content

        body:
            type: html
            group: content

        # Add SEO field
        seo:
            type: seo
            group: "SEO"
```

### Step 2: Add Meta Tags to Templates

[](#step-2-add-meta-tags-to-templates)

Edit your base template (e.g., `templates/base.html.twig`):

```

    {# SEO Title #}
    {{ seo.title() }}

    {# All SEO Meta Tags #}
    {{ seo.metatags()|raw }}

    {# Your other head content #}

    {{ block('content') }}

```

### Step 3: Clear Cache

[](#step-3-clear-cache)

```
php bin/console cache:clear
```

Usage
-----

[](#usage)

### Real-time SEO Analyzer (v1.1.2+)

[](#real-time-seo-analyzer-v112)

The SEO Analyzer provides instant feedback as you write content:

#### SEO Score

[](#seo-score)

- **0-49** (Red) - Needs significant improvement
- **50-79** (Orange) - Good, but can be better
- **80-100** (Green) - Excellent SEO optimization!

#### 11 Automated Checks

[](#11-automated-checks)

1. **SEO Title Length** - Optimal: 30-60 characters
2. **Meta Description Length** - Optimal: 120-160 characters
3. **Focus Keyphrase in Title** - Best at start of title
4. **Focus Keyphrase in Description** - Should appear naturally
5. **Focus Keyphrase in URL** - Improves relevance
6. **Keywords** (Conditional) - 7-15 relevant keywords (only when enabled)
7. **Focus Keyphrase in Content** - Use 3+ times naturally
8. **Keyphrase Density** - Optimal: 0.5-2.5% (avoid keyword stuffing)
9. **Content Length** - Minimum 300 words, optimal 800+
10. **External Links** - Link to authoritative sources (1-3 links)
11. **Internal Links** - Link to related pages (2-5 links)

#### How to Use

[](#how-to-use)

1. **Set Focus Keyphrase**: Enter your target keyword/phrase
2. **Write Content**: The analyzer updates as you type
3. **Check Score**: Watch the score circle in the sidebar
4. **Follow Suggestions**: Review the improvement panel
5. **Optimize**: Make changes to improve your score

### In Backend

[](#in-backend)

1. Edit any content that has the `seo` field
2. Click on the **"SEO" tab**
3. Fill in SEO fields:
    - **SEO Title** - Custom title for search engines (50-60 chars recommended)
    - **Meta Description** - Brief description (120-156 chars recommended)
    - **Meta Keywords** - Comma-separated keywords (optional)
    - **Google Preview** - Live preview of how it appears in search results
    - **Shortlink** - Alias/shortlink for the page
    - **Canonical Link** - Override canonical URL
    - **Meta Robots** - Control indexing (index/noindex, follow/nofollow)
    - **Open Graph Type** - Social media type (website, article, etc.)

### In Templates

[](#in-templates)

```
{# Basic usage #}
{{ seo.title() }}
{{ seo.metatags()|raw }}

{# Individual meta tags #}

{# Open Graph #}

```

Configuration
-------------

[](#configuration)

Edit `config/extensions/brandefy-bolt-enhanced-seo.yaml`:

```
# Title separator: "Page Title | Site Name"
title_separator: "|"

# Title postfix (leave empty to use sitename from config)
# Set to false to disable postfix
title_postfix: ''

# Length limits for SEO fields
title_length: 70
description_length: 158
keywords_length: 0  # Set to 255 to enable keywords field and scoring

# Default fields to use for SEO data
fields:
    slug: ['slug']
    title: ['title', 'name']
    description: ['introduction', 'teaser', 'description', 'body']
    keywords: []
    image: ['image']

# Default values
default:
    title: ""
    description: ""
    keywords: ""
    ogtype: "website"
    robots: "index, follow"

# Override defaults for specific routes
#override_default:
#    homepage:
#        title: 'Custom Homepage Title'
#        description: 'Custom Description'
#        robots: 'index, follow'
#        ogtype: 'website'
#        canonical: 'https://example.com'

# Custom template for meta tags output
#templates:
#    meta: _partials/_metatags.html.twig
```

API Reference
-------------

[](#api-reference)

### Twig Functions

[](#twig-functions)

#### `seo.title()`

[](#seotitle)

Returns the SEO title with optional postfix.

**Priority**:

1. Override configuration for route
2. SEO field `title` value
3. Content `title` field
4. Default title from config
5. Site name from Bolt config

#### `seo.description()`

[](#seodescription)

Returns the meta description, trimmed to configured length.

**Priority**:

1. Override configuration
2. SEO field `description` value
3. Content description/teaser/intro field
4. Default description
5. Site payoff from Bolt config

#### `seo.keywords()`

[](#seokeywords)

Returns meta keywords (if enabled).

#### `seo.canonical()`

[](#seocanonical)

Returns the canonical URL.

**Priority**:

1. Override configuration
2. SEO field `canonical` value
3. Default canonical from config
4. Current request URI

#### `seo.robots()`

[](#seorobots)

Returns robots meta directive.

**Priority**:

1. Override configuration
2. SEO field `robots` value
3. Default robots from config
4. `"index, follow"`

#### `seo.image()`

[](#seoimage)

Returns OG image URL.

**Priority**:

1. Override configuration
2. Content image field
3. Default image from config

#### `seo.ogtype()`

[](#seoogtype)

Returns Open Graph type.

**Priority**:

1. Override configuration
2. SEO field `og` value
3. Default ogtype from config
4. `"website"`

#### `seo.metatags()`

[](#seometatags)

Outputs all meta tags using the configured template.

Customizing Meta Tags Output
----------------------------

[](#customizing-meta-tags-output)

To customize the meta tags template:

1. Copy `vendor/brandefy-studio/bolt-enhanced-seo/templates/_metatags.html.twig` to your theme
2. Edit `config/extensions/brandefy-bolt-enhanced-seo.yaml`: ```
    templates:
        meta: _partials/_metatags.html.twig
    ```
3. Customize your template

Multi-language Support
----------------------

[](#multi-language-support)

The extension works seamlessly with Bolt's localization:

```
# config/bolt/config.yaml
locales:
    en:
        label: English
        slug: en
    fr:
        label: Français
        slug: fr

# config/bolt/contenttypes.yaml
pages:
    fields:
        title:
            type: text
            localize: true

        seo:
            type: seo
            group: "SEO"
            # SEO data is automatically localized
```

Troubleshooting
---------------

[](#troubleshooting)

### SEO Tab Not Showing

[](#seo-tab-not-showing)

1. Verify field is added to contenttype: ```
    seo:
        type: seo
        group: "SEO"
    ```
2. Clear cache: `php bin/console cache:clear`
3. Check field type is registered (should auto-register)

### Meta Tags Not Appearing

[](#meta-tags-not-appearing)

1. Verify templates include `{{ seo.metatags()|raw }}`
2. Check that content has `seo` field
3. Verify extension is installed: `composer show brandefy-studio/bolt-enhanced-seo`

### JavaScript/CSS Not Loading

[](#javascriptcss-not-loading)

The extension automatically copies assets on installation. If assets are missing:

```
php bin/console bolt:copy-assets
```

Or manually copy `vendor/brandefy-studio/bolt-enhanced-seo/assets/` to `public/assets/`

Compatibility
-------------

[](#compatibility)

- **Bolt CMS**: 5.x and 6.x
- **PHP**: 8.1 or higher
- **Browsers**: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+

Roadmap
-------

[](#roadmap)

### v1.1.0 (Released)

[](#v110-released)

- Real-time SEO score analysis
- Character count indicators with color coding
- Content length recommendations
- Focus keyphrase analysis
- Enhanced Google SERP preview

### v1.2.0 (Planned)

[](#v120-planned)

- Readability analysis (Flesch Reading Ease)

### v2.0.0 (Future)

[](#v200-future)

- Schema.org markup generator
- Redirect manager
- Content insights dashboard

Migration from AppoloDev/bolt-seo
---------------------------------

[](#migration-from-appolodevbolt-seo)

This extension is a fork of the original AppoloDev/bolt-seo with enhanced features and updated namespace.

**Existing installations**: Simply update your `composer.json`:

```
{
    "require": {
        "brandefy-studio/bolt-enhanced-seo": "^1.0"
    }
}
```

Run `composer update` and clear cache. All existing SEO data is preserved.

Contributing
------------

[](#contributing)

Contributions are welcome! Please:

1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Submit a pull request

Credits
-------

[](#credits)

- **Forked From**: [AppoloDev/bolt-seo](https://github.com/AppoloDev/bolt-seo)
- **Enhanced By**: Brandefy Creative Studio
- **Bolt CMS**: [boltcms.io](https://boltcms.io)

License
-------

[](#license)

MIT License - see [LICENSE](LICENSE) file for details

Support
-------

[](#support)

- **Documentation**: [GitHub Wiki](https://github.com/brandefy-studio/bolt-enhanced-seo/wiki)
- **Issues**: [GitHub Issues](https://github.com/brandefy-studio/bolt-enhanced-seo/issues)
- **Discussions**: [GitHub Discussions](https://github.com/brandefy-studio/bolt-enhanced-seo/discussions)

---

Made with ❤️ by [Brandefy Creative Studio](https://brandefycreative.com)

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance81

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

4

Last Release

102d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5d24cf665cb45f3786152f317d55bd8609ddbe6ecafe54e928cbfa27945d68b0?d=identicon)[brandefycreative](/maintainers/brandefycreative)

---

Top Contributors

[![Fredxd](https://avatars.githubusercontent.com/u/4354248?v=4)](https://github.com/Fredxd "Fredxd (54 commits)")[![crim3hound](https://avatars.githubusercontent.com/u/29301735?v=4)](https://github.com/crim3hound "crim3hound (35 commits)")[![Vondry](https://avatars.githubusercontent.com/u/29740752?v=4)](https://github.com/Vondry "Vondry (20 commits)")[![bobdenotter](https://avatars.githubusercontent.com/u/1833361?v=4)](https://github.com/bobdenotter "bobdenotter (6 commits)")[![simonmnt](https://avatars.githubusercontent.com/u/1232756?v=4)](https://github.com/simonmnt "simonmnt (3 commits)")[![trk](https://avatars.githubusercontent.com/u/455983?v=4)](https://github.com/trk "trk (3 commits)")[![jamiel](https://avatars.githubusercontent.com/u/33498?v=4)](https://github.com/jamiel "jamiel (2 commits)")[![hide-me](https://avatars.githubusercontent.com/u/45032974?v=4)](https://github.com/hide-me "hide-me (2 commits)")[![I-Valchev](https://avatars.githubusercontent.com/u/7093518?v=4)](https://github.com/I-Valchev "I-Valchev (1 commits)")

###  Code Quality

Static AnalysisPHPStan, Rector

Code StyleECS

Type Coverage Yes

### Embed Badge

![Health badge](/badges/brandefy-studio-bolt-enhanced-seo/health.svg)

```
[![Health](https://phpackages.com/badges/brandefy-studio-bolt-enhanced-seo/health.svg)](https://phpackages.com/packages/brandefy-studio-bolt-enhanced-seo)
```

###  Alternatives

[stfalcon/tinymce-bundle

This Bundle integrates TinyMCE WYSIWYG editor into a Symfony2 project.

2692.9M24](/packages/stfalcon-tinymce-bundle)[codefog/contao-haste

haste extension for Contao Open Source CMS

42650.8k139](/packages/codefog-contao-haste)[spomky-labs/pwa-bundle

Progressive Web App Manifest Generator Bundle for Symfony.

6144.4k1](/packages/spomky-labs-pwa-bundle)[netgen/content-browser

Netgen Content Browser is a Symfony bundle that provides an interface which selects items from any kind of backend and returns the IDs of selected items back to the calling code.

14112.1k8](/packages/netgen-content-browser)[leapt/core-bundle

Symfony LeaptCoreBundle

2529.1k4](/packages/leapt-core-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
