Динамический сайт PHP с базой данных MySql;Как создать карту сайта для этого? - PullRequest
2 голосов
/ 15 декабря 2010

У меня есть сайт объявлений. Сайт основан на php и использует базу данных mysql .

Сегодня у меня есть карта сайта, которую я должен обновить, используя внешний php-скрипт. Этот php-скрипт берет все объявления из базы данных и создает xml карту сайта, свежую.

Проблема в том, что я должен сделать это вручную, сначала открыв скрипт php, затем дождавшись его завершения, а затем снова отправив карту сайта в Google (хотя последний шаг не является обязательным, я все еще делаю это).

Я также должен отметить, что, хотя я и отправляю это в Google, оно все равно не индексируется (не отображается в результатах поиска), , что я хочу.

Я хочу, чтобы объявления показывались в Google SERPS как можно скорее . В настоящее время это занимает слишком много времени ... Примерно через неделю.

В любом случае, мне нужно знать, как улучшить этот метод, который у меня есть. Должен ли я открывать и записывать в XML-файл при каждом новом объявлении?

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

Есть ли другой способ, например, отправка php карты сайта в google, и каждый раз, когда google обращается к этому php файлу, динамически создается новый xml?

Нужны идеи о том, как сделать это наилучшим образом, пожалуйста ...

Также вопрос 2 :
Если у меня нет ссылок на определенную страницу на моем сервере, кроме ссылки в карте сайта, будет ли эта страница проиндексирована в любом случае?

Спасибо

Ответы [ 3 ]

3 голосов
/ 15 декабря 2010

Вы слишком много просите от Google. Они не волшебные. Индексирование всего интернета - большая задача. И они не там, чтобы делать то, что вы хотите. Тем не менее, есть способы заставить Google замечать вещи быстрее, а также способы более быстрого поиска с помощью других средств.

Шаг первый. Карта сайта в формате xml хороша, но она все еще помогает иметь законный список / карту ссылок везде и везде. Это потому, что ссылки, как правило, более важны, чем карта сайта. Так много поисковых систем получают к ним быстрее.

На этой ноте, не только dood, связывающее ваши вещи, - ОГРОМНАЯ помощь. То, как работает индексация, означает, что попадание в список раньше означает обновление в Google. Больше ссылок извне означает больше точек входа.

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

Теперь о поиске в реальном времени. «Следующая важная вещь» в поиске - использование элементов в реальном времени для получения более релевантных результатов. Google уже делает кое-что из этого для определенных вещей. Спорт, большие события, такие как недавний запуск Spacex, и так далее. Они используют Базз и Твиттер. Другие используют Facebook и несколько других сервисов.

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

3 голосов
/ 15 декабря 2010

Вы можете поместить скрипт, который создает карту сайта, в логический цикл, который создает новое объявление.Таким образом, каждый раз, когда создается новое объявление, карта сайта обновляется.

У Google есть совет об использовании службы HTTP ping для автоматической отправки карты сайта.Вы можете использовать PHP Client URL Library для создания ping.

Наконец, вам не повезло, пытаясь заставить Google индексировать ваши страницы быстрее.Как говорится в их Руководствах для веб-мастеров (в разделе карты сайта):

Google не гарантирует, что мы будем сканировать или индексировать все ваши URL-адреса.

Короче говоря: пока алгоритм Google не начнет считать, что ваш сайт HotShit TM , они не будут индексировать каждый URL-адрес и обычно будут тратить время на это, карту сайта или нет.

0 голосов
/ 24 ноября 2018

Я создал небольшую карту сайта для сайта Laravel.Поскольку его структура арки MVC остается прежней.

Маршрутная часть:

Route::get('/sitemap', ['as' => 'Sitemap index', 'uses' => 'SiteMapController@index']);
Route::get('/sitemap/page', ['as' => 'Sitemap page', 'uses' => 'SiteMapController@page']);

Просмотреть файлы второй части Index.php, это будет основной файл индекса карты сайта

 <?xml version="1.0" encoding="UTF-8"?>
   <sitemapindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">  
    <sitemap>
    <loc><?php echo url('/') ?>/sitemap/page</loc>
    <lastmod><?php echo date('c', time()); ?></lastmod>
</sitemap>
<sitemap>
    <loc><?php echo url('/') ?>/sitemap/exchanges</loc>
    <lastmod><?php echo date('c', time()); ?></lastmod>
</sitemap>

page.php это файлы аксессуаров для отдельного urlset

<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
 <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<?php foreach ($posts as $post) { ?>
    <url><loc><?php echo url('/') ?>/<?php echo $post['uri']; ?></loc><lastmod><?php echo $post['time']; ?></lastmod> <changefreq><?php echo $post['freequency']; ?></changefreq>
        <priority><?php echo $post['priority']; ?></priority>
    </url>
<?php } ?>
</urlset>

Теперь, контроллер, где вы запускаете шоу: SitemapController.php вы можете изменить время на основе частоты и свежестииз обновлений, которые вы предоставляете в содержании.

  class SiteMapController extends Controller {

    public function index() {
    return response()->view('sitemap.index')->header('Content-Type', 'text/xml');
     }

 public function page() {
    $posts = array(
        array("uri" => "", "time" => date('c', time()), "freequency" => "Daily", "priority" => "0.8"),
        array("uri" => "about-us", "time" => "2018-08-17", "freequency" => "Monthly", "priority" => "0.5"),
        array("uri" => "contact-us", "time" => "2018-08-17", "freequency" => "Monthly", "priority" => "0.5"),
        array("uri" => "privacy-policy", "time" => "2018-08-17", "freequency" => "Monthly", "priority" => "0.5"),
        array("uri" => "cookie-policy", "time" => "2018-08-17", "freequency" => "Monthly", "priority" => "0.5"),
        array("uri" => "thank-you", "time" => "2018-08-17", "freequency" => "Monthly", "priority" => "0.5"),
    );

    return response()->view('sitemap.page', ['posts' => $posts])->header('Content-Type', 'text/xml');
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...