Intereting Posts
Имеете две разные версии одного и того же поста? добавить дополнительный параметр в ловушку по умолчанию в wordpress Показать ошибки в пользовательской форме входа Прерывания WordPress для короткого кода WooCommerce – как отображать категорию продукта выше продукта? используя подход ООП для создания плагина, но застревает при создании гиперссылок WP SES Plugin как мы можем использовать CC в функции wp_admin? Кто-нибудь знает фрагмент php для показа первых 200 символов последнего сообщения? Боты, размещающие комментарии на страницах Предварительный просмотр API-интерфейса темы Как я могу синхронизировать таблицу wordpress с автономным php-скриптом? пользовательское поле выбора, заполненное выделенной почтовой категорией Проблема с oEmbed в некоторых темах Как сохранить динамически генерируемое значение в типе post? Записывание сценария в нижний колонтитул помещает его в самое нижнее

Многостраничные сообщения не индексируются 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, вам не понадобится этот фрагмент, так как плагин обрабатывает канонические ссылки для вас.