这篇文章主要是为了记录一次因修改WordPress的固定链接导致的全站文章404,301重定向后,百度不能及时修改已收录链接的应对之法。百度搜索资源平台网站改版规则提供了3种规则,一般采用正则规则或者url对规则告诉百度你的地址变了,因此我们可能需要获取WordPress所有文章页地址。修改了固定链接一定要做301重定向,因为百度它比较低能,不做就会出现搜索引擎访问的全是404,如果你不在乎百度,只管谷歌,那你不要做301,因为谷歌响应极快,分分钟给你把链接改成正确链接。
注:新站建议使用域名/文章id的链接形式,尽量避免使用分类目录!
修改了WordPress固定链接规则,建议使用WordPress固定链接修改文章地址批量重定向插件wp-permalinks-migration自动对文章地址进行301重定向。很多人可能在想,我为什么不用正则的方式告诉百度改版规则,不是我不想,是百度太坑,一篇文章收录了我两个地址,即使禁止了收录/?*类型的链接,百度照样收录,这就导致了在提交正则规则后,百度校验到存在多链接跳转到一个地址的情况,然后就被驳回了。使用url对的方式就不存在这个问题了,下面是获取所有文章地址的方法,将下面代码保存为页面模板,新建页面后使用即可自动生成所有文章链接。
<?php /* *Template Name: AllLinks **/ get_header(); ?> <div class="wrap"> <table class="table"> <tr> <th><strong>文章链接</strong></th> </tr> <?php include ( "wp-config.php" ) ; require_once (ABSPATH.'wp-blog-header.php'); global $wpdb; $sql="SELECT ID FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish' ORDER BY ID DESC "; $myrows = $wpdb->get_results($sql); foreach ($myrows as $b) { echo '<tr>'; echo '<td>'.get_the_permalink($b->ID).'</td> '; echo '</tr> '; } ?> </table> </div> <?php get_footer(); ?>
注意:上面的sql语句中wp_posts是文章数据表,把它修改成你自己的表名称,一般前缀可能会发生变化。
访问新建页面就可以看到所有文章地址了,这只是新地址,旧地址只需要将固定链接改回去,再访问一次就好,如此新旧链接我们都拿到了,向百度提交改版url对吧!
评论 (2)