U渠道
U渠道
观点

PC+手机模板的代码设置

2026-09-18 浏览0 评论0

一些运营时间比较久的网站,尤其是早期使用织梦、帝国CMS、定制PHP程序或者老版本企业建站系统的网站,经常不是现在常见的响应式结构,而是:

PC模板
+
手机模板

甚至直接对应两套URL:

PC:
https://www.example.com/article/123.html

手机:
https://m.example.com/article/123.html

这类网站做SEO时,最容易碰到的问题不是“手机模板长得好不好看”,而是:

搜索引擎怎么知道PC页和手机页属于同一份内容? PC有排名以后,手机搜索应该展示哪个URL? PC模板和手机模板需要分别写Canonical吗? rel=”alternate”应该放在哪里? 是用UA判断模板,还是直接跳转m站?

如果这些代码关系没有处理好,很容易出现:

PC和手机两个URL同时被收录。

移动搜索仍然展示PC页面。

Canonical混乱。

多个PC页面全部跳到手机首页。

移动版内容比PC版少很多。

甚至Google在Mobile-first Indexing环境下只获得缩水后的手机版内容。

所以做PC+手机双模板,真正需要先分清网站到底是哪一种技术架构。

Google当前把移动网站主要分成三种实现方式:

响应式设计。

动态提供内容。

独立移动URL。

Google仍然支持三种方式,但明确建议新网站优先使用响应式设计,因为实现和维护都更加简单。

下面分别来看代码应该怎么设置。

第一:最推荐的方式——同一个URL使用响应式模板

如果现在重新开发网站,我更建议直接使用:

同一个URL
+
同一套HTML核心内容
+
CSS响应式

比如:

PC:
https://www.example.com/seo/

手机:
https://www.example.com/seo/

地址完全一样。

通过CSS控制不同设备显示方式。

基本HTML里至少要有:

<meta name="viewport" content="width=device-width, initial-scale=1">

然后通过媒体查询:

.container {
    width: 1200px;
    margin: 0 auto;
}

@media (max-width: 768px) {
    .container {
        width: 100%;
        padding: 0 16px;
    }

    .two-column {
        display: block;
    }
}

这种模式不存在:

PC页面怎么告诉搜索引擎手机版在哪里?

因为本来就是同一个URL。

Google当前推荐响应式设计,也是因为它不会制造两套URL,内容和元数据天然更容易保持一致。

如果你的网站已经能改造成响应式,通常没有必要继续维护单独m站。

第二:如果必须保留“PC模板+手机模板”,先看URL是不是一样

还有一种网站结构是:

URL完全相同。

比如:

https://www.example.com/article/123.html

PC用户打开时:

服务器输出PC模板。

手机用户打开时:

服务器输出手机模板。

这叫:

Dynamic Serving,动态提供内容。

Google目前对它的定义就是:

同一个URL,根据用户设备和User-Agent返回不同HTML。

这种模式不需要:

rel="alternate"

去告诉Google另外一个移动URL。

因为根本没有另外的URL。

但需要处理一个非常重要的HTTP头:

Vary: User-Agent

例如服务器返回:

HTTP/1.1 200 OK
Content-Type: text/html
Vary: User-Agent

它告诉搜索系统和缓存服务器:

这个URL返回的HTML可能根据User-Agent变化。

Google官方目前仍然明确要求,Dynamic Serving依赖UA识别以及Vary: User-Agent响应头。

第三:PHP双模板可以怎么判断PC和手机?

比如老PHP网站使用:

pc-template.php
mobile-template.php

可以在服务端识别设备以后加载不同模板。

逻辑类似:

$isMobile = false;

$userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';

if (preg_match('/Android|iPhone|iPad|Mobile/i', $userAgent)) {
    $isMobile = true;
}

header('Vary: User-Agent');

if ($isMobile) {
    include 'mobile-template.php';
} else {
    include 'pc-template.php';
}

这里只是为了说明架构逻辑,并不建议直接把这几行代码作为生产环境完整UA识别方案。

因为真实设备User-Agent非常复杂。

如果CMS已经提供成熟的移动模板识别功能,优先使用系统已有能力。

真正SEO上需要注意的是:

URL相同
+
PC/手机HTML主体信息等价
+
正确返回Vary: User-Agent

而不是自己不断维护一张越来越长的手机UA名单。

第四:动态模板千万不要让手机版内容比PC少一大截

比如同一个URL。

PC模板输出:

Title
H1
产品介绍
产品参数
案例
FAQ
相关文章
内部链接

手机模板只输出:

H1
一句介绍
咨询按钮

这种设计风险很大。

Google现在采用Mobile-first Indexing,主要使用智能手机Googlebot看到的移动版内容进行索引和排名。

Google明确要求:

移动版网站应该拥有与桌面版等价的主要内容,如果手机版信息更少,网站可能损失搜索流量。

所以双模板可以:

布局不同。

导航不同。

PC三列、手机一列。

内容折叠。

但核心正文不要缩水。

第五:如果PC和手机使用不同URL,就必须建立对应关系

最典型的是:

PC:
https://www.example.com/article/123.html

手机:
https://m.example.com/article/123.html

这叫:

Separate URLs,独立移动URL。

这种架构必须明确告诉搜索引擎:

这两个URL实际上是同一份内容的桌面版和手机版。

Google当前仍然要求这种站点使用正确的:

rel="canonical"
+
rel="alternate"

关系。

第六:PC页面应该怎么写rel=”alternate”?

假设PC页面是:

https://www.example.com/article/123.html

对应手机页面:

https://m.example.com/article/123.html

PC模板的<head>里可以写:

<link rel="canonical"
      href="https://www.example.com/article/123.html">

<link rel="alternate"
      media="only screen and (max-width: 640px)"
      href="https://m.example.com/article/123.html">

意思是:

第一行:

当前PC页面自己是规范URL。

第二行:

这个PC页面还有一个适合手机显示的备用版本。

Google目前给出的Separate URL官方示例仍然采用这样的结构。

第七:手机页面Canonical应该怎么写?

对应手机模板:

https://m.example.com/article/123.html

<head>里写:

<link rel="canonical"
      href="https://www.example.com/article/123.html">

也就是:

移动URL的Canonical指向对应PC规范URL。

Google官方当前仍然明确说明,对于单独移动URL:

桌面版URL作为Canonical。

移动版作为Alternate。

百度早期针对PC+H5独立URL同样公开推荐过这一套关系:

PC页面使用rel="alternate"指向移动页。

移动页面使用rel="canonical"指向PC页。

第八:不要把所有PC页面的alternate都指向手机首页

这个错误非常严重。

比如PC站:

/product/a/
/product/b/
/product/c/

结果三个页面全部写:

<link rel="alternate"
      href="https://m.example.com/">

或者手机访问任何PC详情页都直接跳:

https://m.example.com/

这样搜索引擎无法判断真实对应关系。

Google当前明确提醒:

不能让多个不同桌面URL全部重定向到同一个手机页面,例如移动首页。

如果不同桌面内容全部对应同一个移动URL,在Mobile-first Indexing下可能导致这些页面无法正常索引。

所以正确关系必须是:

PC A
↔
Mobile A

PC B
↔
Mobile B

PC C
↔
Mobile C

一对一对应。

第九:百度PC+手机站,还可以提交移动适配关系

如果网站确实是:

www.example.com
+
m.example.com

百度搜索资源平台目前仍然提供:

移动适配工具。

官方当前说明明确写着:

如果同时拥有PC站和手机站,而且两边主体内容完全相同,可以向百度提交PC页面和移动页面之间的对应关系。

例如:

PC:
https://www.example.com/article/123.html

移动:
https://m.example.com/article/123.html

建立对应关系以后,有助于百度在移动搜索中识别正确的手机页面。

但百度同时明确提醒:

移动适配工具不能解决移动端排序问题。

所以不要理解成:

提交以后PC第3名,手机也自动变第3名。

它主要解决的是URL对应和移动展示问题。

第十:响应式网站不要去提交百度移动适配

如果你的网站是:

PC:
https://www.example.com/article/

手机:
https://www.example.com/article/

同一个URL,只是CSS布局不同。

那么百度当前明确写着:

自适应站点不需要使用移动适配工具。

所以先搞清楚网站属于哪一种结构。

不要因为:

手机也能打开。

就认为一定属于独立移动站。

第十一:手机模板的Title和Description不要做成另一套主题

比如PC页面:

<title>企业官网SEO服务|SEO优化服务 - XX公司</title>

手机页面却变成:

<title>XX公司手机版</title>

这明显不合理。

Google当前Mobile-first Indexing指南明确要求:

桌面版和移动版应使用等效的:

Title。

Meta Description。

所以双模板可以写不同HTML结构。

但页面主题信息应该一致。

例如PC和手机都应该表达:

这是企业官网SEO服务页面。

不要手机模板为了省事,全部自动使用:

首页
产品详情
文章详情

这种低信息量Title。

第十二:Robots和Noindex也必须两端一致

例如PC页面允许索引:

<meta name="robots" content="index,follow">

手机模板却意外带着:

<meta name="robots" content="noindex,nofollow">

Google主要依赖移动页面建立索引,这种错误可能直接让页面无法正常进入搜索。

所以双模板上线前必须检查:

PC Robots
=
Mobile Robots

另外:

www.example.com/robots.txt

和:

m.example.com/robots.txt

如果属于不同Host,也需要分别确认。

不要PC站允许抓取,m站直接:

Disallow: /

第十三:结构化数据也要在手机模板里保留

例如PC页面有:

Article。

Product。

BreadcrumbList。

VideoObject。

结果手机模板为了简化全部删除。

同样可能造成信息不完整。

Google当前明确要求:

如果网站使用独立移动版本或动态模板,移动版和桌面版应该拥有相同的结构化数据。

例如文章PC模板:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article"
}
</script>

手机模板也应该正常输出相应数据。

当然真实项目中不能只保留@type

这里仅表示:

两端Schema应该保持一致。

第十四:图片和视频也不能在手机模板直接删掉

Google当前还专门提醒:

手机版应包含桌面版的重要图片和视频。

同时保持:

Alt。

图片说明。

视频结构化数据。

等重要信息一致。

所以移动端优化应该:

图片压缩。

响应式尺寸。

换小图。

调整布局。

而不是:

手机太慢,把所有产品图片删掉。

如果那些图片本来就是用户理解产品的重要信息,删掉就改变了页面内容。

第十五:独立m站需要做自动跳转吗?

通常可以根据用户设备进行正确跳转。

例如:

手机访问:

https://www.example.com/article/123.html

网站识别设备后跳转:

https://m.example.com/article/123.html

重点仍然是:

一对一。

不要全部跳手机首页。

反过来,桌面用户如果访问m页面,也可以根据实际策略引导到对应PC页面。

不过现在新网站一般没必要再专门建设这样一套复杂系统。

因为Google已经明确建议新网站优先响应式设计,并指出Separate Mobile URLs多年来给搜索引擎和用户都带来了额外复杂性。

第十六:如果使用动态模板,记得Vary: User-Agent

再强调一次。

如果:

URL相同
+
服务器根据UA输出不同HTML

属于Dynamic Serving。

一定要检查响应头:

Vary: User-Agent

否则CDN或者中间缓存就可能出现:

第一次手机访问缓存了手机版HTML。

后面的PC用户也拿到手机版。

或者反过来。

Google官方当前同样把Vary: User-Agent列为动态提供内容的标准组成部分。

可以使用浏览器开发者工具或者:

curl -I https://www.example.com/page/

检查响应头里有没有:

Vary: User-Agent

第十七:PC+手机模板最常见的错误,可以直接检查这10项

1. 手机内容明显比PC少

尤其正文、产品参数、FAQ被删除。

2. PC和手机Title不同

手机全部叫:

手机版。

3. 手机页面带Noindex

导致移动优先索引异常。

4. Canonical写反

应该:

m页面
→ canonical → PC对应页

却写成PC Canonical指向m页。

5. PC没有rel=”alternate”

搜索系统更难发现独立移动页面关系。

6. 多个PC页面全部跳手机首页

这是非常典型的错误。

7. m站Robots被封

普通浏览器能访问,爬虫不能访问。

8. 手机模板没有内链

PC导航完整,手机只剩首页和联系方式。

9. 动态模板没有Vary头

CDN和爬虫可能拿到错误版本。

10. 响应式网站却又同时维护m站

最终形成:

响应式URL。

PC URL。

m URL。

三套地址互相竞争。

第十八:如果准备从m站迁移到响应式,应该怎么做?

假设原来:

PC:
https://www.example.com/article/a/

移动:
https://m.example.com/article/a/

现在准备统一成:

https://www.example.com/article/a/

Google官方给出的迁移方案很清楚:

第一步:准备好响应式PC URL。

第二步:把每一个旧移动URL一对一301到对应响应式URL。

例如:

m.example.com/a/
↓301
www.example.com/a/

第三步:删除原来m站专用的跳转和Vary规则。

第四步:响应式页面可以继续使用自引用Canonical。

不要:

m站所有页面
↓
301
↓
PC首页

必须仍然是一对一迁移。

第十九:今天还应该继续做PC+手机双模板吗?

如果是老网站已经稳定运行:

没必要为了追求技术时髦,马上全部推翻。

只要:

对应关系正确。

两边内容完整。

Canonical正确。

移动体验正常。

搜索数据稳定。

完全可以继续维护。

但如果是:

新网站。

准备大规模改版。

准备重新开发主题。

我更建议直接做:

响应式。

因为它能够明显减少:

两套URL。

两份Canonical。

设备跳转。

移动适配。

重复内容。

模板同步。

数据统计。

方面的长期维护成本。

Google当前依然明确推荐响应式Web Design作为最容易实现和维护的移动网站模式。

PC+手机模板到底应该怎么设置代码?

最后按照三种情况总结。

情况一:响应式

PC URL = 手机URL
HTML核心内容一致
CSS控制布局

至少配置:

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="canonical" href="当前页面规范URL">

不用做百度移动适配。

情况二:同URL双模板

PC URL = 手机URL
HTML模板不同

服务器根据设备返回不同HTML,并配置:

Vary: User-Agent

同时保证:

Title一致。

正文主体一致。

Robots一致。

Schema一致。

重要链接一致。

情况三:PC和手机独立URL

PC:

<link rel="canonical"
      href="https://www.example.com/article/123.html">

<link rel="alternate"
      media="only screen and (max-width: 640px)"
      href="https://m.example.com/article/123.html">

手机:

<link rel="canonical"
      href="https://www.example.com/article/123.html">

然后保证:

PC和手机URL一一对应。

主体内容等价。

不要全部跳首页。

百度可以进一步提交移动适配关系。百度当前也明确表示,自适应站点无需使用移动适配工具。

所以PC+手机模板真正复杂的地方,其实并不在于:

PHP怎么判断一个手机UA。

而在于:

PC和手机两套页面之间的搜索关系有没有表达正确。

搜索引擎必须能够确认:

哪两个页面属于同一份内容。

哪个是规范URL。

手机用户应该访问哪个版本。

两边内容是不是完整一致。

当这些关系处理正确以后,双模板才真正算SEO适配完成。

如果现在还有条件重新规划网站,我仍然更建议:

尽量减少两套模板、两套URL和两套SEO配置。

让PC和手机共享同一个URL和核心内容,通过响应式布局解决展示差异。

这会比长期维护一整套“PC页面对应哪个手机页面”的代码关系简单很多。

©特别声明

文本来源:https://www.yuezengzhang.com/content/8228.html

原创作者:悦增长GEO服务商

登录 登录后发布评论
全部评论 0
暂无评论,快来抢沙发吧。