{% from "rule_metadata.html" import finding as rule_finding, overview as rule_overview, styles as rule_styles %} SEO Analysis Report - {{ url }} {{ rule_styles() }} {% if report_status == "partial" %}
Analysis is partial. Review the reported errors and page status.
{% endif %} {% if score_source in ("static_html", "static_rule_heuristics") %}

Scores summarize completed static HTML checks.

{% endif %} {% if error %}
Analysis failed: {{ error }}
{% endif %} {% for analyzer_error in analysis_errors %}
{{ analyzer_error.analyzer|title }}: {{ analyzer_error.error }}
{% endfor %}
{% if url|safe_url %}{{ url }}{% else %}{{ url }}{% endif %}
Generated: {{ timestamp }}
{{ rule_overview(scoring_policies, scoring_versions, rule_coverage) }} {% include "site_analysis.html" %}
{{ overall_score|number }}
Overall Score
{% for category, score in category_scores.items() %}
{{ score|number }}
{{ category|title }}
{% endfor %}

Issues Found

{{ issue_counts.critical|default(0) }} Critical
{{ issue_counts.warning|default(0) }} Warnings
{{ issue_counts.notice|default(0) }} Notices
{% for severity, issues_list in issues_by_severity.items() %} {% for issue in issues_list %}
{{ issue.category }}
{{ severity|upper }}
{{ issue.message }}
{{ rule_finding(issue) }} {% if issue.details %}
{{ issue.details|tojson(indent=2) }}
{% endif %}
{% endfor %} {% endfor %}
{% if recommendations %}

Recommendations

    {% for rec in recommendations %}
  1. {{ loop.index }}
    {{ rec }}
  2. {% endfor %}
{% endif %} {% if pages_summary|length > 1 or summary %}

Pages ({{ pages_summary|length }})

{% for page in pages_summary %} {% endfor %}
URLScoreStatusLoad timeIssuesAnalysis status
{{ page.url }}{{ page.score|number }} {{ page.status_code if page.status_code is not none else 'Unavailable' }} {{ page.load_time|number(2, 's') }}{{ page.issue_count }} {{ page.error or page.status or '' }}
{% endif %}