Принудительно отдать 404

Приветствую всех.

Подскажите, пожалуйста, а есть ли возможность в шаблоне при выполнении определенного условия принудительно отправлять на 404 ошибку?
Т.е. организовать что-то вроде своеобразного редиректа {if условие}отдаем 404{/if}
404 я хочу отдавать вместо несуществующих страниц пагинации "?page=1000" и т.п. Возможно есть более правильный способ блокировки подобных страниц пагинации.

Плагины не предлагайте.

5 ответов

  • 1
    Подскажите, пожалуйста, а есть ли возможность в шаблоне при выполнении определенного условия принудительно отправлять на 404 ошибку?

    Да, есть. Доработкой плагина есть и возможность изменить код ответа на 404 и возможность подгрузить error.html. В каждой теме дизайна индивидуально. Пример кода вам приводить не буду.


    404 я хочу отдавать вместо несуществующих страниц пагинации "?page=1000" и т.п. Возможно есть более правильный способ блокировки подобных страниц пагинации.

    Если страница ?page=1000 закрыта от индексации метатегом noindex, то, на мой взгляд, неважно какой там код ответа 200 или 404 и неважно подгружается ли там шаблон error.html или нет.


    Плагины не предлагайте.

    Есть один плагин который за пару кликов позволяет внедрить метатег  noindex на страницы пагинаций .... но вам его ни в коем случае не рекомендую!

    • +1
      Плебей Плебей 12 августа 2021 11:51 #

      Спасибо. Сарказм, мне кажется, неуместен и не красит вас.

      Везде, где это необходимо, у меня проставляется noindex. Зачем мне для этого покупать ваш или какой-либо другой плагин? Проблема в том, что (по моим наблюдениям) тот же Гугл собирает все страницы с noindex и периодически их все равно обходит. Да, он их не индексирует, страницы не влияют на какие-то показатели сайта, сео и т.п. Но на их обход тратится краулинговый бюджет. Таких страниц собираются тысячи и более. Со страницами 404 ситуация более предсказуемая - после пары обходов они выбрасываются и забываются. Повторюсь, что это мое мнение, основанное лишь на моих наблюдениях поведения поисковика. Возможно на самом деле все обстоит не совсем так, и я не прав.

      • +1

        Везде, где это необходимо, у меня проставляется noindex. Зачем мне для этого покупать ваш или какой-либо другой плагин?

        На 99% темах дизайна noindex не проставляется. Если у вас проставляется - хорошо.

        Проблема в том, что (по моим наблюдениям) тот же Гугл собирает все страницы с noindex и периодически их все равно обходит. Да, он их не индексирует, страницы не влияют на какие-то показатели сайта, сео и т.п. Но на их обход тратится краулинговый бюджет. Таких страниц собираются тысячи и более. Со страницами 404 ситуация более предсказуемая - после пары обходов они выбрасываются и забываются. Повторюсь, что это мое мнение, основанное лишь на моих наблюдениях поведения поисковика. Возможно на самом деле все обстоит не совсем так, и я не прав.

        - Посмотрел как реализованы страницы вида ?page=9999 у топовых сайтов, гигантов. Везде увидел 200-й код и закрытие страниц через метатег noindex.

        - Ни разу ни на одном проекте не сталкивался с тем, чтобы подобные страницы сайта тратили большой краулинговый бюджет. Обычно боты приходят на страницы ?page=33 на которых на данный момент отсутствуют товары только в том случае, если ранее на них были представлены товары (и, соответственно, ранее на страницу выводились ссылки и ее сканирование не было запрещено). Ни разу не замечал чтобы боты приходили на страницу ?page=99999 на которых никогда не было товаров. Проверьте логи вашего сервера. Если подобные посещения у вас имеются - нужно разбираться индивидуально. Это либо ошибки в теме дизайна, либо конкуренты балуются проставлением миллиарда ссылок на миллиард страниц вашего сайта, либо что-то еще нестандартное.

        - В целом, не вижу ничего плохого чтобы вместо 200-го кода ответа на подобных страницах сайта выдавать 404-й код ответа с каким-нибудь кастомным сообщением вида "Вы находитесь на 9999 странице категории Телефоны. Здесь нет товаров! Посмотрите 1-ю страницу категории.". Возможно, так действительно делать логичнее и лучше. Подумаю над тем, чтобы включить подобную доработку в один из плагинов, который планирую выпустить. Но вам рекомендовать не буду! 

        • +1
          replicant replicant 12 августа 2021 18:36 #

          Посмотрел как реализованы страницы вида ?page=9999 у топовых сайтов, гигантов. Везде увидел 200-й код и закрытие страниц через метатег noindex.

          Это вполне нормальная практика, хотя сама идея с 404 кодом, когда происходит выход за пределы диапазона страниц, нравится больше тем, что с "человеческой" точки зрения логичнее. Идешь на несуществующую страницу - лови 404.

          Сейчас noindex вполне реализуется кодом в теме дизайна

          {if $action == 'category' && ($wa->get("page") > $pages_count)}
          <!-- страница за пределами диапазона страниц категории  -->
          <meta name="robots" content="noindex" />
          {/if}

          Гуглобот в поползновениях по таким страницам замечен не был.

          • +1
            Плебей Плебей 12 августа 2021 19:04 #

            У меня примерно так и сделано. Единственное отличие, что индексировать я запрещаю все страницы, кроме первой. Также запрещено индексировать страницы сортировки и пр. При таком раскладе гуглобот все эти страницы собирает в "Покрытие -> Исключено -> Индексирование страницы запрещено тегом noindex" и периодически их обходит в надежде увидеть что-то новое. ))) Но проблема в том, что в этой массе скапливается достаточно большое количество страниц с нереальными номерами (почему Гугл их придумывает - неведомо), которые робот также периодически обходит, получает пустую страницу каталога. Не индексирует ее, но все же сканирует вместо того, чтоб просканировать какую-то нужную страницу.
            Где-то здесь уже мелькали рассуждения о том, что на несуществующие страницы пагинации надо бы отдавать 404, но команда Вебасиста сказала, что страницы с гет-параметрами - это не полноценные страницы, поэтому менять никто ничего не будет. То, что для того же Гугла страницы "?page=", "?sku=", "?sort=" вполне полноценны, никого не интересует.

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите