Являются ли поисковые системы, чтобы увидеть мой динамически созданный контент на вкладках Bootstrap?

У меня есть страница index.php с тремя вкладками Bootstrap в ней, и для каждой вкладки я создаю ее содержимое после того, как пользователь нажимает на него.
Например:

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

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

Вот мой пример кода, поэтому, пожалуйста, скажите мне, подходит ли это:

index.php файл:

<!DOCTYPE html>
<html>
<head>
    <title>Tabs demo</title>
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="#" onclick="location.href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css'; return false;">
</head>
<body>
    <div class="container">
        <ul class="nav nav-tabs">
            <li class="active"><a data-toggle="tab" href="#home">Home</a></li>
            <li><a data-toggle="tab" href="#menu1">Menu 1</a></li>
            <li><a data-toggle="tab" href="#menu2">Menu 2</a></li>
        </ul>
        <div class="tab-content">
            <div id="home" class="tab-pane fade in active">
                <h3>HOME</h3>
                <p>Some content.</p>
            </div>
            <div id="menu1" class="tab-pane fade">
                <?php $model = [
                    0 => ['title' => 'First item', 'content' => 'Some first content'],
                    1 => ['title' => 'Second item', 'content' => 'Some second content']
                ]; ?>
                <?php foreach ($model as $data): ?>
                    <h3><?= $data['title'] ?></h3>
                    <p><?= $data['content'] ?></p>
                <?php endforeach ?>
            </div>
            <div id="menu2" class="tab-pane fade">
                <h3>Menu 2</h3>
                <p>Some content in menu 2.</p>
            </div>
        </div>
    </div>
<!-- jQuery library -->
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>
</html>

Я боюсь, что поисковые системы не будут видеть содержимое вторых и третьих вкладок. Или, по крайней мере, они не будут связывать их с страницей index.php. Я не прав?

Ответ 1

Нет, мы (Google) не увидим содержимое за вкладками, если содержимое под вкладкой динамически сгенерировано (т.е. не просто скрыто).

Вы также можете увидеть, что мы видим, используя Fetch как Google в Search Console (прежние инструменты для веб-мастеров); Узнайте больше об этой функции в нашем сообщении под названием Рендеринг страниц с помощью Fetch как Google.

Ответ 2

Лучше всего спроектировать веб-сайт для работы без javascript и просто заменить все ваши элементы привязки, которые работают с ajax, чтобы передать переменную GET вашему веб-контроллеру, поэтому он знает, что возвращает только html, который нужно вставить с помощью javascript.

Ответ 3

Если вы используете JS/AJAX, (я действительно не вижу ничего, но я не могу думать о лучшей альтернативе), вам будет сложно заставить Google индексировать ваши страницы. У Google есть хорошая документация по этому вопросу, которая помогла мне в прошлом в проектах с аналогичными целями.

https://developers.google.com/webmasters/ajax-crawling/docs/learn-more

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

Ответ 4

Возможно, это может помочь:

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

При загрузке всей страницы поместите "поддельный" HTML-код на каждую вкладку. Попытайтесь создать код HTML в виде реального кода, который загружается при нажатии каждой вкладки. Поместите все это внутри невидимого DIV. Каждый раз, когда страница загружается, помещайте также некоторые случайные данные (возможно, произвольно сформированную строку из 16 символов). Таким образом, я думаю, Google будет чаще распространять ваши данные (это не происходит для статического контента).

С уважением.