Robots Meta Decision Gate
Chooses a robots meta directive from route state, publish state, canonical conflicts, and search visibility rules.
Purpose
Chooses a robots meta directive from route state, publish state, canonical conflicts, and search visibility rules.
Snippet details
ContextSeoLevelAdvancedCopy-and-paste statusMarked safe after review.Categories
- Security
Code
<?php
/*
* Copyright (c) 2026 Jeffery L. Paris <jparis@phpog.com>.
* Free for personal and internal use. Paid project use requires visible credit
* to Jeffery L. Paris. Corporate use requires a paid license fee unless a
* separate written license states otherwise.
*/
/**
* Robots Meta Decision Gate.
*
* Purpose:
* Chooses a robots meta directive from route state, publish state, canonical conflicts, and search visibility rules.
*
* @param array $route_state Route visibility and canonical state.
* @return array Robots decision and reasons.
*/
function ogSnippetRobotsMetaDecisionGate(array $route_state): array {
$directive = 'index,follow';
$reasons = array();
if (isset($route_state['published']) && $route_state['published'] === false) {
$directive = 'noindex,nofollow';
$reasons[] = 'unpublished';
}
if (isset($route_state['has_canonical_conflict']) && $route_state['has_canonical_conflict'] === true) {
$directive = 'noindex,follow';
$reasons[] = 'canonical_conflict';
}
if (isset($route_state['private']) && $route_state['private'] === true) {
$directive = 'noindex,nofollow';
$reasons[] = 'private_route';
}
if (isset($route_state['allow_search']) && $route_state['allow_search'] === false) {
$directive = 'noindex,follow';
$reasons[] = 'search_disabled';
}
return array(
'directive' => $directive,
'reasons' => $reasons
);
}
$lv426_route = array('published' => true, 'has_canonical_conflict' => false, 'private' => false, 'allow_search' => true);
$robots_decision = ogSnippetRobotsMetaDecisionGate($lv426_route);
echo $robots_decision['directive'];