SEODeploy: Flexible and Modular Python Library for Automating SEO Testing in Deployment Pipelines.
This library attempts to provide a flexible format to allow developers to incorporate SEO checks into development workflows. It follows the following design constructs:
- Modular: See the modules folder for examples of drop in testing using the
ModuleBaseclass. Modules dropped in here and configured in
seotesting_config.yamlare automatically tested against sample URLs.
- Diff Checking: Developers can specify in the
seotesting_config.yamlfile where they expect to see differences by ignoring checks. Any other differences, depending on the design of the module, are diff checked across your prod and stage hosts and reported as errors.
- Sampled URLs: The library supplies a sampling mechanism based on ContentKing URLs or a supplied XML sitemap URL that attempts to extract random samples in a statistically significant way. But, developers are free to supply their own paths in the
path_samples.txtfile which are used to diff against production and staging. One good route would be to supply a path representing each template type.
- Flexible: The library contains code that is meant to be reconfigured and repurposed for individual needs. We have tried to make classes and functions as flexible as possible, towards this end.
- Logging: Error, Info, Warning notifications are logged to
seotesting.logvia included functionality.
You can run as many modules as you would like. If modules are configured in
modules_activated of the
seodeploy_config.yaml file, they will run. We have provided the following examples. ContentKing requires a subscription to ContentKing. Headless can be run on any machine capable of running Chrome.
See the docs for all the information you need to get started.
!!! warning This library should be considered beta software and not used as a dependable solution without thorough testing. Expect bugs.
Inspiration for some parts taken from