网店技术 SEO 检查清单:Shopify 与 WooCommerce 必查项

Shopify 和 WooCommerce 网店的技术 SEO 检查项:noindex、robots.txt、站点地图、标题、H1、canonical 规范网址、Product 结构化数据、Open Graph 和图片替代文本。

FixReports 编辑团队阅读约需 5 分钟

网店的技术 SEO 检查清单要确认三件事:搜索引擎能抓取并索引您希望被找到的页面,能看懂每个页面是什么,并能在搜索结果中把它展示好。具体来说:没有误加的 noindex 规则,robots.txt 没有屏蔽重要页面,站点地图只列出规范网址,每个页面都有独立的标题和元描述,有一个清晰的 H1,canonical 标签把变体页和分类页产生的重复网址合并起来,Product 结构化数据有效,配有 Open Graph 标签,图片有描述性的替代文本,并且没有失效的内部链接。这些检查能消除技术障碍,但不能保证排名或流量。

要点

  • robots.txt 控制的是抓取,而不是索引。要让某个页面不出现在 Google 中,请使用 noindex,并且不要在 robots.txt 中屏蔽该页面,否则 Google 根本看不到这条规则(Google 搜索中心 (在新标签页中打开))。
  • 一个站点地图文件最多可包含 50,000 个网址,或未压缩时不超过 50 MB;Google 会忽略 <priority> 和 <changefreq>(Google 搜索中心 (在新标签页中打开))。
  • Google 表示页面中的标题(heading)数量没有理想值,但一个写明产品名称的 H1,对购物者和屏幕阅读器来说都是最清晰的主标题。
  • 商家信息要求提供产品名称、图片,以及一个嵌套的 Offer(而不是 AggregateOffer),其中价格大于零并注明币种(Google 搜索中心 (在新标签页中打开))。

Shopify 和 WooCommerce 默认处理了哪些工作?

Shopify 在平台和主题层面处理了大部分技术 SEO 基础工作,而 WooCommerce 网店的其中几项要依靠 WordPress 核心加上一款 SEO 插件来完成。

项目ShopifyWooCommerce(WordPress)
XML 站点地图/sitemap.xml,自动生成自 WordPress 5.5 起为 /wp-sitemap.xml,或使用 SEO 插件生成的站点地图
robots.txt自动生成;可通过 robots.txt.liquid 编辑WordPress 生成的虚拟文件,其中列出了核心站点地图
canonical 标签自动添加核心只在单个页面上添加
元描述每个产品“搜索引擎列表”中的字段SEO 插件或主题
Product 结构化数据主题通过 structured_data 过滤器输出WooCommerce 核心在产品页输出 JSON-LD
Open Graph 标签主题(Dawn:meta-tags.liquid)SEO 插件或主题
购物车和结账页在 robots.txt 中被禁止抓取由 WooCommerce 标记为 noindex

下文逐行给出详细说明和来源(截至 2026 年 10 月)。

如何确保网店页面能被索引?

页面返回 200 状态码、没有被 robots.txt 屏蔽、也没有 noindex 规则时,才能被索引。

noindex 规则可以放在 meta 标签或 HTTP 标头中,Google 不支持在 robots.txt 中使用它(Google (在新标签页中打开)):

<meta name="robots" content="noindex">
X-Robots-Tag: noindex

robots.txt 用于管理抓取工具的访问流量;被屏蔽的网址如果有其他页面链接过来,仍然可能出现在搜索结果中,只是没有描述(Google (在新标签页中打开))。Search Console 的“网页索引编制”报告 (在新标签页中打开)会列出每个未编入索引的网址及其原因,例如“已被‘noindex’标记排除”(URL marked ‘noindex’)。并非每个网址都需要被索引,但产品页和分类页需要被索引。

Shopify

默认的 robots.txt 会屏蔽后台、购物车、结账、账户和订单路径,以及与分类页内容重复的筛选(/collections/*+*)和排序(sort_by)分类网址。您可以通过 robots.txt.liquid 模板编辑它,但 Shopify 将此视为不受支持的自定义操作,并警告说出错可能让店铺失去全部流量(Shopify 帮助中心 (在新标签页中打开))。

要隐藏某个页面、博客文章或产品,可以把整数类型的元字段 seo.hidden 设为 1,这样它就会从站点地图、搜索引擎和店内搜索中隐藏;产品状态 Unlisted(不公开列出)也会让产品不出现在分类和推荐中(Shopify 帮助中心 (在新标签页中打开))。店铺设置了访问密码时,搜索引擎无法读取它的站点地图。

WooCommerce

检查 设置 > 阅读 > 对搜索引擎的可见性(Settings > Reading > Search engine visibility)。勾选“建议搜索引擎不索引本站点”后,WordPress(自 5.3 起)会在页面中添加 noindex, nofollow 的 robots meta 标签(WordPress.org (在新标签页中打开)),并关闭核心站点地图。如果网店是在测试站(staging)上搭建的,请确认上线时已取消勾选。WooCommerce 本身会把购物车、结账和“我的账户”页面标记为 noindex,并在“已收到订单”等端点发送 X-Robots-Tag: noindex(WooCommerce 源码 (在新标签页中打开)),这属于正常现象。

网店的 XML 站点地图应包含哪些内容?

站点地图只应列出您希望出现在搜索中的规范、可索引网址:产品页、分类页、内容页和博客文章。

Google 的规则是:每个文件最多 50,000 个网址或 50 MB,数量更多时使用站点地图索引文件,使用绝对网址,只列出希望在搜索结果中显示的网址,并且只有在准确时才填写 <lastmod>(Google (在新标签页中打开))。您可以在 Search Console 的“站点地图”报告中提交站点地图,或在 robots.txt 中引用它:

Sitemap: https://example.com/sitemap.xml

在 Shopify 上,每个域名都有一个自动生成的 sitemap.xml,它链接到产品、分类、博客和页面的子站点地图,并会随着您添加内容自动更新;每个国际域名都有各自的站点地图(Shopify 帮助中心 (在新标签页中打开))。

在 WooCommerce 上,WordPress 5.5 及更高版本会在 /wp-sitemap.xml 提供核心站点地图索引,并在 WordPress 的 robots.txt 中引用它,每个站点地图默认最多 2,000 个条目。Yoast SEO 等 SEO 插件会用自己的站点地图取而代之(Make WordPress Core (在新标签页中打开))。提交之前,请先确认实际生效的是哪一个站点地图。

产品标题和元描述应该怎么写?

为每个页面撰写一个独立、具有描述性的标题,以及一段概括页面内容的元描述,并把重要的词放在前面,因为 Google 会截断两者以适应屏幕。

Google 关于标题的建议是:标题要有描述性且简洁,避免关键词堆砌和重复的模板化文字,并用分隔符把网站名称放在开头或结尾。标题没有长度限制,但标题链接会按设备宽度截断(Google (在新标签页中打开))。Google 也可能根据其他文字生成标题链接,例如 H1 或 og:title。

对于摘要,Google 主要使用页面内容,只有当元描述能更准确地描述页面时才会采用它。Google 建议在其中加入价格或制造商等产品信息,并表示自动生成的描述只要易读且各不相同就没有问题(Google (在新标签页中打开))。

<title>Linen shirt, natural, relaxed fit | Example Store</title>
<meta name="description" content="Relaxed-fit shirt in European linen. Sizes XS to XXL, $68, free returns within 30 days.">
  • Shopify: 在每个产品的“搜索引擎列表”部分编辑 页面标题(Page title)、元描述(Meta description)和 URL 句柄(URL handle)(Shopify 帮助中心 (在新标签页中打开))。Shopify 的标题最多可填 70 个字符,建议约 60 个字符,描述则建议 160 个字符(Shopify 帮助中心 (在新标签页中打开))。
  • WooCommerce: WordPress 核心不会输出元描述(已在 7.1.3 版源码中核实),因此请使用 SEO 插件或主题来添加。

每个页面都必须只有一个 H1 吗?

Google 并不要求特定数量,但一个写明页面名称的 H1,对购物者、屏幕阅读器和搜索引擎来说都是最清晰的主标题。

Google 的 SEO 新手指南指出,标题(heading)没有理想的数量,标题的顺序对搜索也没有影响,不过语义化的顺序对屏幕阅读器有帮助(Google (在新标签页中打开))。Google 关于标题链接的指南建议让主标题成为页面上最醒目的文字,例如作为第一个可见的 <h1>。W3C 的教程补充说,标题传达的是页面的结构,应避免跳过标题级别(W3C WAI (在新标签页中打开))。

网店常见的问题有:每个页面都把徽标放在 H1 中,产品名称放在 <div> 或 H2 中,某个应用额外添加了第二个 H1,以及分类页没有 H1。

canonical 网址如何处理变体和分类产生的重复页面?

canonical 标签告诉 Google 在内容相同的多个网址中应索引哪一个,因此带变体参数的网址和带分类路径的网址都应指向同一个首选产品网址。

Google 把重定向和 rel="canonical" 视为强信号,把列入站点地图视为弱信号。请使用绝对网址,不要用 robots.txt 或 noindex 来指定规范网址(Google (在新标签页中打开))。对于通过 ?color=green 这类可选查询参数区分的变体,Google 建议把不带参数的网址设为规范网址。Google 会忽略 # 片段,因此变体需要使用路径或参数来区分;Google 还建议在可索引的页面上使用指向自身的 canonical,并让链接、站点地图和 canonical 标签中的网址保持一致(Google (在新标签页中打开))。

<link rel="canonical" href="https://example.com/products/linen-shirt">

如果 Google 没有采纳您的选择,“网页索引编制”报告会显示“重复网页,Google 选择的规范网页与用户指定的不同”(Duplicate, Google chose different canonical than user),这通常说明各种信号相互冲突。

如何为商家信息配置 Product 结构化数据?

添加 Product 标记,并嵌套一个与页面上价格和库存状态一致的 Offer,然后用 Google 的富媒体搜索结果测试进行检测。

对于用户无法直接购买的产品页,Google 使用产品摘要;对于可以直接购买的页面,则使用商家信息(Google (在新标签页中打开))。Google 通常推荐使用 JSON-LD(Google (在新标签页中打开))。商家信息要求提供 name、image,以及以 Offer 形式提供的 offers,其中 price 大于零,priceCurrency 采用 ISO 4217 格式。推荐属性包括 availability、gtin、brand、aggregateRating、shippingDetails 和 hasMerchantReturnPolicy(Google (在新标签页中打开))。对于变体,Google 支持使用带 hasVariant、variesBy 和 productGroupID 的 ProductGroup(Google (在新标签页中打开))。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Linen shirt, natural",
  "image": ["https://example.com/images/linen-shirt-1x1.jpg"],
  "sku": "LS-NAT-M",
  "brand": { "@type": "Brand", "name": "Example Store" },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/linen-shirt",
    "price": "68.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
</script>

只标记购物者能看到的内容;Google 不保证结构化数据一定会出现在搜索结果中(Google (在新标签页中打开))。

  • Shopify: {{ product | structured_data }} 会为没有变体的产品输出 Product,为有变体的产品输出 ProductGroup(Shopify (在新标签页中打开));Dawn 在产品版块中包含了它。如果评价类或 SEO 类应用也添加了自己的标记,请检查是否重复。
  • WooCommerce: 核心会在产品页输出 Product JSON-LD,包含 SKU、报价、有评价时的评分,以及在填写了 GTIN、UPC、EAN 或 ISBN 字段(WooCommerce 9.2 (在新标签页中打开) 新增)时的 GTIN。各变体价格不同的可变产品会输出 AggregateOffer 价格区间,除非网址选中了某一个变体(WooCommerce 源码 (在新标签页中打开)),因此请务必测试这类产品,因为商家信息需要的是 Offer。

对于退货,Google 也接受在标记中提供组织层级的退货政策,但 Merchant Center 或 Search Console 中的设置优先(Google (在新标签页中打开))。

产品页应该有哪些 Open Graph 标签?

产品页应包含 og:title、og:type、og:image 和 og:url,再加上 og:description 和 og:image:alt,这样分享出去的链接才能显示正确的标题和图片。

Open Graph 协议把前四个列为必需标签,把 og:url 定义为规范网址,并说明每个 og:image 都应配有 og:image:alt(ogp.me (在新标签页中打开))。

<meta property="og:type" content="product">
<meta property="og:title" content="Linen shirt, natural">
<meta property="og:url" content="https://example.com/products/linen-shirt">
<meta property="og:image" content="https://example.com/images/linen-shirt-1200x630.jpg">
<meta property="og:image:alt" content="Natural linen shirt on a hanger">
<meta property="og:description" content="Relaxed-fit shirt in European linen.">

为什么产品图片的替代文本很重要?

替代文本(alt 文本)告诉搜索引擎和屏幕阅读器用户产品图片展示的是什么,Google 会把它与计算机视觉和页面内容结合起来使用。

Google 的图片指南要求替代文本实用、具体,不要堆砌关键词;它给出的最佳示例是“正在玩捡球游戏的斑点狗幼犬”(Dalmatian puppy playing fetch)。Google 不会索引 CSS 背景图片,因此产品照片应放在 <img> 元素中(Google (在新标签页中打开))。对网店来说,替代文本应写成“本色亚麻衬衫,背面视图”这样,而不是“衬衫 衬衫 亚麻 购买”。

如何查找并修复失效的内部链接?

抓取您的网店,列出返回 4xx 错误的内部链接,然后逐一更新链接,或把旧网址 301 重定向到最接近的有效页面。

Google 会抓取以带 href 的 <a> 元素构建的链接,并建议每个重要页面都至少从另一个页面获得链接(Google (在新标签页中打开))。返回 4xx 状态码的网址不会被编入索引,已编入索引的也会被移除;301 是强重定向信号,302 是弱信号(Google (在新标签页中打开))。产品被删除或改名、句柄(handle)变更或分类下线时,网店的链接就会失效,而旧链接还留在菜单、产品描述和博客文章中。

  • Shopify: 进入 内容 > 菜单 > 查看 URL 重定向 > 创建 URL 重定向(Content > Menus > View URL redirects > Create URL redirect)。Shopify 只会重定向确实已失效的网址(Shopify 帮助中心 (在新标签页中打开))。
  • WooCommerce: 每次修改别名(slug)或固定链接设置时,都要添加服务器规则或使用重定向插件。

免费扫描大约一分钟就能标出其中许多问题。SEO 修复报告会在最多 25 个页面上检查标题、元描述、H1、canonical、noindex、robots.txt、站点地图、Product 结构化数据、Open Graph、替代文本和失效的内部链接,并提供适用于您所用平台的修复方法。

常见问题

修复技术 SEO 问题能保证排名提升吗?

不能。这些修复消除的是页面无法被抓取、索引或理解的原因;排名仍然取决于相关性和许多其他因素。

每个产品变体都应该有自己的可索引网址吗?

这取决于变体是如何构建的。如果所有变体共用一个页面、只通过可选查询参数区分,Google 建议把不带参数的网址设为规范网址;如果每个变体都有自己的页面,Google 的变体指南会把每个页面分开对待。

为什么我的标记有效,产品却没有显示富媒体搜索结果?

Google 不保证有效的结构化数据一定会显示为富媒体搜索结果。请检查标记是否与页面上可见的内容一致,是否使用了价格大于零的 Offer,以及是否通过了富媒体搜索结果测试。

应该在 robots.txt 中屏蔽筛选后的分类页吗?

在 Shopify 上,默认的 robots.txt 已经禁止抓取筛选和排序后的分类网址,因为它们与分类页内容重复。如果您编辑 robots.txt.liquid,除非有明确的理由需要更改,否则请保留这些规则。

参考资料