您现在的位置是:亿华云 > 系统运维
使用这个Python工具对网站的SEO问题进行自动化测试
亿华云2025-10-08 23:11:04【系统运维】5人已围观
简介SEODeploy 可以帮助我们在网站部署之前识别出 SEO 问题。作为一个技术性搜索引擎优化开发者,我经常被请来协助做网站迁移、新网站发布、分析实施和其他一些影响网站在线可见性和测量等领域,以控制风
SEODeploy 可以帮助我们在网站部署之前识别出 SEO 问题。使用试
作为一个技术性搜索引擎优化开发者,个Pn工我经常被请来协助做网站迁移、具对进行新网站发布、网站问题分析实施和其他一些影响网站在线可见性和测量等领域,自动以控制风险。化测许多公司每月经常性收入的使用试很大一部分来自用户通过搜索引擎找到他们的产品和服务。虽然搜索引擎已经能妥善地处理没有被良好格式化的个Pn工代码,但在开发过程中还是具对进行会出问题,对搜索引擎如何索引和为用户显示页面产生不利影响。网站问题
我曾经也尝试通过评审各阶段会破坏 SEO(搜索引擎优化search engine optimization)的自动问题来手动降低这种风险。我的化测团队最终审查到的结果,决定了该项目是使用试否可以上线。但这个过程通常很低效,个Pn工只能用于有限的具对进行页面,而且很有可能出现人为错误。
长期以来,这个行业一直在寻找可用且值得信赖的方式来自动化这一过程,同时还能让开发人员和搜索引擎优化人员在必须测试的内容上获得有意义的发言权。这是非常重要的,企商汇因为这些团队在开发冲刺中优先级通常会发生冲突,搜索引擎优化者需要推动变化,而开发人员需要控制退化和预期之外的情况。
常见的破坏 SEO 的问题
我合作过的很多网站有成千上万的页面,甚至上百万。实在令人费解,为什么一个开发过程中的改动能影响这么多页面。在 SEO 的世界中,Google 或其他搜索引擎展示你的页面时,一个非常微小和看起来无关紧要的修改也可能导致全网站范围的变化。在部署到生产环境之前,必须要处理这类错误。
下面是我去年见过的几个例子。
偶发的 noindex在部署到生产环境之后,我们用的一个专用的第三方 SEO 监控工具 ContentKing 马上发现了这个问题。这个错误很隐蔽,因为它在 HTML 中是不可见的b2b信息网,确切地说,它隐藏在服务器响应头里,但它能很快导致搜索不可见。
HTTP/1.1 200 OKDate: Tue May 25 2010 21:12:42 GMT[...]X-Robots-Tag: noindex[...] canonical 小写上线时错误地把整个网站的 canonical 链接元素全改成小写了。这个改动影响了接近 30000 个 URL。在修改之前,所有的 URL 大小写都正常(例如 URL-Path 这样)。这之所以是个问题是因为 canonical 链接元素是用来给 Google 提示一个网页真实的规范 URL 版本的。这个改动导致很多 URL 被从 Google 的索引中移除并用小写的版本(/url-path)重新建立索引。影响范围是流量损失了 10% 到 15%,也污染了未来几个星期的网页监控数据。
源站退化有个网站的 React 实现复杂而奇特,它有个神奇的问题,origin.domain.com URL 退化显示为 CDN 服务器的源站。它会在网站元数据(如 canonical 链接元素、URL 和 Open Graph 链接)中间歇性地显示原始的主机而不是 CDN 边缘主机。服务器租用这个问题在原始的 HTML 和渲染后的 HTML 中都存在。这个问题影响搜索的可见性和在社交媒体上的分享质量。
SEODeploy 介绍
SEO 通常使用差异测试工具来检测渲染后和原始的 HTML 的差异。差异测试是很理想的,因为它避免了肉眼测试的不确定性。你希望检查 Google 对你的页面的渲染过程的差异,而不是检查用户对你页面的渲染。你希望查看下原始的 HTML 是什么样的,而不是渲染后的 HTML,因为 Google 的渲染过程是有独立的两个阶段的。
这促使我和我的同事创造了 SEODeploy 这个“在部署流水线中用于自动化 SEO 测试的 Python 库。”我们的使命是:
开发一个工具,让开发者能提供若干 URL 路径,并允许这些 URL 在生产环境和预演环境的主机上进行差异测试,尤其是对 SEO 相关数据的非预期的退化。
SEODeploy 的机制很简单:提供一个每行内容都是 URL 路径的文本文件,SEODeploy 对那些路径运行一系列模块,对比生产环境production和预演环境staging的 URL,把检测到的所有的错误和改动信息报告出来。
SEODeploy overview
这个工具及其模块可以用一个 YAML 文件来配置,可以根据预期的变化进行定制。
SEODeploy output
最初的发布版本包含下面的的核心功能和概念:
开源:我们坚信分享代码可以被大家批评、改进、扩展、分享和复用。 模块化:Web 开发中有许多不同的堆栈和边缘案例。SEODeploy 工具在概念上很简单,因此采用模块化用来控制复杂性。我们提供了两个建好的模块和一个实例模块来简述基本结构。 URL 抽样:由于它不是对所有 URL 都是可行和有效的,因此我们引入了一种随机抽取 XML 网站地图 URL 或被 ContentKing 监控的 URL 作为样本的方法。 灵活的差异检测:Web 数据是凌乱的。无论被检测的数据是什么类型(如 ext、数组或列表、JSON 对象或字典、整数、浮点数等等),差异检测功能都会尝试将这些数据转换为差异信息。 自动化: 你可以在命令行来调用抽样和运行方法,将 SEODeploy 融合到已有的流水线也很简单。模块
虽然核心功能很简单,但在设计上,SEODeploy 的强大功能和复杂度体现在模块上。模块用来处理更难的任务:获取、清理和组织预演服务器和生产服务器上的数据来作对比。
Headless 模块Headless 模块 是为那些从库里获取数据时不想为第三方服务付费的开发者准备的。它可以运行任意版本的 Chrome,会从每组用来比较的 URL 中提取渲染的数据。
Headless 模块会提取下面的核心数据用来比较:
SEO 内容,如标题、H1-H6、链接等等。 从 Chrome 计时器Timings和 CDP(Chrome 开发工具协议Chrome DevTools Protocol)性能 API 中提取性能数据 计算出的性能指标,包括 CLS(累积布局偏移Cumulative Layout Shift),这是 Google 最近发布的一个很受欢迎的 Web 核心数据 从上述 CDP 的覆盖率 API 获取的 CSS 和 JavaScript 的覆盖率数据这个模块引入了处理预演环境、网络速度预设(为了让对比更规范化)等功能,也引入了一个处理在预演对比数据中替换预演主机的方法。开发者也能很容易地扩展这个模块,以收集他们想要在每个页面上进行比较的任何其他数据。
其他模块我们为开发者创建了一个示例模块,开发者可以参照它来使用框架创建一个自定义的提取模块。另一个示例模块是与 ContentKing 结合的。ContentKing 模块需要有 ContentKing 订阅,而 Headless 可以在所有能运行 Chrome 的机器上运行。
需要解决的问题
我们有扩展和强化工具库的计划,但正在寻求开发人员的反馈,了解哪些是可行的,哪些是不符合他们的需求。我们正在解决的问题和条目有:
对于某些对比元素(尤其是 schema),动态时间戳会产生误报。 把测试数据保存到数据库,以便查看部署历史以及与上次的预演推送进行差异测试。 通过云基础设施的渲染,强化提取的规模和速度。 把测试覆盖率从现在的 46% 提高到 99% 以上。 目前,我们依赖 Poetry 进行部署管理,但我们希望发布一个 PyPl 库,这样就可以用 pip install 轻松安装。 我们还在关注更多使用时的问题和相关数据。开始使用
这个项目在 GitHub 上,我们对大部分功能都提供了 文档。
我们希望你能克隆 SEODeploy 并试试它。我们的目标是通过这个由技术性搜索引擎优化开发者开发的、经过开发者和工程师们验证的工具来支持开源社区。我们都见过验证复杂的预演问题需要多长时间,也都见过大量 URL 的微小改动能有什么样的业务影响。我们认为这个库可以为开发团队节省时间、降低部署过程中的风险。
如果你有问题或者想提交代码,请查看项目的关于页面。很赞哦!(3)
相关文章
- 以上的就是为大家介绍的关于域名的详解
- 2、根据用户基础选择访问提供程序。由于互联问题的存在,接入商的选择也非常重要,如果用户群主要在联通,尽量选择联通接入较好的接入商,如果用户群主要在电信,那么选择电信接入较好的接入商。如果用户组位于国家/地区,则选择更好的访问提供程序进行交互。
- 用户邮箱的静态密码可能已被钓鱼和同一密码泄露。在没有收到安全警报的情况下,用户在适当的时间内不能更改密码。在此期间,攻击者可以随意输入帐户。启用辅助身份验证后,如果攻击者无法获取移动电话动态密码,他将无法进行身份验证。这样,除非用户的电子邮件密码和手机同时被盗,否则攻击者很难破解用户的邮箱。
- a、变更前的公司证件扫描件(代码证或者营业执照)及联系人身份证复印件、变更后的公司证件扫描件(代码证或者营业执照)及新的联系人身份证复印件;身份证复印件需本人签名,公司证件复印件需加盖公章。
- 付款完成后,您只需耐心等待,如果您注册成功,系统会提示您。这里需要注意的是,域名是一个即时产品,只有在最终付款成功时才能预订,注册成功后不能更改。
- 因为域名解析需要同步到DNS根服务器,而DNS根服务器会不定时刷,只有DNS根服务器刷新后域名才能正常访问,新增解析一般会在10分钟左右生效,最长不会超过24小时,修改解析时间会稍微延长。
- 为了避免将来给我们的个人站长带来的麻烦,在选择域名后缀时,我们的站长最好省略不稳定的后缀域名,比如n,因为我们不知道策略什么时候会改变,更不用说我们将来是否还能控制这个域名了。因此,如果站长不是企业,或者有选择的话,如果不能选择域名的cn类,最好不要选择它。
- 最后提醒我们,域名到期后要及时更新域名,否则可能会丢掉域名,每次抢先注册都不会成功。
- ④注册门槛低
热门文章
站长推荐
4、参加域名拍卖会
.net 适用于从事Internet相关的网络服务的机构或公司
比较短的域名方便用户记忆和传播,它带来的好处往往会超过其他类型的域名,如果你非要域名短而且还要包含关键词,那么往往会事与愿违,现在这种域名基本上是可遇而不可求的。
打开https://www.aizhan.com/输入自己想要查询的域名然后按回车键,如果做过网站都会有数据显示出来
打开https://www.aizhan.com/输入自己想要查询的域名然后按回车键,如果做过网站都会有数据显示出来
用户邮箱的静态密码可能已被钓鱼和同一密码泄露。在没有收到安全警报的情况下,用户在适当的时间内不能更改密码。在此期间,攻击者可以随意输入帐户。启用辅助身份验证后,如果攻击者无法获取移动电话动态密码,他将无法进行身份验证。这样,除非用户的电子邮件密码和手机同时被盗,否则攻击者很难破解用户的邮箱。
3、考虑出售域名
域名和网址一样吗?域名和网址有什么区别?