You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Next-SEO的LocalBusiness schema中添加parentOrganization?

在Next-SEO中为LocalBusiness Schema添加parentOrganization字段

问题背景

我需要将现有的LocalBusiness Schema迁移到使用Next-SEO的新站点,但Next-SEO存在严格限制,自定义属性会被自动移除。希望在LocalBusiness Schema中加入parentOrganization字段,且不想单独添加独立的Organization Schema,避免搜索引擎产生混淆。

旧Schema如下:

{
  "@context": "http://schema.org",
  "@type": "LocalBusiness",
  "name": "some name",
  "description": "some description",
  "openingHours": "24 hours",
  "currenciesAccepted": "USD",
  "paymentAccepted": "Credit Card",
  "image": "some logo",
  "telephone": "some phone",
  "openingHoursSpecification":[{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": [
      "Sunday",
      "Monday",
      "Tuesday",
      "Wednesday",
      "Thursday",
      "Friday",
      "Saturday"
    ],
    "opens": "00:00",
    "closes": "23:59"
  }],
  "parentOrganization": {
    "@type": "Organization",
    "name": "org name",
    "award": "A+ Rating from the Better Business Bureau",
    "logo": "org logo",
    "url": "org url",
    "member": {
      "@type": "Organization",
      "name": "Better Business Bureau"
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "515"
  },
  "address": "some address",
  "priceRange": "$99"
}

解决方案

1. 手动注入完整Schema(推荐)

跳过Next-SEO的内置Schema生成逻辑,直接在页面的Head组件中插入包含parentOrganization的完整结构化数据脚本,完全避免Next-SEO的字段过滤限制。

代码示例:

import Head from 'next/head';

export default function YourPage() {
  // 定义包含parentOrganization的完整LocalBusiness Schema
  const localBusinessSchema = {
    "@context": "http://schema.org",
    "@type": "LocalBusiness",
    "name": "some name",
    "description": "some description",
    "openingHours": "24 hours",
    "currenciesAccepted": "USD",
    "paymentAccepted": "Credit Card",
    "image": "some logo",
    "telephone": "some phone",
    "openingHoursSpecification":[{
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Sunday",
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday",
        "Saturday"
      ],
      "opens": "00:00",
      "closes": "23:59"
    }],
    "parentOrganization": {
      "@type": "Organization",
      "name": "org name",
      "award": "A+ Rating from the Better Business Bureau",
      "logo": "org logo",
      "url": "org url",
      "member": {
        "@type": "Organization",
        "name": "Better Business Bureau"
      }
    },
    "aggregateRating": {
      "@type": "AggregateRating",
      "ratingValue": "4.8",
      "reviewCount": "515"
    },
    "address": "some address",
    "priceRange": "$99"
  };

  return (
    <>
      <Head>
        {/* 插入结构化数据脚本 */}
        <script
          type="application/ld+json"
          dangerouslySetInnerHTML={{ __html: JSON.stringify(localBusinessSchema) }}
        />
      </Head>
      {/* 页面主体内容 */}
    </>
  );
}

2. 扩展Next-SEO类型定义(TypeScript项目可选)

如果使用TypeScript,可以扩展Next-SEO的LocalBusiness类型定义,让parentOrganization字段通过类型检查。但注意:部分Next-SEO版本仍会过滤非预设字段,因此仅当测试确认字段未被移除时使用。

类型扩展示例:

import { LocalBusiness } from 'next-seo';

declare module 'next-seo' {
  interface LocalBusiness {
    parentOrganization?: {
      "@type": string;
      name: string;
      award?: string;
      logo?: string;
      url?: string;
      member?: {
        "@type": string;
        name: string;
      };
    };
  }
}

之后在Next-SEO配置中传入parentOrganization字段即可,但需验证最终渲染的HTML是否保留该字段。


内容的提问来源于stack exchange,提问作者james emanon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:10:41