Cecil

SeoDoctor

SEO audit domain service.

Table of Contents

Constants

DEFAULT_CONFIG  : mixed = ['title' => ['min' => 30, 'max' => 60], 'descri...
Default configuration thresholds

Methods

audit()  : array{summary: array{pages_audited: int, pages_without_findings: int, bad_count: int, ok_count: int, feedback_count: int}, findings: array}
auditPage()  : array<int, array{level: string, check: string, details: string}>
countNodes()  : int
countWords()  : int
createFinding()  : array{level: string, check: string, details: string}
createXPath()  : DOMXPath|null
getBodyText()  : string
getFirstNodeText()  : string
getPageLabel()  : string
loadConfiguration()  : array{0: array{title_min: int, title_max: int, description_min: int, description_max: int, min_word_count: int}, 1: array}
normalizeText()  : string

Constants

DEFAULT_CONFIG

Default configuration thresholds

private mixed DEFAULT_CONFIG = ['title' => ['min' => 30, 'max' => 60], 'description' => ['min' => 120, 'max' => 160], 'content' => ['min_words' => 300], 'checks' => ['title' => true, 'description' => true, 'canonical' => true, 'h1' => true, 'og_tags' => true, 'img_alt' => true, 'content_length' => true, 'lang_attribute' => true]]

Methods

audit()

public audit(Builder $builder[, array{page?: string, include_virtual?: bool} $options = [] ]) : array{summary: array{pages_audited: int, pages_without_findings: int, bad_count: int, ok_count: int, feedback_count: int}, findings: array}
Parameters
$builder : Builder
$options : array{page?: string, include_virtual?: bool} = []
Return values
array{summary: array{pages_audited: int, pages_without_findings: int, bad_count: int, ok_count: int, feedback_count: int}, findings: array}

auditPage()

private auditPage(Builder $builder, Page $page, array{title_min: int, title_max: int, description_min: int, description_max: int, min_word_count: int} $thresholds, array<string, bool> $checks) : array<int, array{level: string, check: string, details: string}>
Parameters
$builder : Builder
$page : Page
$thresholds : array{title_min: int, title_max: int, description_min: int, description_max: int, min_word_count: int}
$checks : array<string, bool>
Return values
array<int, array{level: string, check: string, details: string}>

countNodes()

private countNodes(DOMXPath $xpath, string $query) : int
Parameters
$xpath : DOMXPath
$query : string
Return values
int

countWords()

private countWords(string $text) : int
Parameters
$text : string
Return values
int

createFinding()

private createFinding(string $level, string $check, string $details) : array{level: string, check: string, details: string}
Parameters
$level : string
$check : string
$details : string
Return values
array{level: string, check: string, details: string}

createXPath()

private createXPath(string $html) : DOMXPath|null
Parameters
$html : string
Return values
DOMXPath|null

getBodyText()

private getBodyText(DOMXPath $xpath, string $html) : string
Parameters
$xpath : DOMXPath
$html : string
Return values
string

getFirstNodeText()

private getFirstNodeText(DOMXPath $xpath, string $query) : string
Parameters
$xpath : DOMXPath
$query : string
Return values
string

loadConfiguration()

private loadConfiguration(Builder $builder) : array{0: array{title_min: int, title_max: int, description_min: int, description_max: int, min_word_count: int}, 1: array}
Parameters
$builder : Builder
Return values
array{0: array{title_min: int, title_max: int, description_min: int, description_max: int, min_word_count: int}, 1: array}

normalizeText()

private normalizeText(string $text) : string
Parameters
$text : string
Return values
string
On this page

Search results