PHPackages                             programmerhasan/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. programmerhasan/seo

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

programmerhasan/seo
===================

Lightweight, modern SEO toolkit for Laravel, Inertia, Schema.org, sitemaps, robots, OpenGraph, Twitter Cards and optional AI SEO.

v1.0.0(2mo ago)24MITPHPPHP ^8.2|^8.3|^8.4CI passing

Since May 15Pushed 2mo agoCompare

[ Source](https://github.com/ProgrammerHasan/seo)[ Packagist](https://packagist.org/packages/programmerhasan/seo)[ RSS](/packages/programmerhasan-seo/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (9)Versions (2)Used By (0)

programmerhasan/seo
===================

[](#programmerhasanseo)

 [![programmerhasan/seo](https://raw.githubusercontent.com/programmerhasan/seo/master/art/banner.webp)](https://raw.githubusercontent.com/programmerhasan/seo/master/art/banner.webp)

Modern AI-Powered SEO Toolkit for Laravel, Inertia.js &amp; Modern Web Apps.

 [ ![Latest Version](https://camo.githubusercontent.com/77d1e40b6f59a9a745da8f3c5127dab712b02798beff0e2b1ef4896f017830b4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f70726f6772616d6d6572686173616e2f73656f2e737667) ](https://packagist.org/packages/programmerhasan/seo) [ ![Downloads](https://camo.githubusercontent.com/f4ee3ca80a399ad802010dd26bfe3b1254ce3ad3dbb0e08136a4bb1eeb1d42cc/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f70726f6772616d6d6572686173616e2f73656f2e737667) ](https://packagist.org/packages/programmerhasan/seo) [ ![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667) ](LICENSE.md)

---

Features
========

[](#features)

- Meta Tags
- OpenGraph
- Twitter/X Cards
- JSON-LD Schema
- Multi Schema Builder
- Canonical &amp; hreflang Links
- Inertia.js SEO Payloads
- React/Vue SSR Helpers
- SSR Support
- Sitemap Generator
- Image Sitemap
- Video Sitemap
- News Sitemap
- Robots.txt Generator
- SEO Audit Command
- Performance SEO Helpers
- Auto Model SEO
- Blade Components
- Optional AI SEO Drivers
- Laravel Auto Discovery
- Livewire Support
- Filament Support
- Nova Support
- Developer Friendly Fluent API

---

Installation
============

[](#installation)

```
composer require programmerhasan/seo
```

Publish config:

```
php artisan vendor:publish --tag=seo-config
```

Publish views:

```
php artisan vendor:publish --tag=seo-views
```

---

Quick Usage
===========

[](#quick-usage)

```
use ProgrammerHasan\Seo\Facades\Seo;

Seo::title('Laravel SEO Package')
    ->description('A lightweight SEO toolkit for Laravel.')
    ->canonical(url()->current())
    ->image(asset('images/og.jpg'));
```

Render SEO tags:

```

    {!! Seo::generate() !!}

```

Or use the Blade component:

```

```

---

Fluent Builder API
==================

[](#fluent-builder-api)

```
$html = Seo::make()
    ->title('Best Laravel SEO Toolkit')
    ->description('Modern SEO package for Laravel, Inertia and APIs.')
    ->canonical('https://example.com/packages/seo')
    ->image('https://example.com/images/seo-og.jpg')
    ->article(published: now()->toAtomString())
    ->generate();
```

---

Meta Tags
=========

[](#meta-tags)

```
Seo::title('Page title');
Seo::description('Page description');
Seo::keywords(['laravel', 'seo', 'schema']);
Seo::canonical('https://example.com/page');
Seo::author('Programmer Hasan');
Seo::robots('index, follow');

Seo::noIndex();
Seo::noFollow();
```

---

OpenGraph
=========

[](#opengraph)

```
Seo::title('Product page')
    ->description('Product description')
    ->image('https://example.com/product.jpg')
    ->type('product')
    ->og('locale', 'en_US')
    ->og('site_name', 'Example Store');
```

---

Twitter/X Cards
===============

[](#twitterx-cards)

```
Seo::twitter('card', 'summary_large_image')
    ->twitter('site', '@yourhandle')
    ->twitter('creator', '@programmerhasan');
```

---

JSON-LD Schema
==============

[](#json-ld-schema)

```
$schema = Seo::schema();

Seo::make()
    ->title('SEO Toolkit')
    ->schema($schema->product(
        name: 'SEO Toolkit',
        description: 'Laravel SEO package',
        image: 'https://example.com/product.jpg',
        sku: 'SEO-001',
        offers: $schema->offer('49', 'USD')
    ))
    ->generate();
```

Available Schema Helpers
------------------------

[](#available-schema-helpers)

```
Seo::schema()->organization('Example', 'https://example.com');
Seo::schema()->website('Example', 'https://example.com');
Seo::schema()->person('Programmer Hasan');
Seo::schema()->article('Title', 'https://example.com/post');
Seo::schema()->blogPosting('Title', 'https://example.com/post');
Seo::schema()->newsArticle('Title', 'https://example.com/news');
Seo::schema()->product('Product name');
Seo::schema()->offer('49', 'USD');
Seo::schema()->aggregateRating(4.8, 120);
Seo::schema()->review('Great product', 'Hasan', 5);
Seo::schema()->faq([['question' => 'Question?', 'answer' => 'Answer.']]);
Seo::schema()->breadcrumb([['name' => 'Home', 'url' => '/']]);
Seo::schema()->event('Laravel Meetup', '2026-05-12');
Seo::schema()->course('Laravel SEO', 'Learn SEO for Laravel');
Seo::schema()->howTo('How to install', ['Install package', 'Publish config']);
Seo::schema()->recipe('Recipe name', ['Ingredient'], ['Step 1']);
Seo::schema()->videoObject('Video title', 'Description', 'thumb.jpg', '2026-05-12');
Seo::schema()->softwareApplication('App name');
```

---

Inertia.js SEO
==============

[](#inertiajs-seo)

```
return Inertia::render('Posts/Show', [
    'post' => $post,
    'seo' => Seo::make()
        ->title($post->title)
        ->description($post->excerpt)
        ->canonical(route('posts.show', $post))
        ->forInertia(),
]);
```

React example:

```
import { Head } from '@inertiajs/react'

export default function Show({ post, seo }) {
  return (

        {seo.title}

      {post.title}

  )
}
```

---

Auto Model SEO
==============

[](#auto-model-seo)

```
Seo::fromModel($post)->generate();
```

Supported model fields:

- seo\_title
- title
- name
- seo\_description
- description
- excerpt
- seo\_image
- image\_url
- image

---

Canonical, hreflang &amp; Pagination
====================================

[](#canonical-hreflang--pagination)

```
Seo::autoCanonical();

Seo::alternate('en', 'https://example.com/en/page');
Seo::alternate('bn', 'https://example.com/bn/page');
Seo::alternate('x-default', 'https://example.com/page');

Seo::pagination($posts);
```

---

Sitemaps
========

[](#sitemaps)

This package supports dynamic sitemaps, static sitemap files, image/video/news sitemaps, model-based URLs, and sitemap indexes.

Basic example:

```
$xml = Seo::sitemap()
    ->add('https://example.com')
    ->add('https://example.com/about')
    ->image('https://example.com/post', [
        'https://example.com/image.jpg'
    ])
    ->video('https://example.com/video', [
        ['title' => 'Demo video']
    ])
    ->news('https://example.com/news', [
        'name' => 'Example News',
        'language' => 'en',
        'title' => 'News title',
    ])
    ->toXml();
```

Save sitemap:

```
Seo::sitemap()
    ->add('https://example.com')
    ->save(public_path('sitemap.xml'));
```

Sitemap index:

```
Seo::sitemap()
    ->index('https://example.com/sitemap-posts.xml')
    ->index('https://example.com/sitemap-products.xml')
    ->save(public_path('sitemap.xml'));
```

Generate via command:

```
php artisan seo:sitemap
```

👉 Full documentation: [docs/sitemap.md](./docs/sitemap.md)
----------------------------------------------------------

[](#-full-documentation-docssitemapmd)

Robots.txt
==========

[](#robotstxt)

```
$content = Seo::robots()
    ->allow('/')
    ->disallow('/admin')
    ->sitemap('https://example.com/sitemap.xml')
    ->toString();
```

Command:

```
php artisan seo:robots
```

---

Performance SEO
===============

[](#performance-seo)

```
Seo::preload('/fonts/app.woff2', as: 'font', type: 'font/woff2', crossorigin: true);

Seo::preconnect('https://fonts.googleapis.com');

Seo::dnsPrefetch('https://cdn.example.com');
```

---

Optional AI SEO
===============

[](#optional-ai-seo)

```
Seo::ai()->generate($content);

Seo::ai()->improve($content);

Seo::ai()->analyze($content, 'laravel seo');
```

OpenAI
------

[](#openai)

```
SEO_AI_DRIVER=openai
SEO_OPENAI_API_KEY=your-api-key
SEO_OPENAI_MODEL=gpt-4o-mini
```

Gemini
------

[](#gemini)

```
SEO_AI_DRIVER=gemini
SEO_GEMINI_API_KEY=your-api-key
SEO_GEMINI_MODEL=gemini-1.5-flash
```

Ollama
------

[](#ollama)

```
SEO_AI_DRIVER=ollama
SEO_OLLAMA_URL=http://localhost:11434
SEO_OLLAMA_MODEL=llama3
```

---

Commands
========

[](#commands)

```
php artisan seo:install
php artisan seo:sitemap
php artisan seo:robots
php artisan seo:audit
```

---

Testing
=======

[](#testing)

```
composer install
composer test
composer format:test
composer analyse
```

Run all quality checks:

```
composer ci
```

---

Version Support
===============

[](#version-support)

PackageSupportedPHP8.2, 8.3, 8.4Laravel10, 11, 12---

Documentation
=============

[](#documentation)

Full docs are available in the `docs/` directory.

- [Installation](./docs/installation.md)
- [Configuration](./docs/configuration.md)
- [Basic Usage](./docs/basic-usage.md)
- [Meta Tags](./docs/meta-tags.md)
- [OpenGraph](./docs/open-graph.md)
- [Twitter Cards](./docs/twitter-cards.md)
- [JSON-LD Schema](./docs/json-ld.md)
- [Sitemaps](./docs/sitemap.md)
- [Robots.txt](./docs/robots.md)
- [Inertia.js](./docs/inertia.md)
- [AI SEO](./docs/ai.md)
- [Blade Components](./docs/blade-components.md)
- [Testing](./docs/testing.md)

---

Security
========

[](#security)

Please see [SECURITY.md](SECURITY.md).

---

Contributing
============

[](#contributing)

Please see [CONTRIBUTING.md](CONTRIBUTING.md).

---

License
=======

[](#license)

MIT License.

---

Author
======

[](#author)

Programmer Hasan

- GitHub:
- LinkedIn:
- Website:

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance86

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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

Unknown

Total

1

Last Release

70d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/03ed5ae51f44ab3cdd41a21a61c02d5f8d9d33eafdbc9ac57b0de1bd345d5b86?d=identicon)[ProgrammerHasan](/maintainers/ProgrammerHasan)

---

Top Contributors

[![ProgrammerHasan](https://avatars.githubusercontent.com/u/44167334?v=4)](https://github.com/ProgrammerHasan "ProgrammerHasan (20 commits)")

---

Tags

composer-packageinertiajsjsonldlaravellaravel-packageopengraphphpseossrlaravelJSON-LDinertiaSitemapseorobotsopengraphschema-orgtwitter cardsai-seo

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/programmerhasan-seo/health.svg)

```
[![Health](https://phpackages.com/badges/programmerhasan-seo/health.svg)](https://phpackages.com/packages/programmerhasan-seo)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.3M347](/packages/psalm-plugin-laravel)[api-platform/laravel

API Platform support for Laravel

58174.6k17](/packages/api-platform-laravel)[larament/seokit

A complete SEO package for Laravel, covering everything from meta tags to social sharing and structured data.

452.8k](/packages/larament-seokit)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.4k](/packages/tomshaw-electricgrid)

PHPackages © 2026

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