DataLife Engine / DLE - Ошибка «404 Not Found» для поискового робота на главной странице

DLE - Ошибка «404 Not Found» для поискового робота на главной странице


Суть проблемы

Столкнулся с такой проблемой. На одном из моих сайтов в Вебмастере Яндекса рядом названием появился красный треугольник с восклицательным знаком, предупреждающий о так называемой фатальной ошибке. По определению Яндекса, Главная страница сайта недоступна для его поискового робота. Далее следует следующее сообщение:

При обращении к главной странице сайта не удалось получить документ: «404Not Found». Поскольку страница недоступна для робота, она может быть исключена из результатов поиска.

Проверьте ответ сервера и при необходимости обратитесь к хостинг-провайдеру.

Но при этом, все страницы сайта (в том числе и главная) открываются нормально и визуально к ним нет никаких претензий.

DLE - Ошибка «404Not Found»

Перейдя по ссылке на слове «Проверьте» можно вручную проверить какой ответ передает любая страница сайта. Так вот, с главной действительно передавался ответ «404 Not Found», а с остальных «200 ОК».

Сразу скажу, что сайт собран на движке DLE версия 13, но думаю, что такое может случиться и на других версиях.

DLE - Ошибка «404Not Found»

Гугл в помощь

«Погуглив» особо ничего ценного не нашел, разве что перечень файлов движка DLE, которые потенциально могут отдавать ошибку «404Not Found». Привожу этот список, может кому-то будет полезно:

Если честно, то интуитивно догадывался, что скорее всего дело не в этих файлах, да и редактировать скрипты движка DLE желания особого не было, не такой уж я крутой программист. Поэтому, по рекомендации Яндекс Вэбмастера, решил обратиться к своему хостинг-провайдеру.

Что сказал хостинг-провайдер?

Следует отметить, что специалисты моего хостингера очень с пониманием отнеслись к моей проблеме. Они определили какой именно файл дает ошибку «404Not Found» на главную страницу сайта. Проблема была в файле ./engine/modules/static.php.

Ребята предложили заменить строку @header( "HTTP/1.0 404 Not Found" ); на @header( "HTTP/1.0 200 OK" ); Но предупредили, что это прямое вмешательство в код движка, и посоветовали обратится к разработчикам DLE для прояснения ситуации.

После этой замены главная страница уже не отдает «404 ошибку», но я понимал, что это «косметическое» решение проблемы.

Логику никто не отменял

Я решил подойти к этой проблеме логически. Если речь идет только о главной, и при этом упоминаются только статические страницы, то я решил проверить в Админке DLE настройки. В разделе «Основные настройки» есть пункт «Информация выводимая по умолчанию на главной странице» и предлагается выбрать один из трех вариантов:

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

DLE - Ошибка «404Not Found»

Внимательно перечитав рекомендации:

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

Я понял, что в моем случае нужно выбирать вариант Новости выводимые в шаблоне при помощи тега {custom}. После того как я исправил, при проверке в Вэбмастере Яндекса, с главной уже ответ был «200 OK». В принципе проблема решена. Теперь нужно подождать несколько дней, пока поисковый робот Яндекса проверит главную страницу моего сайта и уберет предупреждение о фатальной ошибке.

Надеюсь кому-то будет полезен мой опыт устранения ошибки «404Not Found» на сайте с ДЛЕ.

7-03-2019,
Вернуться назад