Скрытие пользовательского типа записи от Google?


У меня есть плагин, который использует пользовательский тип записи для хранения контента, который я извлекаю с помощью шорткода в другом месте. Однако на новом сайте я заметил, что одно из сообщений в CPT начало появляться в результатах поиска Google. Сообщение нигде не связано напрямую. Как бы это там проявилось? Как я могу скрыть его от отображения в Google?

Я установил для public значение false, теперь это просто превращает страницу в домашнюю страницу. Я не знаю, что это полностью решит мою проблему. Что еще я могу сделать?

register_post_type('mycpt', array(
    'labels' => $labels,
    'public' => false,
    'show_ui' => true,
    'menu_icon' => $icon_svg,
    '_builtin' => false,
    'capability_type' => 'page',
    'hierarchical' => true,
    'rewrite' => false,
    'query_var' => 'mycpt',
    'exclude_from_search' => true,
    'supports' => array(
        'title', 'editor', 'revisions',
    ),
    'show_in_menu' => true,
));
Author: paper_robots, 2017-09-28

2 answers

Если вы используете SEO-плагин, такой как Yoast, он автоматически добавляет все пользовательские типы записей (и таксономии) в карту сайта, используемую Google и другими поисковыми системами.

Вам нужно будет явно исключить их из карты сайта, например, в Yoast, это находится на вкладке "Типы записей"/"Таксомонии" на странице настроек "XML-карты сайта".

Также не забудьте удалить ссылки из Google с помощью Инструментов для веб-мастеров - в противном случае вам придется подождать, пока Google переиндексируйте свой сайт.

 3
Author: FluffyKitten, 2017-09-28 14:40:00

Существует способ скрыть тип записи по умолчанию от Yoast. Однако ваш пробег может варьироваться в зависимости от того, что вы делаете с вашим типом сообщения. Если вы используете его непосредственно на переднем конце, то это не сработает для вас. В моем случае я извлекал контент с помощью коротких кодов.

Таким образом, аргумент "публичный" при регистрации вашего типа сообщения включает/отключает несколько аргументов одновременно. Смотрите описание здесь: https://codex.wordpress.org/Function_Reference/register_post_type

Вы можете установить их вручную для более точного контроля. Аргумент, который, как я обнаружил, помог решить мою проблему, был publicly_queryable. Установив для этого значение false, он отключил мой пользовательский тип публикации от наличия интерфейсных страниц. В чем я не нуждался. Это скрыло тип сообщения от Йоаста. Все административные вещи продолжали работать, тип сообщения все еще функционировал так, как мне было нужно.

 2
Author: paper_robots, 2017-09-28 15:10:18