2011-12-03 3 views
0

Прежде всего: Надеюсь, следующий вопрос не слишком общий.jQuery + AJAX + Help Hiding This Content

У меня есть небольшая проблема, и я не могу думать о хорошем решении, и я надеялся, что кто-то здесь сможет мне помочь.

Это моя ситуация:

Я использую AJAX для динамической загрузки страниц. Мой главный сайт - index.php, и как только я нажимаю на ссылку навигации, сценарий AJAX заменяет содержимое index.php новым контентом и добавляет хэш-тег к URL-адресу. Например:

я нажимаю на ссылку about.php, скрипт добавляет #about.php к URL и загружает контент из about.php в index.php. Он отлично работает :) Однако есть небольшая проблема, которую я бы хотел решить:

Допустим, мы начинаем с прямого перехода на index.php#about.php - это означает, что содержимое index.php видно на 2,3 секунды, а затем заменяется с содержанием от about.php. И я хотел бы избежать этого.

Я придумал несколько идей, но все они на самом деле не велики:

1) Скрыть содержание -> чем сделать AJAX вызова -> на завершенном шоу содержания AJAX снова

Даунсайда : Содержимое страницы показывается.

2) Скрыть содержание с CSS и показать его после того, как AJAX вызова

Даунсайд: это будет работать отлично, но пользователи без JavaScript (и GoogleBot) будут видеть только страницу exmpty.

3) Используйте пустой index.php и поместить содержание его в main.php и автоматически загружать main.php через AJAX на странице загрузки.

Даунсайд: бы работать тоже, но опять же, пользователи без JS и GoogleBot просто увидите пустую страницу, когда визит index.php


Вот все, что я могу думать, и все три решения не хорошо, потому что Я беспокоюсь, что значение SEO резко уменьшится, когда у меня будет пустой index.php (я мог бы согласиться с тем, что пользователям без JS ничего не видно).

p.s. Я где-то читал, что когда у вас есть display:none во внешнем файле css и заблокируйте его robots.txt, GoogleBot не будет знать разницу, но я беспокоюсь, возможно, это не так? Any1 получил некоторый опыт?

Edit: Я думаю, весь мой вопрос сводится к следующему:

Как вы думаете, скрывая все содержимое index.php с помощью CSS (и чем показать его с JS), будет огромный облом для SEO, или это будет хорошо с GoogleBot (после того, как контент все еще находится в источнике, но не отображается пользователю)?

ответ

2

Если вы использовали строки запроса вместо хеша, вы можете иметь index.php для загрузки правильного содержимого на уровне сервера.

Плагин, такой как history.js, может помочь вам направить URLS в браузер, чтобы вы по-прежнему получали ваш аякс-просмотр.

+0

Это интересный плагин! Я использую подобный, но он работает только с хэшами. Я собираюсь взглянуть на демоверсии и, возможно, изменить свой сайт, чтобы использовать этот. Благодаря! – Andrej

1

Wow, с чего начать ... прежде всего страница 'blink' Я назову это 2-3 секунды для вас, но она полностью зависит от компьютера пользователя, насколько быстро он запускает javascript и как быстрый вызов AJAX возвращается, чтобы вы могли значительно увеличить задержку.

Во-вторых, я не стал бы беспокоиться о том, что Googlebot видит какой-либо контент ajax. Хотя верно, что googlebot пытается возиться с некоторым javascript, он не сделает вызов ajax, как обычный браузер. Я был бы очень удивлен, если бы робот Google никогда не видел ни одной из ваших данных, загруженных Ajax.

Googlebot делает фантастическую работу по выяснению, какой контент доставляется через html/css пользователю при посещении вашей страницы. Он также выясняет, что-то отображается или нет, и неплохо решает, является ли этот контент просто начинкой или что-то действительно имеет значение.

Вы беспокоитесь о том, что кто-то, не имеющий javascript, увидит, когда весь навигационный сайт будет основан на javascript. Кажется, это не примирилось.

У вас есть доступный PHP. Мое предложение состоит в том, чтобы отказаться от материала AJAX, который вы пытаетесь сделать, и сделать это на PHP. Вы можете так же легко написать такое же поведение на PHP, как и в AJAX.

SEO ПРИМЕЧАНИЕ: Если вы ищете для твердых результатов SEO Я предлагаю сделать статический (не на языке JavaScript версии) страницу как SEO дружественной, как это возможно. Мне нравится «подбирать низкие висячие фрукты», чтобы убедиться, что страница имеет один и только на H1 и что в ней есть самые важные ключевые слова. seomoz - один из лучших сайтов, которые я нашел для информации о SEO.

+0

Я не хотел вдаваться в подробности, но просто для того, чтобы уточнить: навигация по-прежнему работает, когда JS отключен (чем ведут себя ссылки, как обычные ссылки, и пользователь ничего не заметит) И примерно 2-3 секунды: я знаю, что это не всегда 2-3 секунды, но я просто не был уверен, как выразить себя («мигать» было бы хорошим способом выразить это). Спасибо за понимание GoogleBot - я все больше думаю, что он умнее, чем я думал, и он, вероятно, «поймет», что я не пытаюсь спамить, скрывая определенный контент). – Andrej

+0

Отлично! Это немного разъясняет. Googlebot по-прежнему, вероятно, не узнает ни один из материалов AJAX, однако, если ваши ссылки все еще работают нормально, они найдут их и будут искать их. По большей части, я рассматриваю Googlebot (seo stuff) точно так же, как я рассматриваю пользователя с выключенным javascript. – kasdega

+0

BTW google/googlebot сильно нахмурился на веб-страницах набивки ключевых слов. Вот ссылка на их определение термина. http://www.google.com/support/webmasters/bin/answer.py?answer=66358 – kasdega