typecho各页面类型meta robots和canonical配置SEO规则代码
今天审查自己这个站的typecho模板,发现关于SEO的canonical和meta robots部分的规则,不是很友好。重新按SEO的技术审查要求,写了全套判断规则。
为了确保首页分页时meta robots设置正确,我们可以使用getCurrentPage()函数来判断当前页是否为分页。
分页的判断
通过 $this->getCurrentPage() > 1
判断是否为首页的分页。如果是分页页面($this->getCurrentPage()
大于 1),则输出 meta name="robots" content="noindex, follow"
。
同理,分类页的分页判断保持不变,若是分页,则添加 meta name="robots" content="noindex, follow"
。
以下是为Typecho各页面类型(首页、文章页、单页、分类页、标签页、搜索页)配置meta robots和canonical标签的代码示例。这些规则有助于优化网站的SEO。
使用方法
复制以下代码粘贴到你当前模板目录中header.php文件的<head></head>
中,保存即可生效。
<?php
if ($this->is('index')): ?>
<?php if ($this->getCurrentPage() > 1): ?>
<!-- 如果是首页的分页,则meta robots设置noindex, follow;canonical设为首页第1页 -->
<meta name="robots" content="noindex, follow">
<link rel="canonical" href="<?php $this->options->siteUrl(); ?>" />
<?php else: ?>
<!-- 首页 -->
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large" />
<link rel="canonical" href="<?php $this->options->siteUrl(); ?>" />
<?php endif; ?>
<?php elseif ($this->is('post')): ?>
<!-- 文章页 -->
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large" />
<link rel="canonical" href="<?php $this->permalink(); ?>" />
<!-- 单页 -->
<?php elseif ($this->is('page')): ?>
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large" />
<link rel="canonical" href="<?php $this->permalink(); ?>" />
<?php elseif ($this->is('category')): ?>
<?php if ($this->getCurrentPage() > 1): ?>
<!-- 如果是分类页的分页,则meta robots设置noindex, follow;canonical设为分类页第1页 -->
<meta name="robots" content="noindex, follow">
<link rel="canonical" href="<?php echo rtrim($this->archiveUrl, '/') . '/'; ?>" />
<?php else: ?>
<!-- 分类页 -->
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large" />
<link rel="canonical" href="<?php echo rtrim($this->archiveUrl, '/') . '/'; ?>" />
<?php endif; ?>
<?php elseif ($this->is('tag')): ?>
<!-- 标签页 -->
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large" />
<link rel="canonical" href="<?php echo rtrim($this->archiveUrl, '/') . '/'; ?>" />
<?php elseif ($this->is('search')): ?>
<!-- 如果是搜索页,则meta robots设置noindex, nofollow -->
<meta name="robots" content="noindex, nofollow">
<?php elseif ($this->is('archive')): ?>
<!-- 归档页,则meta robots设置noindex, follow -->
<meta name="robots" content="noindex, follow">
<link rel="canonical" href="<?php echo rtrim($this->archiveUrl, '/') . '/'; ?>" />
<?php endif; ?>
代码说明
- 首页(
is('index')
): 设置index, follow,允许搜索引擎索引并跟随链接,并使用站点的根URL作为canonical。 - 首页分页和分类页分类,设置noindex, follow,防止索引分页但允许跟随链接。
- 文章页和单页(
is('post'
),is('page')
): 设置index, follow,允许索引,canonical指向当前文章或页面的永久链接。 - 分类页和标签页(
is('category')
,is('tag')
): 设置 index, follow,索引这些归档页面,同时确保canonical指向正确的归档页。 - 搜索页(
is('search')
): 设置 noindex, nofollow,避免搜索引擎索引搜索结果,且禁止跟随这些页面中的链接。
- 归档页(
is('archive')
): 设置 noindex, follow,防止索引归档页但允许跟随链接。
- 筛选器生成的页面是否需要在robots.txt中配置Disallow
- 站内搜索页面产生的URL有没有必要在robots.txt里配置Disallow
- 已设置过canonical的页面是否还需要设置meta robots为noindex和nofollow
- 电商网站需要在robots.txt中禁止的页面类型
- WordPress添加Robots.txt文件及优化网站收录
本文标题:《typecho各页面类型meta robots和canonical配置SEO规则代码》
网址:https://zhangwenbao.com/typecho-meta-robots-canonical-seo-rules.html