谷歌SEO之抓取——名词摘录

以下内容主要摘自《SEO实战密码》,为13年出版,应该会出现很多需要更新的内容,后续再做更正。

Googlebot最基本的两种爬取策略

深度优先

爬虫沿着发现的链接一直向前爬行,直到再也没有其他链接。然后返回到第一个页面,沿着另一个链接继续向前爬行。

广度优先

在一个页面发现多个链接时,是把当前页面所有第一层链接都爬一遍,再沿着第二层页面发现的链接爬向第三层页面。

理论上只要时间足够,爬虫能够爬完整个互联网,但实际操作中不可能有无限时间,所以爬取策略一般都是混合使用,照顾到尽量多的网站

吸引爬虫

  1. 页面权重高
  2. 页面更新频率高
  3. 高质量导入链接
  4. 与首页点击距离近
  5. 短、浅层次的URL

地址库

为避免重复爬行和抓取,搜索引擎建立的,用来记录已经被发现、但还没有被抓取的页面,以及已经被抓取的页面

地址库中URL来源:

  1. 人工录入的种子网站(应该是指网站目录)
  2. 爬取得到的URL
  3. 站长主动向搜索引擎提交的网址
  4. 站点丢

所以站点地图的作用相当于告诉搜索引擎“我有哪些网页”,但是否最终会加入索引显示在搜索结过中还是要看抓取后的分析。

复制抄袭内容检测

搜索引擎在爬取网站内容时有检测机制,遇到权重低且有大量转载和抄袭内容时,很可能不再进行爬取。

ps:这就是为什么当初爬了那么多文章,自然流量依然长期非常低的原因了……搜索引擎也不傻- -

预处理

爬取数据后,加入索引前的数据分析过程。

  1. 提取文字:去除无法用于排名的HTML标签、js等元素,提取文本内容。除了可见文字也会提取特殊含义的meta标签、图片替代文字、flash替代文字、锚点文字等
  2. 中文分词(中文搜索引擎特有的,谷歌有没有添加该技术待确定)。
    • 基于词典匹配
    • 基于统计
  3. 分词特点
    百度更喜欢查询词完整的匹配出页面,谷歌不太要求完整匹配。
    分词的规则取决于搜索引擎使用的算法,对于运营者只能观察其规则作出相应的优化。比如: 在可能产生歧义的时候,在标题或h1标签中出现明确拆分的关键词。
  4. 无意义的助词、感叹词、介词、副词也会被筛掉。英文常见的有the,a,an,to,of等。
  5. 噪声词
    与网页主题不相干的内容,比如底部的版权声明、导航、广告等。搜索引擎会对页面进行分块,区分出页头、导航、正文、页脚、广告等区域。
  6. 去重。如果搜索结果中前两个是一模一样的内容,那用户的体验会很差,所以搜索引擎会进行甄别去重。

去重方法是对页面特征关键词计算指纹,也就是从页面主体内容中选取最有代表性的一部分关键词(经常是出现频率最高的关键词),然后计算数字指纹。通常10个特征关键词就足够了。
典型的指纹计算方法如MD5算法,所以简单的增加“的”“得”“地”或调换段落这种伪原创对搜索引擎是无效的,因为并没有改变特征关键词。搜索引擎的去重算法很可能不至于页面,而是进行到段落级别,混合不同文章、交叉调换段落也不能增加原创内容。

  1. 加入索引。
    经过文字提取、分词、消噪、驱虫后,搜索引擎得到以词为单位的字符串,接下来就会进行关键词提取,将页面转换成关键词的集合,记录出现频率、次数、格式、位置等信息,加入到索引表,这种页面和多个关键词对应的模式为正向索引。
    同时也会构造倒排索引,即关键词和多个网页对应的模式。
  2. 链接关系计算
    目前所有主流搜索引擎排名因素中,都包含网页之间的链接流动信息,复杂的链接指向关系形成了网站和页面的链接权重。
    比如谷歌PR值
  3. 特殊文件的处理
    即图片、视频等内容,这个需要查看谷歌文档。
  4. 质量判断。
    几个很可能已经过时的算法(预先计算,非实时效果):
    百度绿萝
    百度石榴
    Google熊猫
    google企鹅
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
生成网站的 sitemap.xml 文件可以帮助搜索引擎更好地抓取和索引您的网站内容,从而提高您的 SEO 优化效果。下面是使用 Node.js 动态生成网站 sitemap.xml 的方法: 1. 安装依赖 首先,您需要安装 `xmlbuilder` 模块,它是一个轻量级的 XML 创建器,可以用于动态生成 XML 文件。 ``` npm install xmlbuilder --save ``` 2. 生成 sitemap.xml 文件 在您的 Node.js 项目中创建一个生成 sitemap.xml 文件的脚本文件,并编写以下代码: ```javascript const fs = require('fs'); const xmlbuilder = require('xmlbuilder'); const baseUrl = 'https://www.example.com'; // 网站页面的 URL 列表 const urls = [ '/', '/about', '/services', '/blog', '/contact' ]; // 创建 sitemap.xml 文件 const root = xmlbuilder.create('urlset', { version: '1.0', encoding: 'UTF-8' }); root.att('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'); urls.forEach(url => { const loc = baseUrl + url; const urlNode = root.ele('url'); urlNode.ele('loc', {}, loc); }); const xml = root.end({ pretty: true }); fs.writeFileSync('sitemap.xml', xml, 'utf8'); console.log('Sitemap generated successfully!'); ``` 在上面的代码中,我们首先定义了一个 `baseUrl` 变量,用于存储网站的基础 URL,然后定义了一个 `urls` 数组,用于存储网站页面的 URL 列表。 接着,我们使用 `xmlbuilder` 模块创建了一个 XML 文件的根节点 `urlset`,并设置了其命名空间。然后,我们遍历 `urls` 数组,为每个页面创建一个 `url` 节点,并添加一个 `loc` 子节点,用于存储页面的 URL。 最后,我们使用 `fs` 模块将生成的 XML 内容写入到 `sitemap.xml` 文件中,并在控制台输出成功信息。 3. 集成到网站 生成 sitemap.xml 文件后,您需要将其添加到您的网站根目录下,并在网站的 robots.txt 文件中添加以下代码: ``` Sitemap: https://www.example.com/sitemap.xml ``` 这将告诉搜索引擎您网站的 sitemap.xml 文件的位置,以便更好地抓取和索引您的网站内容。 通过以上几步,您就可以使用 Node.js 动态生成网站 sitemap.xml 文件,并优化您的 SEO 效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值