AngularJS & SEOing

0

Я работаю над небольшим Угловым приложением, и я нахожусь на полпути с проблемой разума. Общеизвестно, что SEO-пауки/искатели не используют Javascript, поэтому все данные META должны загружаться во время загрузки сервера. Я пытаюсь создать очень динамичную базу, которую я могу использовать для будущих проектов.

Мое приложение создается с использованием LAMP, я не против Node, но я должен использовать PHP/MySQL для этого конкретного проекта. У меня есть основной файл конфигурации "config.json", а через главную страницу индекса я загружаю его перед обработкой HTML, чтобы установить все важные данные META. Теперь я загружаю один и тот же файл конфигурации в свое угловое приложение, используя "http.get(...)". Я просто чувствую, что нет необходимости загружать один и тот же файл дважды.

Я могу решить эту проблему, установив конфигурацию с помощью скрипта на главной странице,

<?php

   $config_plain = file_get_contents( './app/data/config.json', FILE_USE_INCLUDE_PATH );
   $config = json_decode( $config_plain );
       // #    set config for meta data on load

?>
<!DOCTYPE HTML>
<html ng-app="foobar" ng-controller="dataCtrl">
   <head>
      <title ng-bind="page.title"><?php echo $config->title; ?></title>
      <meta name="description" content="<?php echo $config->meta->description; ?>">
      ...
      <script>
         angular.module('foobar', [...])
            .controller('dataCtrl', ['$rootScope', function($rootScope) {
               $rootScope.config = <?php echo $config_plain; ?>;
                  $rootScope.page = {  };
                  $rootScope.page.title = $rootScope.config.brand;

                    //    # set config for data binding
            }])

            .service('page', ['$rootScope', function($rootScope) {
                return {
                    title: function(route) {
                        $rootScope.page.title = $rootScope.config.brand + ' | ' + route;
                            // #    update page title dynamically
                    }
                };
            }]);
      </script>
   </head>
</html>

В качестве альтернативы,

<?php

   $config_plain = file_get_contents( './app/data/config.json', FILE_USE_INCLUDE_PATH );
   $config = json_decode( $config_plain );
       // #    set config for meta data on load

?>
<!DOCTYPE HTML>
<html ng-app="foobar" ng-controller="dataCtrl">
   <head>
      <title ng-bind="page.title"><?php echo $config->title; ?></title>
      <meta name="description" content="<?php echo $config->meta->description; ?>">
      ...
      <script>
         angular.module('foobar', [...])
            .controller('dataCtrl', ['$rootScope', function($rootScope) {
               $http.get('/app/data/config.json')
                  .success(function(response) {
                      $rootScope.config = response;
                          $rootScope.page = {  };
                          $rootScope.page.title = $rootScope.config.brand;
                            // #    set config for data binding
                   });
            }])

            .service('page', ['$rootScope', function($rootScope) {
                return {
                    title: function(route) {
                        $rootScope.page.title = $rootScope.config.brand + ' | ' + route;
                            // #    update page title dynamically
                    }
                };
            }]);
      </script>
   </head>
</html>

Хотя все это кажется действительно грязным.

Мой вопрос заключается в том, как я могу динамически использовать контент приложения SEOing с использованием угловых и php?

  • 0
    Google имеет хорошо документированные рекомендации для страниц, управляемых ajax, а также упоминает множество решений
Теги:

1 ответ

0

Почти четыре года назад Мэтт Каттс сказал:

Googlebot продолжает получать умнее. Теперь у него есть возможность выполнить AJAX/JS> для индексации некоторых динамических комментариев http://goo.gl/F9et1

Вот официальный блог Google, если у вас есть подробные вопросы. http://googlewebmastercentral.blogspot.com/2011/11/get-post-and-safely-surfacing-more-of.html

Я честно думаю, что с тобой все будет хорошо. Попробуй это. Прочтите свою страницу эксперимента, чтобы страница была проиндексирована и оттуда. Что касается других поисковых систем (Yahoo и Bing), я думаю, что они не смогут это сделать какое-то время, если вообще когда-либо.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню