懂一些SEO优化知识的亲们都知道,文章发布以后,只有被搜索引擎收录,才有可能给网站带来免费的自然流量。如果文章发布以后迟迟不被搜索引擎收录,那么很大概率是这篇文章内容的质量不达标,网页亦是如此。
一,那么如何才能判断一个网页是否被搜索引擎收录呢?
其实很简单,上面我们已经说过最简单的方式就是手动复制需要判断的网址直接搜索,然后看搜索结果就行了。
比如我们需要判断“https://www.changxiaokeji.com”和“https://www.hubaye.com”和“https://www.yuanmama.vip/essay/10000.html”这三个网址是否被百度搜索引擎收录,只需要逐一手动复制网址到百度搜索框,然后回车搜索即可。
网址“https://www.changxiaokeji.com”的搜索结果截图如下,从搜索结果我们可以看出,该网址已经被百度收录了。
网址“https://www.hubaye.com”的搜索结果截图如下,从搜索结果我们可以看出,该网址还没有被百度收录,而且搜索结果中出现了“没有找到该URL”这个关键字。
网址“https://www.yuanmama.vip/essay/10000.html”的搜索结果截图如下,从搜索结果我们可以看出,该网址也没有被百度收录,且搜索结果中出现了“抱歉没有找到”,“请检查您的输入是否正确”,“网页未收录”等关键字。
二,判断网页是否被收录的原理又是什么呢?
到这一步,其实我们的判断原理已经有了,总结一下,就是看搜索结果。如果搜索结果中有“没有找到该URL”,“抱歉没有找到”,“请检查您的输入是否正确”,“网页未收录”这4个关键字中的一个,那么基本上就可以确定这个网址还没有被百度收录。
三,具体怎么实现这个功能?实现的思路是怎样的?
现在需求明确了,原理也清楚了,那一般这种情况我们该怎么实现呢?我本次采用的是PHP中的一项基础技术,也就是CURL采集功能。
我的实现思路就是先通过分析百度搜索结果的链接地址得出需要采集的目标URL的地址结构,然后使用CURL去采集目标URL地址的结果,再通过strpos()这个函数来判断采集的结果中有没有包含上面提到的4个关键字,如果有的话,那就说明该网址还没有被收录,如果没有的话,就说明该网址已经被百度收录了。
下面就是我今天用PHP实现这个功能的具体代码:
function checkBaiduInclude($url){ $url = 'http://www.baidu.com/s?wd='.$url; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); curl_close($ch); if(strpos($result, '没有找到该URL')){ return 0; }elseif(strpos($result, '抱歉没有找到')){ return 0; }elseif(strpos($result, '请检查您的输入是否正确')){ return 0; }elseif(strpos($result, '网页未收录')){ return 0; }else{ return 1; } } $url = "https://www.hubaye.com"; if(checkBaiduInclude($url) == 1){ var_dump("该网页已经被百度收录了"); }else{ var_dump("该网页还没有被百度收录"); }
四,为什么只写了如何用PHP判断网址是否被百度收录,没有写如何判断网页是否被其它搜索引擎收录呢?
因为如今国内的搜索领域,百度依旧是搜索引擎领域的巨头。我们平时做国内SEO优化工作的时候,基本上也只做百度的优化。
所以我们这次也只写了如何用PHP判断网址是否被百度收录,但其实代码的原理是通用的,需要判断是否被其它搜索引擎收录的亲们,可以自行更改CURL采集的URL地址。