Search by

nowo-tech / generative-seo-kit-bundle

HecFranco

Symfony Generative Engine Optimization kit (not geolocation): AI crawler robots policy via SeoKit, llms.txt, citation index and audit for FrankenPHP, php-fpm and Nginx.

Package info

github.com/nowo-tech/GenerativeSeoKitBundle

Documentation

Type:symfony-bundle

pkg:composer/nowo-tech/generative-seo-kit-bundle

Statistics

Installs: 4

Dependents: 0

Suggesters: 1

Stars: 0

Open Issues: 0

v1.2.0 2026-10-06 12:23 UTC

This package is auto-updated.

Last update: 2026-10-06 12:24:30 UTC


README

CI Packagist Version Packagist Downloads License PHP Symfony Coverage

⭐ Found this useful? Give it a star on GitHub! It helps us maintain and improve the project.

Symfony Generative Engine Optimization kit (not geolocation): AI crawler robots.txt groups via SeoKitBundle, /llms.txt, citation index, and nowo:generative-seo:audit for FrankenPHP, php-fpm and Nginx.

FrankenPHP Friendly Worker Mode

This bundle is FrankenPHP worker mode friendly.

Table of contents

Features

  • ✅ Depends on SeoKit — does not fork head tags, sitemap, or canonical; implements GeoRobotsGroupsProviderInterface
  • ✅ AI crawler policy — default allow for inference/search bots (GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-User, Claude-SearchBot, PerplexityBot); default disallow for training-oriented agents (Google-Extended, Applebot-Extended, CCBot, Bytespider, anthropic-ai)
  • ✅ llms.txt — /llms.txt and /.well-known/llms.txt as text/plain; optional sections, ## Optional, and opt-in /llms-full.txt
  • ✅ Citation index — YAML citations, citation_routes, plus tagged CitationSourceProviderInterface
  • ✅ Audit CLI — nowo:generative-seo:audit (--lenient for warn-only)
  • ✅ FrankenPHP-ready demo — single-container Symfony 8 demo

FrankenPHP: Demos use a single PHP service (FrankenPHP, no nginx). With APP_ENV=dev (default), the Docker entrypoint swaps in Caddyfile.dev when FRANKENPHP_MODE=classic. The baked-in production Caddyfile can use worker mode (FRANKENPHP_MODE=worker, default); see docs/DEMO-FRANKENPHP.md. Access the demo at http://localhost:PORT (see demo/README.md and .env.example).

Installation

composer require nowo-tech/generative-seo-kit-bundle

Register the bundle in config/bundles.php (Flex does this automatically). SeoKitBundle must also be registered:

Nowo\SeoKitBundle\SeoKitBundle::class => ['all' => true],
Nowo\GenerativeSeoKitBundle\GenerativeSeoKitBundle::class => ['all' => true],

Requirements

  • PHP >= 8.2, < 8.6
  • Symfony 7.4+ or 8.x
  • nowo-tech/seo-kit-bundle ^1.11

Documentation

Additional documentation

Version information

Version PHP Symfony Status
1.2.x >= 8.2 7.4 – 8.1+ Current
1.1.x >= 8.2 7.4 – 8.1+ Maintained
1.0.x >= 8.2 7.4 – 8.1+ Initial

Demos

make -C demo up-symfony8   # http://localhost:8070 (default PORT)

See docs/DEMO-FRANKENPHP.md.

Demo home: llms.txt, robots.txt and sitemap links

Tests and coverage

make test
make test-coverage
  • Tests: PHPUnit (unit + integration)
  • PHP: 100% lines (make test-coverage)

License

MIT — see LICENSE.