Class: Abqari::Audit::SEO

Inherits:
Rule
  • Object
show all
Defined in:
lib/abqari/audit/seo.rb

Overview

SEO rule. Catches:

- Missing meta descriptions
- Title / description length problems
- Duplicate titles across pages
- Missing og:image (info — no social-share preview)
- Workshops without Event JSON-LD
- Publications without Book JSON-LD

Redirect stubs (meta-refresh-only pages) are skipped — they're not user-facing content, so SEO rules don't apply.

Constant Summary collapse

TITLE_MAX_CHARS =
60
DESC_MAX_CHARS =
160

Instance Method Summary collapse

Methods inherited from Rule

#initialize

Constructor Details

This class inherits a constructor from Abqari::Audit::Rule

Instance Method Details

#runObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/abqari/audit/seo.rb', line 19

def run
  titles = {}

  html_files.each do |file|
    url  = page_url(file)
    html = File.read(file, encoding: 'UTF-8')
    next if html.include?('http-equiv="refresh"')

    check_title(html, url, titles)
    check_description(html, url)
    check_og_image(html, url)
    check_workshop_event_jsonld(html, url)
    check_publication_book_jsonld(html, url)
  end

  flag_duplicate_titles(titles)
end