Intereting Posts
Как я могу предварительно указать URL-адрес кнопки добавления медиафайла Вставьте содержимое плагина до конца корпуса gform_after_submission не работает как ожидалось Очистить вывод, добавленный через wp_head () Является ли список имен пользователей или идентификаторов в поле настраиваемого профиля лучшим способом создания списка подписчиков? Код работает на странице-example.php, а не на category-example.php Сетевая установка дает ошибки при просмотре или добавлении пользователя восстановленная старая база данных теперь некоторые символы изменились? Получать случайные пользовательские сообщения из настраиваемого типа сообщений Почему я не могу получить правильную постоянную ссылку? Обновить сообщение meta не работает на wp_postmeta Сделать настраиваемую тему переведенной Перетаскивание n Отправка сообщения о рассылке для нескольких пользовательских типов сообщений Использование is_front_page в sidebar.php Обновление get_pages с помощью ajax при изменении формы

Многостраничные сообщения не индексируются Google из-за канонических URL-адресов

Я только что заметил, что на моих текстовых постах в Google индексируется только основная страница. Например, постраничные сообщения «пост-титул / 2» и «послезаголовок / 3» не индексируются.

При ближайшем рассмотрении кажется, что WordPress создает один и тот же канонический URL для всех страниц в разбивке на страницы. Таким образом, канонический для страницы 2 одинаковый для страницы 1 и т. Д. Поэтому, когда google crawls page 2+, канонический направляет их обратно на первую страницу.

Какие-нибудь подсказки, как решить эту проблему, чтобы получить более интеллектуальный канонический URL-адрес на страницах и страницах с разбивкой по страницам?

Для этого вам нужно будет заменить функцию rel_canonical по умолчанию:

 function wpse_84647_rel_canonical() { /* Only affect singular posts. Exit early if Yoast SEO is doing this for us */ if ( ! is_singular() || class_exists( 'WPSEO_Frontend' ) ) return; /* Get the post permalink */ $post = get_queried_object(); $link = trailingslashit( get_permalink( $post->ID ) ); /* Get the number of pages the post is split into */ $numpages = substr_count( $post->post_content, '<!--nextpage-->' ) + 1; /* Get the current pagination page number */ $page = ( get_query_var( 'page' ) ? get_query_var( 'page' ) : 1 ); /* Add the page number if the post is paginated */ if ( $numpages && $page > 1 ) $canonical = user_trailingslashit( $link . $page ); else $canonical = get_permalink( $post->ID ); /* Output the canonical link */ printf ( "\n" . '<link rel="canonical" href="%s" />', $canonical ); /* Add the adjacent rel links */ if ( $page > 1 ) { remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); /* Link to the previous adjacent post */ $prev = $page - 1; if ( $prev > 1 ) printf ( "\n" . '<link rel="prev" href="%s" />', user_trailingslashit( $link . $prev ) ); else printf ( "\n" . '<link rel="prev" href="%s" />', get_permalink( $post->ID ) ); } if ( $page < $numpages ) { remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); /* Link to the next adjacent post */ $next = $page + 1; printf ( "\n" . '<link rel="next" href="%s" />', user_trailingslashit( $link . $next ) ); } print "\n"; } remove_action( 'wp_head', 'rel_canonical' ); add_action( 'wp_head', 'wpse_84647_rel_canonical', 9 ); 

Эта новая функция добавляет постраничную страницу из URL-адреса и добавляет ее в каноническую ссылку. Он также добавит следующие и предыдущие ссылки на соседние страницы, чтобы Google знал

Кроме того, если вы используете плагин Yoast WordPress SEO, вам не понадобится этот фрагмент, так как плагин обрабатывает канонические ссылки для вас.