2016-05-21 4 views
-1

У меня есть PHP-сайт, содержащему 1000s страниц ... Каждый день я удалить 10s страниц, которые уже проиндексированных GOOGLE ....PHP сео 404 ошибка в инструмент для веб-мастеров

Когда посетитель пришел к одному из Thos страницы я не проверить, чтобы увидеть, если она будет удалена или нет ... Если я удалил перенаправлять пользователя на страницу поиска, чтобы начать поиск для аналогичного содержания ... Я использую этот код:

if($deleted = true){ 
    header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: /products-search.php"); 
    exit(); 
} 

проблема в том, что в инструменте веб-мастеров GOOGLE я получаю много ошибок 404 для страниц этого типа. В сообщении говорится: целевой URL не существует, но ваш сервер не возвращает ошибку 404 (файл не найден). Подробнее

я не хочу пользователю получить сообщение об ошибке 404 .... мне нужно, чтобы он пошел искать страницы ...

Как решить эту проблему?

+0

Вы действительно не хотите использовать 301. кэш браузера 301. неопределенно долго (как они «постоянный "), поэтому, если вы завершите перевод этого контента или повторно используете его URL, некоторые из ваших пользователей не смогут его получить. Это также запутанно для поисковых систем, так как оно должно быть 404. Почему бы вам не показать свою 404 страницу «Ты имел ввиду пойти?» Такие вещи? – ceejayoz

+0

'header (« HTTP/1.1 404 Not Found »);' работает ли ваше сравнение? 'if ($ deleted = true)' ?? или это ошибка опечатки? –

ответ

2

Вы все равно должны вернуть 404, если только не ожидаете, что эта страница будет создана позже. В этом случае перенаправление - это плохая идея для SEO.

Что вы можете сделать, это вернуть 404 в заголовке, но показать страницу поиска в любом случае:

<?php 

header("HTTP/1.1 404 Not Found"); 

echo "The page you're looking for doesn't exist or was deleted. You can use the search below to find more..."; 

// include search box here 
+0

, пожалуйста, укажите пример кода для моего случая? – Adham

+0

Я обновил свой ответ, чтобы показать его как код. Это так же просто, как и получается. –

+0

Нет необходимости в строке местоположения (заголовок («Местоположение: /products-search.php»);)? – Adham