The Search Engine Optimization (SEO) module provides tools for analyzing and validating content in your JCR repository. Typically it is used to analyze pages but technically it could also be used to analyze any type of content node in any workspace. The module contains a variety of audit routines that can be configured to test different aspects of your pages and/or content. It has an app which allows content managers to run and view audit routines. These routines can be executed independently or as part of package using the Audit Manager.
Maven is the easiest way to install the modules. Add the following dependencies to your bundle:
The module contains different audit routines that can be run to validate content. Each routine is referred to as an auditor.
An auditor is a Java class that can:
- Test the rendered HTML of your page for validity.
- Test if required properties are defined for your page or content according to best practice SEO.
- Connect to an external service to analyze your page.
- be extended and customized to any analysis you need
Auditors analyze a selected node and either pass or fail the node. Audit failures are graded at three different levels:
- Error - The problem must be corrected.
- Warning - The problem should be corrected.
- Note - The problem is not severe but could be corrected.
The ability to run audits is handled by the Audit Manager. It provides a framework for executing one or more auditors and saving their results. You can add new auditors and change the configuration of defined auditors from the Audit Manager.
SEO Tuner app
The SEO Tuner app (Audit app) is where users can launch audits on web pages. You will find the app installed in the Edit group of admincentral. From the app you can view the results of audits as well as export results to a file.
The browser subapp shows all sites within the website workspace. It adds two new columns for audit status. If the page has errors, warnings or notes this will be indicated in the Audit column. The last time an audit was ran will be reflected in the Audited on column.
This subapp gives information about the audit results. This subapp is spawned when an audit has been run on a selected page from the browser subapp. The audit detail view shows you an overview detailing how many errors, warnings and notes were found in the last audit. The audit details view also has a section for each successful or failed audit that was performed.
Click on an audit section to expand it and find more details on problem found. For some audits, you might also find a button that will link you to an app where you can correct the problem.
The SEO module contains two custom actions that can be configured into other apps. Both actions launch an analysis by the Audit Manager using configured auditors:
Here it is as a sample decoration file:/my-module/decorations/pages/apps/pages.yaml
AuditPageActionlaunches an analysis running all active auditors (see the active property for auditor configuration below).
FlexiAuditPageActionopens a dialog showing all currently configured auditors, allowing the user to pick and choose which auditors are run.
The SEO module contains several types of auditors:
Two types of auditors that do related but separate jobs are validation and definition auditors. They separate the work of determining if a property is defined from the validity of its content.
Definition auditors - check that the value(s) for a property have been defined. They do not validate the value(s) of the property.
Validation auditors - validate the value(s) for a designated property if the property (or its language variant) have been defined.
Definitions auditors Validation auditors
These properties can be used with any auditor:
The name of the auditor, usually the node name (either from JCR or YAML configuration). It's important that each auditor have a unique name among all configured auditors. Auditors will save some results by their name.
A short description of the auditor. The description be displayed when selecting audits.
Defines if the auditor is active.
- This module is at INCUBATOR level. It has had limited testing and low adoption.