Hooks reference
Every action and filter in Siteryn SEO, GEO & AEO and Pro, with signatures checked against the code. Free hooks start with siteryn_seo_geo_aeo_.
Lifecycle
| Hook | Type | Arguments · when |
|---|---|---|
…_loaded | action | ( Plugin $plugin ). Free booted. |
…_register_services | action | ( Container $container ). Register services. |
…_modules | filter | ( ModuleInterface[] $modules ). Add at your plugin's top level. |
…_module_booted | action | ( string $id, ModuleInterface $module ) |
…_upgrade | action | ( string|false $old, string $new ). init (20). |
…_migration_completed | action | ( string $step_id ) |
…_deactivate | action | () |
Content & capabilities
| Hook | Type | Arguments |
|---|---|---|
…_map_capability | filter | ( string[] $caps, string $cap, int $user_id, array $args ) |
…_post_types · …_taxonomies | filter | ( string[] $types ). Supported content. |
…_post_context | filter | ( array $context, WP_Post $post ) |
…_term_context | filter | ( array $context, WP_Term $term ) |
…_request_context | filter | ( array $context ). Front-end view descriptor. |
…_site_identity | filter | ( array $identity ) |
…_stop_words | filter | ( string[] $words ) |
…_content_seo_saved | action | ( int $post_id, string[] $changed, array $submitted ) |
…_term_seo_saved | action | ( int $term_id, string[] $changed ) |
…_product_seo_saved | action | ( WC_Product $product, bool $changed ) |
Analysis
| Hook | Type | Arguments |
|---|---|---|
…_analyzers | filter | ( AnalyzerInterface[] $analyzers ) |
…_pre_analyze | filter | ( ?array $result, int $post_id, array $overrides ). Short-circuit. |
…_post_checks · …_term_checks | filter | ( array $checks, array $context, array $values ) |
…_product_checks | filter | ( array $checks, WC_Product $product, array $values ) |
…_geo_checks | filter | ( array $checks, array $context ) |
…_aeo_checks | filter | ( array $checks, array $context, array $questions ) |
…_score | filter | ( int $score, array $checks, string $kind ). Clamped to 0–100. |
…_geo_site_checks · …_health_checks | filter | ( array $results ) |
…_technical_check_group | filter | ( string $key, array $result ) |
…_other_seo_plugins | filter | ( string[] $names ) |
Head output & robots
| Hook | Type | Arguments |
|---|---|---|
…_head_output_enabled | filter | ( bool $enabled ) |
…_title_vars | filter | ( array $vars, string $template ). Placeholder keys [a-z_]+. |
…_resolved_meta | filter | ( array $meta, array $request ). title, description, canonical, robots, image, og, twitter, object_type. |
…_default_robots | filter | ( array $robots, array $request ). Saved values win. |
…_robots | filter | ( array $robots, array $request ). Final noindex/nofollow. |
…_head_meta | filter | ( array $args, array $data ). Arguments for head-meta.php. |
…_ai_training_crawlers | filter | ( string[] $agents ). Blocked by the AI training opt-out. |
…_template_path | filter | ( string $path, string $name ) |
…_before_template · …_after_template | action | ( string $name, array $args ) |
Structured data
| Hook | Type | Arguments |
|---|---|---|
…_schema_enabled | filter | ( bool $enabled ) |
…_schema_pieces | filter | ( SchemaPieceInterface[] $pieces, array $request ) |
…_schema_graph | filter | ( array $graph, array $request ) |
…_faq_pairs | filter | ( array $pairs, string $html ) |
…_schema_templates | filter | ( array $templates ). Schema Generator types. |
…_schema_variables | filter | ( array $variables ). Picker list. |
…_schema_variable | filter | ( string $value, string $name, string $param, WP_Post $post ) |
…_schema_public_meta | filter | ( string[] $keys ). Protected meta allowed in %meta:%. |
…_schema_entry_items | filter | ( array $items, WP_Post $post ) |
…_schema_item_pieces | filter | ( array $result, array $item, WP_Post $post, array $context ) |
…_schema_sanitize_item | filter | ( ?array $clean, array $raw_item ) |
…_schema_generator_config | filter | ( array $config ) |
…_schema_product | filter | ( array $piece, WC_Product $product ) |
Breadcrumbs, links & audit
| Hook | Type | Arguments |
|---|---|---|
…_breadcrumbs | filter | ( array $trail, array $request ) |
…_breadcrumbs_html | filter | ( string $html, array $trail, array $args ) |
…_link_suggestions | filter | ( array $suggestions, array $context ) |
…_generic_anchors | filter | ( string[] $anchors ) |
…_audit_scan | filter | ( array $state, array $context, array $report ). Store under $state['ext'][id]. |
…_audit_completed | action | ( array $results ) |
…_audit_export_columns | filter | ( array $columns ) |
…_audit_export_row | filter | ( array $row, int $id, array $state ) |
Settings & admin UI
| Hook | Type | Arguments |
|---|---|---|
…_settings_sections · …_settings_fields | filter | ( array $items ) |
…_settings_get_all | filter | ( array $settings ). Runtime only. |
…_render_field_{$type} | action | ( array $field, mixed $value, string $name, string $id ) |
…_sanitize_field_{$type} | filter | ( mixed $default, mixed $raw, array $field ) |
…_settings_save_redirect | filter | ( false|array $redirect, string $option_name ) |
…_settings_reset_actions | filter | ( array $actions ) |
…_settings_nav_groups | filter | ( array $groups ) |
…_settings_nav_group · _nav_parent · _nav_parent_label · _nav_sublabel · _nav_icon · _nav_badge · _settings_description | filter | ( string $value, string $section ) |
…_settings_nav_visible | filter | ( bool $visible, string $section ) |
…_settings_subtabs | filter | ( array $subtabs, string $section ) |
…_settings_panel_before · …_settings_main_after · …_settings_sidebar | action | ( string $section ) |
…_content_panel_main · …_content_panel_side | action | ( WP_Post $post ). SEO box columns. |
…_term_panel_main | action | ( WP_Term $term ) |
…_overview_views · _overview_setup_steps · _overview_shortcuts | filter | ( array $items ) |
…_overview_after | action | ( array $summary ) |
…_dashboard_cards | filter | ( array $cards ). Catalog SEO. |
…_dashboard_after | action | ( int $page, string $filter ) |
…_system_status_cards | filter | ( array $cards, bool $pro_active ) |
…_fix_guides | filter | ( array $guides ) |
…_transfer_options | filter | ( string[] $options ) |
…_transfer_export · …_transfer_import | filter | ( array $value, string $name ) |
JavaScript: siteryn-sga:panel-ready (SEO box API in detail: getValues(), setField(), say()), siteryn-sga:analysis-updated and siteryn-sga:schema-ready, all on document.
Pro hooks Pro
Prefix siteryn_seo_geo_aeo_pro_.
| Hook | Type | Arguments · purpose |
|---|---|---|
…pro_loaded | action | ( Plugin $plugin ). Licensed or not. |
…pro_register_features | action | ( Plugin $plugin ) |
…pro_features_loaded | action | ( Plugin $plugin ). License active. |
…pro_feature_booted | action | ( string $id, FeatureInterface $feature ) |
…pro_features | filter | ( array $features ) |
…pro_upgrade · …pro_migrated | action | ( string|false $old, string $new ) · ( string[] $ran, string|false $from ) |
…pro_activated · …pro_deactivate | action | () |
…pro_license_activated | action | ( ActivationOutcome $outcome ). After every attempt. |
…pro_license_deactivated | action | ( bool $done ) |
…pro_owner_capability | filter | ( string $cap = 'manage_options' ) |
…pro_audit_indexed | action | ( array $rows, array $results ) |
…pro_index_row | filter | ( array $row, array $context, array $report ) |
…pro_seo_report · _geo_report · _aeo_report | filter | ( array $report, array $rows, array $context ) |
…pro_seo_report_built | action | ( array $report ) |
…pro_history_snapshot | filter | ( array $snapshot, array $rows ) |
…pro_history_recorded | action | ( array $snapshot ) |
…pro_intent_markers | filter | ( array $markers ) |
…pro_address_params | filter | ( string[] $params ). Parameters that never trigger noindex. |
…pro_ai_crawlers | filter | ( array $crawlers ) |
…pro_llms_txt_lines | filter | ( string[] $lines ) |
…pro_answer_templates | filter | ( array $templates, string $subject ) |
…pro_crawl_report | filter | ( array $report, array $state ) |
…pro_crawl_completed | action | ( array $report ) |
…pro_catalog_report | filter | ( array $report, array $rows ) |
…pro_brand_taxonomies · …pro_identifier_meta_keys | filter | ( string[] $values ) |
…pro_redirects_changed | action | ( array $rules ) |
…pro_bulk_meta_saved | action | ( int $post_id ) |
…pro_report_email | filter | ( array $mail ). subject, body. |
…pro_template_path | filter | ( string $path, string $name ) |
…pro_tabs | filter | ( array $tabs ) |
…pro_admin_config | filter | ( array $config ) |
…pro_admin_screen | filter | ( bool $load, string $hook_suffix ) |
…pro_ai_providers | filter | ( array $providers ). Key must equal get_id(). |
…pro_ai_provider_config | filter | ( ProviderConfig $config ) |
…pro_ai_max_retries | filter | ( int $retries = 1, string $provider_id ). 0–2. |
…pro_ai_allow_insecure_local_endpoint | filter | ( bool $allow = false, string $url ) |
…pro_ai_tasks | filter | ( array $tasks ) |
…pro_ai_prompt | filter | ( array $prompt, string $template, array $data ) |
…pro_ai_entry_context | filter | ( array $data, int $post_id ). What is sent for an entry. |
…pro_ai_capability | filter | ( string $cap = 'edit_others_posts' ) |
…pro_ai_suggested | action | ( array $result, array $args, int $user_id ) |