If you've been thinking about how your products show up in AI-generated answers, laravel-aigeo 经过 Hitesh Zope is worth a look. It brings Generative Engine Optimization (GEO) tooling directly into your Laravel app, giving you structured metadata, AI-readable feeds, and an audit dashboard without a lot of glue code.
The HasGeoProfile Trait
The entry point is the
HasGeoProfile
trait, which you add to any Eloquent model you want visible to AI crawlers — a product, an article, a listing. You define a
geoProfile()
method that maps your model's fields to the schema the package uses for JSON-LD injection:
使用
Hszope\LaravelAigeo\Traits\HasGeoProfile
;班级
产品
延伸
模型{
使用
HasGeoProfile
;
民众
功能
geoProfile
()
:
大批{
返回
[
'姓名'
=>
$this
->
姓名,
'描述'
=>
$this
->
描述,
'价格'
=>
$this
->
价格,
'sku'
=>
$this
->
sku,
'图像'
=>
$this
->
image_url,
'url'
=>
网址
(
"/products/{
$this
->
ID
}”
),
'等级'
=>
$this
->
平均评分
??
无效的
,
'review_count'
=>
$this
->
review_count
??
无效的
,
'货币'
=>
美元
,
'有存货'
=>
真的
,
'attributes'
=>
[
'品牌'
=>
$this
->
品牌
->
姓名,],];}}
Once the trait is in place, the package knows how to pull structured data from that model for schema generation and feed output.
Injecting JSON-LD with a Blade Component
With your model ready, you drop the
<x-geo-head>
component into your layout's
<head>
. It handles generating and injecting the JSON-LD
<script>
tag for that page:
<
头
><
x-geo-head
:模型
=
"$product"
/></
头
>
The output is a structured JSON-LD block that describes your content in a format LLMs can parse when crawling your site.
llms.txt and the AI Product Feed
Two scheduled Artisan commands keep your AI-crawler-facing files up to date. The
geo:llms-txt
command generates a
llms.txt
file — a plain-text index that guides AI crawlers through your site's content. The
geo:feed
command outputs an
ai-product-feed.json
— a JSON feed structured specifically for LLM indexing rather than traditional RSS or sitemap formats.
Wire them up in your schedule:
使用
照明\支持\立面\日程安排
;日程
::
命令
(
'geo:llms-txt'
)
->
日常的
();日程
::
命令
(
'geo:feed'
)
->
日常的
();
GEO Scoring Dashboard
The package ships with a dashboard at
/geo
that gives each of your registered models a 0–100 score based on AI-signal completeness — things like whether descriptions are filled in, schema fields are present, and citation-worthy data exists. You configure which models appear in the audit view via
config/geo.php
:
'仪表板'
=>
[
‘已启用’
=>
真的
,
'小路'
=>
'/geo'
,
'中间件'
=>
[
'网络'
,
‘授权’
],
“模型”
=>
[[
'模型'
=>
\App\Models\Product
::班级
,
'标签'
=>
'Products'
],[
'模型'
=>
\App\Models\Article
::班级
,
'标签'
=>
'Articles'
],],],
Make sure to lock this down with
auth
or your admin middleware before deploying.
You can find the full source and documentation on GitHub 。




