首页 > 代码

SEO_自动生成规范 canonical 的 PHP 代码

如果你使用 WordPress,请在 header.php 中使用以下代码:


<?php
global $wp;
$canonical_url = '';
if (is_singular()) {
  // 文章页/单页
  $canonical_url = get_permalink();
} elseif (is_category() || is_tag() || is_tax()) {
  // 分类、标签等分页
  $canonical_url = get_term_link(get_queried_object());
  if (get_query_var('paged') > 1) {
    $canonical_url = trailingslashit($canonical_url) . 'page/' . get_query_var('paged') . '/';
  }
} elseif (is_home() || is_front_page()) {
  $canonical_url = home_url('/');
  if (get_query_var('paged') > 1) {
    $canonical_url = home_url('/page/' . get_query_var('paged') . '/');
  }
} else {
  // 默认情况
  $canonical_url = home_url(add_query_arg(array(), $wp->request));
}
?>
<link rel="canonical" href="<?php echo esc_url($canonical_url); ?>" />

【robots 控制】指导爬虫行为
控制搜索引擎是否抓取当前页面。常见值:
index, follow(默认):允许收录和抓取链接
noindex, nofollow:禁止收录和爬取


<?php
$robots = 'index, follow'; // 默认设置

// WordPress 判断分页页、搜索页、404页、标签页等
if (
  is_paged() ||               // 所有分页
  is_search() ||              // 搜索结果页
  is_404() ||                 // 404页
  (is_category() && get_query_var('paged') > 1) ||  // 分类分页
  (is_tag() && get_query_var('paged') > 1) ||       // 标签分页
  (is_author() && get_query_var('paged') > 1)       // 作者分页
) {
  $robots = 'noindex, follow';
}
?>
<meta name="robots" content="<?php echo $robots; ?>" />

附加一个:(建议也加上)


<link rel="icon" href="/favicon.ico" />

三合一直接复制:


<?php
$robots = 'index, follow'; // 默认设置
// WordPress 判断分页页、搜索页、404页、标签页等
if (
  is_paged() ||               // 所有分页
  is_search() ||              // 搜索结果页
  is_404() ||                 // 404页
  (is_category() && get_query_var('paged') > 1) ||  // 分类分页
  (is_tag() && get_query_var('paged') > 1) ||       // 标签分页
  (is_author() && get_query_var('paged') > 1)       // 作者分页
) {
  $robots = 'noindex, follow';
}
?>
<meta name="robots" content="<?php echo $robots; ?>" />
<?php
global $wp;
$canonical_url = '';
if (is_singular()) {
  // 文章页/单页
  $canonical_url = get_permalink();
} elseif (is_category() || is_tag() || is_tax()) {
  // 分类、标签等分页
  $canonical_url = get_term_link(get_queried_object());
  if (get_query_var('paged') > 1) {
    $canonical_url = trailingslashit($canonical_url) . 'page/' . get_query_var('paged') . '/';
  }
} elseif (is_home() || is_front_page()) {
  $canonical_url = home_url('/');
  if (get_query_var('paged') > 1) {
    $canonical_url = home_url('/page/' . get_query_var('paged') . '/');
  }
} else {
  // 默认情况
  $canonical_url = home_url(add_query_arg(array(), $wp->request));
}
?>
<link rel="canonical" href="<?php echo esc_url($canonical_url); ?>" />
<link rel="icon" href="/favicon.ico" />


  • wordpress标题SEO优化代码:文章标题 – 分类 | 站名
  • 如果你的文章存在多个分类,且希望更精准 SEO,可拼接多个分类或使用主分类: 例:搜索页与文章页的写法,请在f […]

  • 彻底删除wordpress里的global-styles-inline-css
  • <style id='global-styles-inline-css' type= […]

  • 能批量下载 X(Twitter)公开视频的 Python 版
  • 能批量下载 X(Twitter)公开视频的 Python 版。核心用的是 yt-dlp,它是一个活跃维护的开源 […]

  • 服务器上mysql数据库很多,某个库把整台服务器拉爆了,如何定位找到罪魁?
  • 服务器上mysql数据库很多,某个数据库把整台服务器拉爆了,如何定位找到罪魁? 先在 MySQL 里把“正在烧 […]

  • 极速打包几百万文件成.zip,比传统方式快几十倍
  • 假如,一个文件夹里面有几十上百万张图片,要把这个文件夹打包成.zip,按传统的windows自带的工具压缩或普 […]

  • Rufus是什么?为什么很多人推荐
  • Rufus 是一个非常流行的Windows 平台下用于创建启动U盘(Bootable USB)的免费工具。官网 […]