WooCommerce: как изменить структуру постоянных ссылок

Опубликовано: 2021-09-28

Структура постоянных ссылок WooCommerce может показаться новичкам необычной. Эти /product/ и /product-category/ части URL-адреса являются хорошо известными отличительными особенностями, но некоторые эксперты не согласны с тем, что это самый удобный способ обработки постоянных ссылок с точки зрения SEO.

Популярная идея состоит в том, чтобы всегда поддерживать как можно более простую структуру URL и удалять из нее все ненужные части. Вам не нужно верить на слово этим экспертам или мне, поскольку официальное руководство от Google предлагает избегать длинных URL-адресов с ненужными параметрами.

Итак, что это означает для создателей магазинов WooCommerce?

Прежде всего, такие базы URL, как /shop/ , /product-category/ и /product/ , можно считать ненужными, поскольку Google знает, как определять страницы магазина и продукта без необходимости указывать это внутри URL.

И, вероятно, вы не хотите создавать у поисковых роботов ложное представление о глубине сайта, чтобы они не оценивали эти страницы ниже, чем должны быть. Опять же известный принцип — страницы ближе к основной папке (домену) более значимы для поисковых систем.

Если вы согласны с такими утверждениями, было бы полезно понять, как изменить структуру постоянных ссылок в WooCommerce. Так что читайте дальше, чтобы узнать об этом.

Какова структура постоянных ссылок WooCommerce по умолчанию?

Давайте посмотрим, как теперь работают постоянные ссылки и что мы можем сделать, чтобы сделать их более удобными для пользователя.

Есть несколько вещей, которые вы должны обязательно указать при создании настроек постоянной ссылки:

  • база категорий продуктов (по умолчанию /product-category/ )
  • база тегов продукта ( /product-tag/ по умолчанию)
  • база страницы продукта (может быть /product/ , /shop/ или любая другая пользовательская база)

Вы не можете оставить эти параметры пустыми или использовать одни и те же (например, /shop/ ) для обеих постоянных ссылок. Базы продуктов, категорий и тегов должны быть уникальными, чтобы не возникало конфликтов между таксономиями, постами и страницами.

Таким образом, URL-адреса по умолчанию для страниц магазина могут быть следующими:

  • Для страниц категорий: site.com/product-category/category-slug
  • Для страниц с тегами: site.com/ product-tag /tag-slug
  • Для страниц товаров : site.com/product/product-slug

В то время как это прекрасно подходит для страниц тегов (вам, вероятно, нужна некоторая база для определения разницы между категориями и коллекциями), использование этих баз для URL-адресов страниц категорий и продуктов может быть излишним.

Почему стоит подумать об изменении постоянных ссылок по умолчанию

Иногда пользователи WooCommerce призывают избавиться от баз /product-category/ и /product/ или манипулировать стандартной структурой URL другими способами. Это происходит по двум существенным причинам:

  • Они хотят видеть простые и понятные URL-адреса , которые также могут быть полезны с точки зрения SEO.
  • В случае перехода с другой CMS на WP\Woo и желании сохранить прежнюю структуру URL

Спорный вопрос, может ли удаление этих частей URL-адреса улучшить ваши результаты SEO. Но это самая популярная причина, по которой люди даже рассматривают возможность разрушения структуры постоянных ссылок WooCommerce по умолчанию.

Есть несколько уважаемых источников, рассказывающих нам, как структурировать постоянные ссылки и почему более короткие URL-адреса лучше — факторы ранжирования поисковой системы Backlinko (пункт № 10), рекомендации Moz по структурированию URL-адресов (пункты № 6 и № 11).

Если вы запускаете новый веб-сайт, можно безопасно провести такие эксперименты и посмотреть, как это поможет вашему SEO. В то время как изменение постоянных ссылок на уже хорошо зарекомендовавшем себя веб-сайте может быть рискованным делом. Я объясню свои опасения дальше.

Что касается изменения постоянных ссылок, чтобы они соответствовали URL-адресам вашего старого веб-сайта, с другой стороны, это кажется разумным и оставляет вам больше шансов не навредить вашему послужному списку SEO.

Как удалить /product-category/ и /product/ из постоянных ссылок WooCommerce

Следующие методы безопасны для использования на новых веб-сайтах, когда вам не нужно играть с переадресацией 301, чтобы ваши пользователи и сканеры знали, что URL-адрес был изменен.

Первое, что вам нужно сделать, это перейти в «Настройки WP»> «Постоянные ссылки», прокрутить до « База категорий продуктов » и написать «». (точка) в качестве пользовательской базы.

Затем вставьте этот фрагмент в файл functions.php:

add_filter( 'request', function( $vars ) {

    global $wpdb;

    if( ! empty( $vars['pagename'] ) || ! empty( $vars['category_name'] ) || ! empty( $vars['name'] ) || ! empty( $vars['attachment'] ) ) {

        $slug = ! empty( $vars['pagename'] ) ? $vars['pagename'] : ( ! empty( $vars['name'] ) ? $vars['name'] : ( !empty( $vars['category_name'] ) ? $vars['category_name'] : $vars['attachment'] ) );

        $exists = $wpdb->get_var( $wpdb->prepare( "SELECT t.term_id FROM $wpdb->terms t LEFT JOIN $wpdb->term_taxonomy tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'product_cat' AND t.slug = %s" ,array( $slug )));

        if( $exists ){

            $old_vars = $vars;

            $vars = array('product_cat' => $slug );

            if ( !empty( $old_vars['paged'] ) || !empty( $old_vars['page'] ) )

                $vars['paged'] = ! empty( $old_vars['paged'] ) ? $old_vars['paged'] : $old_vars['page'];

            if ( !empty( $old_vars['orderby'] ) )

                    $vars['orderby'] = $old_vars['orderby'];

                if ( !empty( $old_vars['order'] ) )

                    $vars['order'] = $old_vars['order'];    

        }

    }

    return $vars;

});

Затем добавьте фильтр для удаления базы /product/ из URL-адреса страницы продукта:

function na_remove_slug( $post_link, $post, $leavename ) {

        if ( 'product' != $post->post_type || 'publish' != $post->post_status ) {

        return $post_link;

    }

        $post_link = str_replace( '/product/', '/', $post_link );

        return $post_link;

}

add_filter( 'post_type_link', 'na_remove_slug', 10, 3 );

function change_slug_struct( $query ) {

        if ( ! $query->is_main_query() || 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) {

        return;

    }

                if ( ! empty( $query->query['name'] ) ) {

                $query->set( 'post_type', array( 'post', 'product', 'page' ) );

                } elseif ( ! empty( $query->query['pagename'] ) && false === strpos( $query->query['pagename'], '/' ) ) {

                $query->set( 'post_type', array( 'post', 'product', 'page' ) );

        // We also need to set the name query var since redirect_guess_404_permalink() relies on it.

        $query->set( 'name', $query->query['pagename'] );

    }

}

add_action( 'pre_get_posts', 'change_slug_struct', 99 );

Фрагменты были взяты из этого обсуждения StackOverflow и, похоже, отлично работают для большинства пользователей, за исключением некоторых случаев:

  • Традиционные URL будут отвечать ошибкой 404. Поэтому, если у вас есть эти страницы, проиндексированные ранее, обязательно создайте переадресацию 301 на соответствующие страницы.
  • Это может не работать с нумерацией страниц или вызывать проблемы с фильтрами, в зависимости от темы и плагина, который вы используете.

Как настроить расширенные правила постоянных ссылок с помощью пользовательских постоянных ссылок для WooCommerce

Несмотря на то, что WooCommerce в своей документации предупреждает нас об удалении /product/ , /product-category/ или /shop/ из URL-адресов, вы можете найти расширение Custom Permalinks for WooCommerce на их официальном рынке. Он предоставляет вам самый безопасный способ изменить параметры постоянных ссылок по умолчанию для категорий и страниц продуктов.

Несколько вариантов постоянных ссылок для страниц категорий доступны здесь:

Сам по себе слаг категории просто означает удаление части /product-category/ из всех URL-адресов, оставив слаг домен + категория.

Полный путь означает удаление /product-category/ и добавление ярлыка родительской категории (если он есть) перед соответствующим ярлыком категории.

Также есть несколько вариантов страниц товаров:

Только ярлык продукта удалит любую лишнюю часть URL-адреса и оставит только ярлык домена + продукта.

Ярлык продукта с названием категории создаст самую популярную версию URL-адреса продукта: домен + ярлык категории + ярлык продукта .

Полный путь работает так же, как вариант № 2, за одним исключением — он расширяет URL-адрес с слагом родительской категории, если он есть в собственной категории продуктов.

Этот плагин устраняет проблемы с нумерацией страниц и фильтрацией, он работает независимо от вашей темы и защищает вас от возможных последствий, вызванных поисковым роботом.

Единственное, чего следует опасаться при изменении этих постоянных ссылок, — это дублирование URL-адресов. Дважды проверьте, нет ли у вас страниц или типов сообщений с теми же слагами, что и у категорий или продуктов. Если вы их найдете, обязательно измените эти слаги на уникальные, чтобы избежать дублирования.

Как добавить расширения, такие как .html, к URL-адресам

Честно говоря, я не знаю, есть ли какие-то преимущества или недостатки в этом с точки зрения SEO. Но многие люди просят об этом, поэтому мы не можем игнорировать эту тему.

Вероятно, основная причина, по которой вы ищете решение, — это миграция с другой CMS . Если вы решите перейти с другой платформы на WooCommerce, вы можете скопировать свои старые URL-адреса (например, с .html в конце).

Конечно, вы можете использовать 301 редиректы, чтобы все знали о ваших новых URL-адресах, но мы часто замечаем тривиальное снижение трафика и позиций в поисковой выдаче после заполнения сайта кучей 301 редиректов в течение некоторого времени. Вероятно, это не имеет ничего общего с самой переадресацией, потому что, как говорит Google, они больше не наказывают PageRank за использование редиректов.

Но из-за других причин, связанных с миграцией контента, новым пользовательским интерфейсом и вероятностью неработающих ссылок, вы можете не рисковать и пытаться воссоздать те же URL-адреса, которые у вас были.

Пользовательские постоянные ссылки для WooCommerce дают вам возможность добавить любое расширение в конце URL-адреса, будь то .html, .php., .htm или что вам нужно:

Как избежать проблем с SEO после изменения постоянных ссылок

Сложная часть изменения URL-адресов — это дублирование контента, ошибки 404 и перенаправления.

Когда вы манипулируете URL-адресами на недавно созданном веб-сайте без каких-либо записей о домене, рейтинге страниц и URL-адресах в индексе Google, вам не о чем беспокоиться. Вы можете свободно проводить эксперименты и подбирать любую комбинацию постоянных ссылок, которая вам нравится.

Но когда дело доходит до изменения постоянных ссылок на веб-сайте с историей и высокими позициями в поисковой выдаче , вам следует тщательно перепроверить эти четыре столпа:

  1. Существуют ли какие-либо страницы, сообщения, таксономии, настраиваемые типы сообщений или другие возможные объекты с тем же ярлыком , что и категории или страницы продуктов? Если вы их найдете, рассмотрите возможность замены слагов на уникальные, чтобы избежать конфликтов.
  2. Перейдите в консоль поиска Google и проверьте наличие страниц с ответами 404. Если вы обнаружите какие-то неработающие ссылки , вам следует просканировать файл sitemap.xml на предмет их наличия или любых других страниц сайта, на которые вы могли бы вручную поместить старые ссылки.
  3. Если есть шанс, что где-то можно обнаружить старые URL-адреса, обязательно включите тег rel=canonical . Это необходимо для того, чтобы поисковые роботы знали, какой странице приписывать контент, и тогда Google не накажет вас за создание дубликатов.
  4. Ни в коем случае не забывайте про 301 редиректы. Это важно как для посетителей веб-сайта, так и для поисковых роботов. После того, как вы измените постоянные ссылки, старые больше не будут доступны, поэтому все, включая сканеры, будут получать 404 ошибки, посещая их. Если вы изменили постоянные ссылки с помощью скрипта, я бы порекомендовал установить плагин Redirection для обработки перенаправлений .

Но вы можете спать спокойно: пользовательские постоянные ссылки для WooCommerce создадут переадресацию 301 и «rel=canonical» для старых URL-адресов, как только вы измените структуру постоянных ссылок. А также в сочетании с плагином Yoast они сгенерируют новую карту сайта от вашего имени с соответствующими URL-адресами.

Вывод

WooCommerce предупреждает нас о последствиях изменения постоянных ссылок — замедлении работы сайта и конфликтах URL. Но, учитывая, что это заявление было сделано давным-давно, и с тех пор они проверили этот премиальный плагин, который делает именно это, возможно, WooCommerce изменила свое мнение о постоянных ссылках.

Поможет ли это вашему SEO?

Ну, это более сложный вопрос. Некоторые исследователи говорят да; некоторые эксперты по SEO рекомендуют сократить количество папок на пути к продуктам и категориям и создавать более короткие URL-адреса. Но я оставляю это решение на ваше усмотрение. В конце концов, когда дело доходит до SEO, абсолютной истины не существует.

И если вы решите попробовать, как сделать это безопасно?

Если вы создаете новый веб-сайт, вы можете выбрать любой метод, который вам нравится — добавление фрагментов кода или установка плагина, оба варианта кажутся безопасными. Только не забудьте проверить, все ли на месте в sitemap.xml и есть ли комментарии на стороне консоли поиска Google.

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

Плагин может удовлетворить все ваши потребности, а доступная поддержка на WooCommerce.com поможет вам справиться с потенциальными проблемами. Поскольку постоянные ссылки имеют решающее значение для SEO, будет кошмаром остаться один на один с такой проблемой.