Schema.org 是一个由搜索引擎(如 Google、Bing 等)支持的词汇表,用于在网页上添加结构化数据。这些数据可以帮助搜索引擎更好地理解网页内容,并在搜索结果中显示丰富的摘要信息。
Laravel 是一个流行的 PHP 框架,提供了多种方式来管理视图和模板。在 Laravel 中包含 Schema.org 结构化数据可以通过多种方式实现,包括视图组件、Blade 模板继承等。
Schema.org 提供了多种类型的数据标记,包括但不限于:
Organization
:公司、机构等组织信息。Person
:个人相关信息。Product
:产品信息。Event
:事件信息。Article
:文章信息。适用于需要在多个页面上添加相同结构化数据的场景,例如:
<!-- resources/views/layouts/base.blade.php -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ $title }}</title>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "{{ config('app.name') }}",
"url": "{{ url('/') }}"
}
</script>
</head>
<body>
@yield('content')
</body>
</html>
<!-- resources/views/pages/home.blade.php -->
@extends('layouts.base')
@section('title', 'Home Page')
@section('content')
<div itemscope itemtype="https://schema.org/WebPage">
<h1 itemprop="name">Welcome to Our Website</h1>
<p itemprop="description">This is the home page.</p>
</div>
@endsection
// app/Http/Views/Components/Schema.php
namespace App\Http\View\Components;
use Illuminate\View\Component;
class Schema extends Component
{
public $type;
public $data;
public function __construct($type, $data)
{
$this->type = $type;
$this->data = $data;
}
public function render()
{
return view('components.schema');
}
}
<!-- resources/views/components/schema.blade.php -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "{{ $type }}",
@json($data)
}
</script>
<!-- resources/views/pages/home.blade.php -->
<x-schema type="WebPage" :data="[
'name' => 'Welcome to Our Website',
'description' => 'This is the home page.'
]" />
原因:
解决方法:
<head>
或 <body>
标签内。通过以上方法,你可以在 Laravel 项目中轻松地在多个页面上包含 Schema.org 结构化数据,从而提升网站的 SEO 效果。
领取专属 10元无门槛券
手把手带您无忧上云