- Can I install kunstmaan/seo-bundle in a Laravel app?
- Not practically, even though Composer may fetch the files. It is a Symfony bundle with a DependencyInjection extension, Doctrine entities, and Sonata/Kunstmaan admin classes that expect a Symfony kernel and the Kunstmaan CMS stack. Nothing autoloads or runs inside Laravel's service container, and the supported configuration is the full Kunstmaan CMS. A small internal port is the realistic route.
- Does kunstmaan/seo-bundle support Laravel 10 or 11?
- No. The bundle is PHP 5.3-era code with Doctrine ORM 2.x annotations, and its last release was in April 2014. It has no Laravel service provider, config publishing, Eloquent models, or Blade integration. Do not expect it to run on Laravel 10 or 11 without a rewrite.
- Is kunstmaan/seo-bundle abandoned or still maintained?
- Treat it as abandoned. The last tagged release was 17 April 2014, which is roughly 11 years stale, with about 24 stars and no known dependents. There is no security policy and no maintained branch for PHP 8 or Symfony 5 and later. Use it as a historical reference for SEO field ideas, not as a production dependency.
- What features does kunstmaan/seo-bundle provide for SEO?
- It adds SEO, OpenGraph, and metadata fields to Kunstmaan CMS content entities, plus a free-text custom header field and admin integration. It also provides sitemap and robots helpers tied to that CMS stack. The reusable value is the editor-facing field taxonomy and UX concept, not the Symfony code. Modern essentials such as canonical URLs, JSON-LD, hreflang, and multi-locale metadata are not handled.
- How do I add SEO meta tags to Laravel models if this bundle is Symfony-only?
- Port the concept rather than the code. Create a polymorphic seo_metadata table with metadatable_type and metadatable_id plus title, description, canonical, robots, OpenGraph, and Twitter columns, then add a Seoable trait and a Blade component that renders tags in the head section. A scoped MVP is typically 3 to 5 engineering days before admin UI and sanitization work. This keeps the Laravel architecture clean and avoids Symfony and Doctrine dependencies.
- Is the custom header field in kunstmaan/seo-bundle safe from XSS?
- No, treat that field as an anti-pattern. The advertised free-text custom header information is a stored XSS and header-injection vector if rendered unescaped. In a Laravel port, allowlist only safe meta and link tags, or run the value through an HTML purifier. Never render arbitrary editor-supplied HTML directly in the page head.
- Does kunstmaan/seo-bundle generate sitemaps and robots.txt for Laravel?
- Not for Laravel. Its sitemap and robots configuration are Symfony and Kunstmaan CMS features wired to that stack's routing and admin. In Laravel, use a maintained sitemap package or a custom route, and serve robots.txt from a route or static file. Metadata rendering should be handled separately by your own service or Blade component.
- Which SEO fields should I copy from the Kunstmaan SEO bundle into Laravel?
- Copy the editor-facing taxonomy only: title, meta description, canonical, robots, OpenGraph overrides, Twitter card fields, and a sanitized custom head field. Keep keywords optional because major search engines ignore the meta keywords tag. Drop Metriweb tags and unrestricted free-text headers, which encode 2014 practice. Add JSON-LD, hreflang, and sitemap support for modern requirements.
- How do I build an SEO admin UI in Laravel for editors?
- Use a Filament v3 form section or Nova field group with title, description, canonical, robots, and an OpenGraph repeater, gated behind a permission. Add validation and an allowlisted editor for JSON-LD instead of raw HTML. A Blade component then renders stored values with defaults and per-model overrides. This mirrors the Kunstmaan editor experience without adopting the Symfony bundle.
- What are the alternatives to kunstmaan/seo-bundle for Laravel SEO?
- For metadata, maintained Laravel options include artesaos/seotools, while spatie/laravel-sitemap covers sitemap generation. Filament or Nova can provide the editor UI, and a custom polymorphic metadata table is a good fit when you need full control. For a CMS-driven site, building a roughly 400-line internal package is often cheaper than adapting an abandoned Symfony bundle.