新网站在搜索引擎完全搜不到怎么优化?(二)

上一篇,我对刚上线的网站做了第一次搜索收录排查。

网站是:

聆机智能制造业AI工具箱

地址:

https://ai.linkede.cn

这个网站主要面向制造业质量、设备、生产和工艺人员,用于生成 8D 报告、SOP 作业指导书、设备点检表、生产日报和班组交接班记录等常用文档。

上次检查确认了几件事:

  • 模拟百度蜘蛛访问首页,返回 HTTP 200

  • Nginx 没有直接拦截 Baiduspider

  • Next.js 返回的原始 HTML 中包含完整中文正文

  • 百度蜘蛛能够读取"聆机智能""8D报告""SOP""设备点检表"等内容

  • 页面中没有发现 noindex

这说明网站的基础访问和服务端渲染没有明显问题。

不过,可能是项目一开始立项定的名字和最终上线时定的名字不一样。

在检查首页原始 HTML 时,我发现页面标题与产品正式名称并不一致。

这篇记录标题的检查、代码修改、重新部署和生产环境验证过程。


一、先检查百度蜘蛛看到的首页标题

我先模拟百度蜘蛛访问首页,并将完整 HTML 保存到本地:

bash 复制代码
curl -A "Baiduspider" -sL https://ai.linkede.cn/ \
> baiduspider-homepage.html

然后从 HTML 中提取 <title>

bash 复制代码
grep -oE "<title>[^<]*</title>" baiduspider-homepage.html

实际输出为:

html 复制代码
<title>聆机智能 AI 文档生成工具</title>

这个结果说明,首页标题已经由 Next.js 在服务端生成。

百度蜘蛛请求页面时,可以直接从原始 HTML 中读取标题,不需要等浏览器执行 JavaScript。

因此,当前的问题并不是"没有 title",而是标题与产品正式名称不统一。

网站对外使用的名称是:

聆机智能制造业AI工具箱

但原来的页面标题是:

聆机智能 AI 文档生成工具

两者意思接近,但并不是同一个完整名称。

我们内部运营定下来产品名称后,要求在以下位置保持一致:

  • 网站首页

  • 浏览器标题

  • 首页 H1

  • 页面描述

  • 公司主站

  • 公众号文章

  • CSDN文章

  • 小红书内容

  • 对外宣传资料

因为如果不同地方分别使用"AI文档生成工具""制造业AI工具箱""聆机智能工具箱",用户不容易形成记忆,搜索引擎也需要更多时间理解这些名称之间的关系。


二、重新确定首页标题

首先根据运营需要,首页标题定为:

聆机智能制造业AI工具箱 - 8D报告、SOP、点检表在线生成

对应的 HTML 为:

html 复制代码
<title>聆机智能制造业AI工具箱 - 8D报告、SOP、点检表在线生成</title>

这个标题由两部分组成。

前半部分是完整产品名称:

聆机智能制造业AI工具箱

后半部分说明网站的主要用途:

8D报告、SOP、点检表在线生成

相比原来的"AI文档生成工具",新标题更具有品牌效应和具体。

用户在搜索结果中看到标题后,也可以更快判断网站是否和自己的工作需求有关。


三、首页标题不要堆太多关键词

有时候做 SEO 时,很容易把标题写成下面这样:

复制代码
8D报告生成器_SOP生成器_设备点检表生成器_AI文档_AI办公_制造业AI工具

看起来覆盖了很多词,但实际效果未必更好。

首先,这种标题可读性较差。

用户在搜索结果中看到一串关键词,很难快速判断网站的定位,也容易降低可信度。

其次,首页不需要承接所有细分关键词。

首页主要负责介绍品牌和整体产品定位。具体工具页面可以分别设置独立标题。

例如:

8D报告生成器 - 聆机智能制造业AI工具箱
SOP作业指导书生成器 - 聆机智能制造业AI工具箱
设备点检表生成器 - 聆机智能制造业AI工具箱

这样比把所有词都塞进首页标题更清楚。


四、检查 Next.js 中的标题配置位置

我们这个项目使用的是 Next.js。

Next.js 项目中的标题可能配置在多个位置,常见文件包括:

  • app/layout.tsx
  • src/app/layout.tsx
  • app/page.tsx
  • src/app/page.tsx

我先在项目目录中搜索旧标题和 metadata 配置:

bash 复制代码
grep -RniE "聆机智能 AI 文档生成工具|generateMetadata|export const metadata" \
app src pages 2>/dev/null

搜索时重点关注:

layout.tsx

page.tsx

generateMetadata

next/head

因为 Next.js 中可能同时存在布局级 metadata 和页面级 metadata。

如果首页单独设置了 metadata,它可能会覆盖根布局中的标题。


五、为什么要检查 layout.tsx 和 page.tsx

Next.js 的 metadata 可能存在覆盖关系。

例如根布局中配置:

javascript 复制代码
export const metadata: Metadata = {
  title: "聆机智能制造业AI工具箱",
};

但首页 page.tsx 中又配置:

javascript 复制代码
export const metadata: Metadata = {
  title: "聆机智能 AI 文档生成工具",
};

这时首页最终输出的标题,仍然可能是:

复制代码
聆机智能 AI 文档生成工具

因此,不能只修改一个文件就结束。

需要检查:

  • 根布局是否有 metadata

  • 首页是否有独立 metadata

  • 是否使用了 generateMetadata

  • 是否设置了标题模板

  • 是否存在旧标题残留

  • 是否有 next/head 重复设置标题

修改完成后,再次全局搜索旧标题:

bash 复制代码
rg -n "聆机智能 AI 文档生成工具" app src pages 2>/dev/null

如果没有输出,说明旧标题已经从主要代码中移除。


六、修改后重新构建和部署

完成代码修改后,需要重新构建项目。

根据项目使用的包管理器,可以执行:

复制代码
npm run build

或者:

复制代码
pnpm build

构建完成后,再按照原来的部署方式更新生产环境。

如果使用 Docker Compose,可以执行:

复制代码
docker compose build
docker compose up -d

如果服务直接通过 PM2 运行,可以根据实际项目执行:

复制代码
pm2 restart 项目名称

部署完成后,还需要确认:

  • 构建过程没有报错

  • 新代码已经进入生产环境

  • Next.js 服务已经重新启动

  • Nginx 指向的是最新服务

  • 没有继续运行旧容器

  • 页面缓存已经更新

本地代码修改成功,并不代表线上页面已经生效。


七、不能只看浏览器标签页

部署完成后,浏览器标签页已经显示了新的标题。

但我没有把浏览器显示结果作为最终验收标准。

浏览器可能存在缓存,也可能在页面加载后通过客户端 JavaScript 修改标题。

对于搜索引擎收录,更重要的是确认:

服务器首次返回的 HTML 中,是否已经包含新标题。

因此,我再次模拟百度蜘蛛访问生产环境:

bash 复制代码
curl -A "Baiduspider" -sL https://ai.linkede.cn/ \
| grep -oE "<title>[^<]*</title>"

实际输出为:

这说明修改已经真正生效。

新标题不是浏览器运行 JavaScript 后临时生成的,而是已经直接存在于 Next.js 返回的原始 HTML 中。


八、这次修改解决了什么

这次修改主要解决了三个问题。

1. 产品名称得到统一

修改前:

聆机智能 AI 文档生成工具

修改后:

聆机智能制造业AI工具箱

后续网站、公众号、CSDN、小红书和公司主站,可以统一使用同一个名称。

2. 标题更容易理解

新标题不仅告诉用户产品叫什么,还说明网站能做什么:

复制代码
8D报告、SOP、点检表在线生成

相比笼统的"AI文档生成工具",用户更容易理解。

3. 确认百度蜘蛛可以读取新标题

通过 curl 模拟 Baiduspider 访问,确认新标题已经存在于生产环境原始 HTML 中。

这比只看浏览器标签页更加可靠。


九、标题改好,不代表马上被搜索引擎收录

完成标题修改后,网站不会立刻出现在搜索引擎搜索结果中。

title 只是搜索引擎理解页面的基础信息之一。

目前仍然需要继续检查:

  • description 是否需要补充完整品牌名称

  • canonical 是否配置

  • robots.txt 是否存在

  • sitemap.xml 是否存在

  • 搜索引擎的搜索资源平台是否已经添加子域名

  • 搜索引擎抓取诊断能否读取页面

  • 公司主站是否链接到 AI 工具箱

  • 网站是否有足够的公开内容页面

所以,这次修改的意义不是"改完标题马上排名",而是先统一网站的基础信息。


十、当前 description 的检查结果

此前我使用以下命令检查页面描述:

bash 复制代码
curl -A "Baiduspider" -sL https://ai.linkede.cn/ \
| grep -oE '<meta[^>]+name="description"[^>]*>'

当前 description 为:

html 复制代码
<meta
  name="description"
  content="面向质量、设备、生产、工艺人员,生成8D、SOP、点检表、生产日报等可导出的Word/PDF文档。"
/>

这段描述已经能说明主要用户和功能。

后续计划补充完整产品名称和制造业定位,例如:

html 复制代码
<meta
  name="description"
  content="聆机智能制造业AI工具箱面向质量、设备、生产和工艺人员,支持生成8D报告、SOP作业指导书、设备点检表、保养规范和生产日报,并可导出Word和PDF。"
/>

这一项准备在后续基础 SEO 配置中继续处理。


十一、canonical 仍待补充

此前检查 canonical 时执行:

bash 复制代码
curl -A "Baiduspider" -sL https://ai.linkede.cn/ \
| grep -oE '<link[^>]+rel="canonical"[^>]*>'

没有得到输出。

说明首页暂时没有发现 canonical。

后续在 Next.js metadata 中,增加:

javascript 复制代码
import type { Metadata } from "next";

export const metadata: Metadata = {
  metadataBase: new URL("https://ai.linkede.cn"),

  alternates: {
    canonical: "/",
  },
};

最终应当生成:

html 复制代码
<link rel="canonical" href="https://ai.linkede.cn/">

canonical 可以帮助搜索引擎确认首页的标准地址,避免不同 URL 被视为重复页面。


十二、本次使用的检查命令

检查生产环境标题:

bash 复制代码
curl -A "Baiduspider" -sL https://ai.linkede.cn/ \
| grep -oE "<title>[^<]*</title>"

检查 description:

bash 复制代码
curl -A "Baiduspider" -sL https://ai.linkede.cn/ \
| grep -oE '<meta[^>]+name="description"[^>]*>'

检查 canonical:

bash 复制代码
curl -A "Baiduspider" -sL https://ai.linkede.cn/ \
| grep -oE '<link[^>]+rel="canonical"[^>]*>'

检查是否存在禁止索引设置:

bash 复制代码
curl -A "Baiduspider" -sL https://ai.linkede.cn/ \
| grep -oiE "noindex|nofollow"

总结

这次修改的是聆机智能制造业AI工具箱的首页标题。

下一篇继续检查:

Next.js 网站的 robots.txtsitemap.xml 是否正确,以及为什么有些网站访问这两个地址时,返回的却是首页 HTML。

相关推荐
名字还没想好☜2 天前
Next.js ‘use client‘ 到底加在哪:Server/Client Components 边界与常见报错
开发语言·前端·javascript·react·next.js
濮水大叔2 天前
为什么 AI 最擅长 React/Next.js,却很少看到真正好用的 Next.js 开源项目?
react.js·node.js·next.js
倾颜3 天前
AI 生图不只是调 API,一条生产级生图链路的设计与工程取舍
agent·next.js
倾颜3 天前
多智能体(Agent)不靠运气 ,一个受控协作系统的设计复盘
agent·next.js
hyf3266335 天前
泛程序:从零开始搭建稳定程序项目框架
运维·服务器·爬虫·百度·seo
拓海SEO外贸5 天前
SEO 数据工具链:从 GSC 到 Looker Studio 的全流程搭建
seo·跨境电商·独立站搭建·seo优化
名字还没想好☜5 天前
React 受控输入框光标跳到末尾:格式化输入时的 selection 丢失 bug 与修复
前端·javascript·react.js·bug·react·next.js
林间码客6 天前
GEO生成式引擎优化:AI时代的内容战略重构
人工智能·seo·geo
名字还没想好☜6 天前
Next.js App Router 约定式文件实战:loading、error、not-found 怎么兜住加载态与异常
开发语言·前端·javascript·react·next.js