Google индексирует сервер путь к файлу сайта?

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

Стек сервера, который я использую, состоит из:

Debian 7 / Apache 2.2.22 / MySQL 5.5.31 / PHP 5.4.4-14

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

www.mydomain.com/srv/www/mydomain?srv/www/mydomain
www.mydomain.com/srv/www?srv/www
www.mydomain.com/srv/www?srv/www/index‎

Инструменты для веб-мастеров теперь говорят мне: "Это важная страница, заблокированная robots.txt", потому что, как только я обнаружил проблему, я поместил 301 переадресацию в htaccess файл для отправки этих запросов на домашнюю страницу и заблокировал адреса в файле роботов.

Кроме того, я отправил XML-карту сайта со всеми правильными URL-адресами в инструменты для веб-мастеров.

Все файлы сайта хранятся в:

/srv/www/mydomain/public_html/

Теперь, я думаю, это как-то связано с тем, как я настроил свои правила переписывания модов.htaccess, но я не могу понять, что делает. Это также может быть моя конфигурация Apache vhosts. Я включу оба ниже:

.htaccess mod-rewrite правила:

<IfModule mod_rewrite.c>
    RewriteEngine on

# Redirect requests for all non-canonical domains
# to same page in www.mydomain.com
    RewriteCond %{HTTP_HOST} .
    RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$
    RewriteRule (.*) http://www.mydomain.com/$1 [R=301,L]


# Remove .php file extension
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php

# redirect all traffic to index
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index [L]

# Remove 'index' from URL
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index [NC]
    RewriteRule ^ / [R=301,L]

</IfModule>

Apache Vhost:

<VirtualHost *:80>
    ServerAdmin webmaster@mydomain.com
    ServerName mydomain.com
    ServerAlias www.mydomain.com
    DocumentRoot /srv/www/mydomain/public_html/
    ErrorLog /srv/www/mydomain/logs/error.log
    CustomLog /srv/www/mydomain/logs/access.log combined
</VirtualHost>

Кроме того, если это может быть уместно, моя обработка страниц PHP:

# Declare the Page array
$Page = array();

# Get the requested path and trim leading slashes
$Page['Path'] = ltrim($_SERVER['REQUEST_URI'], '/');

# Check for query string
if (strpos($Page['Path'], '?') !== false) {

    # Seperate path and query string
    $Page['Query']  = explode('?', $Page['Path'])['1'];
    $Page['Path']   = explode('?', $Page['Path'])['0'];
}

# Check a path was supplied
if ($Page['Path'] != '') {

    # Select page data from the directory
    $Page['Data'] = SelectData('Directory', 'Path', '=', $Page['Path']);

    # Check a page was returned
    if ($Page['Data'] != null) {

        # switch through allowed page types
        switch ($Page['Data']['Type']) {

            # There are a bunch of switch cases here that
            # Determine what page to serve based on the
            # page type stored in the directory

        }

    # When no page is returned
    } else {

        # 404
        $Page = Build404ErrorPage($Page);
    }

# When no path supplied
} else {

    # Build the Home page
    $Page = BuildHomePage($Page);
}

Кто-нибудь может увидеть здесь что-нибудь, что могло бы вызвать это?

1 ответ

Решение

После долгих исследований я пришел к выводу, что мои проблемы возникли из-за комбинации попыток Google проиндексировать сайт до его завершения и некоторых неполных сценариев обработки страниц. Моя ошибка не заключалась в блокировке всех роботов во время разработки.

Решение проблемы было следующим:

  1. Отправьте XML-карту сайта в инструменты Google для веб-мастеров со всеми действительными URL-адресами.

  2. 301 Перенаправить все нечетные URL на правильную домашнюю страницу

  3. Запросить удаление неверных URL с помощью инструментов Google для веб-мастеров

  4. Заблокируйте доступ googlebot к неверным URL с помощью файла robots.txt

  5. Подождите, пока Google повторно просканирует сайт и правильно его проиндексирует.

Ожидание googlebot для исправления проблем было самым сложным.

Другие вопросы по тегам